首 页免费信息软件下载在线电视QQ空间克隆免费博客论 坛
您当前的位置:鸿飞官方免费资源网免费信息设计制作FLASH教程 → 文章内容 退出登录 用户管理
本类热门文章
相关文章
 
flash 动作脚本大全
作者:鸿飞  来源:本站整理  发布时间:2008-5-24 12:37:16

减小字体 增大字体

atan(ysm/xsm)*(180/Math.PI)+180;
}
}
Math.atan是Flash的内置函数,用它求一个数或表达式的反正切值。Math.PI是Flash的内置常数,代表圆周率。使用Math.atan计算出的反正切值的单位是弧度,而_rotation属性的单位是角度,所以要将其乘以(180/Math.PI)以实现弧度到角度的转换。
在球杆影片剪辑的mouseMove事件中,根据鼠标位置调整_rotation属性的值,使影片剪辑跟随鼠标转动,这也是鼠标跟随动画中的一种。
母球影片剪辑实例:
在母球影片剪辑实例的动作面板中添加如下ActionScript:
onClipEvent (load) {
v = 0; //初速度
dir = ""; //运动方向
vx = 0; //x方向分速度
vy = 0; //y方向分速度
slow = 0; //加速度
x0 = _x; //初始x位置
y0 = _y; //初始y位置
}
onClipEvent (enterFrame) {
//母球运动中
if ((dir != "") && (slow<100)) {
//母球落袋
if (((_x<60) && (_y<85)) || ((_x>440) && (_y<85)) || ((_x<60) && (_y>265)) || ((_x>440) && (_y>265))) {
_visible = false;
trace("Bad!");
dir = "";
v = 0;
vx = 0;
vy = 0;
slow = 0;
_x = x0;
_y = y0;
_visible = true;
//在母球位置显示球杆
_root.stick._visible = true;
_root.stick.gotoAndStop(1);
_root.stick._x = x0;
_root.stick._y = y0;
}
//撞击球桌左边界
if (_x<60) {
_x = 60;
dir = -(180+dir);
}
//撞击球桌右边界
if (_x>440) {
_x = 440;
dir = 180-dir;
}
//撞击球桌上边界
if (_y<85) {
_y = 85;
dir = -dir;
}
//撞击球桌下边界
if (_y>265) {
_y = 265;
dir = -dir;
}
//调整母球位置和速度
v0 = v*(100-slow)/100;
vx = v0*Math.cos((dir)/(180/Math.PI));
vy = v0*Math.sin((dir)/(180/Math.PI));
_x += vx;
_y += vy;
slow++;
}
//母球减速完毕
if (slow == 100) {
//在母球位置显示球杆
_root.stick._x = _root.motherball._x;
_root.stick._y = _root.motherball._y;
_root.stick._visible = true;
//重置变量
dir = "";
v = 0;
vx = 0;
vy = 0;
slow = 0;
}
}

第7章

影片剪辑方法

控制影片剪辑的方法很多,在ActionScript中最常用和最有用的命令是duplicateMovieClip和attachMovie,它们用于复制和附加影片剪辑,这两个命令可以实现许多效果,如下雪、棋类、射击游戏等。
使用hitTest方法可以代替按钮实现人机交互,从这里也可以看出影片剪辑有多么强大的功能。
startDrag和stopDrag用于对影片剪辑进行拖动,它们可以灵活地实现许多有趣的效果。

7.1 复制和附加影片剪辑
使用ActionScript的一大理由便是它可以极大地提高工作效率,达到事半功倍的效果。本章要介绍的两个命令duplicateMovieClip和attachMovie便是其中的典范。
7.1.1 Array对象
Array对象(动作面板的“对象”/“核心”目录)即数组,它用来记录成组的相关或相似变量。数组中的单个变量称为元素,数组中的每个元素对应一个索引,访问元素需要使用索引,索引需要用方括号括起来。
如下所示的ActionScript创建一个空的数组:
myArray = new Array();
如下所示的ActionScript创建一个确定值的数组并在输出窗口中显示每个元素的值:
weekDay = new Array("SUN", "MON", "TUE", "WED", "TUR", "FRI", "SAT");
for (var i = 0; i<7; i++) {
trace(weekDay[i]);
}
数组中还可以嵌套数组,即构成多维数组,如下所示:
polyArray = new Array();
for (var i = 0; i<3; i++) {
polyArray[i] = new Array(i*3+1, i*3+2, i*3+3, i*3+4);
trace(polyArray[i][0]+" "+polyArray[i][1]+" "+polyArray[i][2]+" "+polyArray[i][3]);
}
输出窗口中将显示:
1 2 3 4
4 5 6 7
7 8 9 10
7.1.2 复制影片剪辑
duplicateMovieClip动作(动作面板的“动作”/“影片剪辑控制”目录)和MovieClip对象(动作面板的“对象”/“影片”目录)中的duplicateMovieClip方法都用于在影片播放时创建影片剪辑的实例,也即复制场景中的父影片剪辑以产生新的影片剪辑。它们和后面要介绍的attachMovie方法对于要在影片中重复产生较多相同图形或动画对象时非常有用,如棋类游戏、射击游戏、鼠标跟随、下雪等特效动画。
要使用duplicateMovieClip动作和MovieClip.duplicateMovieClip方法,首先需要在场景中创建用来复制的父影片剪辑,并且在属性面板中为该父影片剪辑实例命名,该影片剪辑实例名称将作为duplicateMovieClip的参数之一。
在帧动作中使用duplicateMovieClip动作的方法如下所示:
duplicateMovieClip("parentMC", "childMC", 10);
其中,第1个参数parentMC是父影片剪辑的唯一标识符,第2个参数childMC是复制产生的新影片剪辑实例的唯一名称,第3个参数10是新影片剪辑的深度级别(level)。深度级别的概念与层类似,较高深度级别中的图形会遮挡住较低深度级别中的图形,影片剪辑所在的深度级别越高就越贴近我们的视线。在同一个深度级别中只能有一个影片剪辑实例,如果在同一深度级别中添加多于一个影片剪辑实例,新的影片剪辑实例将替换掉旧的影片剪辑实例。
复制产生的影片剪辑实例与父影片剪辑实例的位置是重叠在一起的,所以一般还需要调整新影片剪辑实例的坐标等属性,以使其按照需要显示,如下所示:
_root.parentMC._visible = false;
duplicateMovieClip("parentMC", "childMC", 10);
_root.childMC._x = 275;
_root.childMC._y = 200;
运行以上脚本,屏幕中只能看到新影片剪辑实例,而父影片剪辑实例不见了。从这里也可以看出,父影片剪辑实例的属性并不会影响到复制产生的新实例。
通常情况下,可以用与下面类似的方法复制多个影片剪辑实例:
_root.parentMC._visible = false;
n = 50;
for (i=0; i<n; i++) {
duplicateMovieClip("parentMC", "childMC"+i, 10+i);
_root["childMC"+i]._x = 25+10*i;
_root["childMC"+i]._y = 8*i;
}
在父影片剪辑中使用MovieClip.duplicateMovieClip方法如下所示:
onClipEvent (enterFrame) {
this.duplicateMovieClip("childMC", 10);
_root.childMC._x += 150;
}
它比duplicateMovieClip动作少了第1个参数,即不需要父剪辑名称。如果以上脚本不是在父剪辑而是在别

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]  下一页

推荐:本站站长(鸿飞)原创软件免费赠送

温馨提示:如果发现资源地址无效时,请在下面的评论上留言,我会及时处理!谢谢!

[] [返回上一页] [打 印]
文章评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 有情连接 - 网站地图 - 发布信息

Copyright © 2007-2008 鸿飞免费资源网:www.fei2yu.com. All Rights Reserved

站 长:鸿飞    Q Q:250118591    蜀ICP备07502538号