前几天,同事问我能否制作物体作匀加速直线运动的动画,心想刚刚学会了flash mx,正想练练身手呢,flash mx的actionscript可以完成非常复杂的动画,小小的匀加速直线运动动画又何足挂齿呢,赶紧动手吧。
创建symol(符号)
通过菜单“insert→new symol”命令新创建下列几个symol(符号):
1、一movie clip(电影夹子),命名为“dolly”,绘制一个矩形,代表小车。
2、三个button(按钮),制作成矩形或圆形,分别代表play(开始)、stop(停止)、restart(返回)。
程序具体制作
1、进入scene(场景),将当前图层layer1命名为“小车”,从library中拖入制作好的小车movie clip,放置到合适位置上,并将movie clip小车的“instance name”命名为“dolly”:选中小车,在下方的properties(属性)面板中的“instance name”栏中输入“dolly”。
在小车图层的第一个关键帧处输入actions语句:
stop();
s0=getproperty(“/dolly”,_x);//设置dolly水平方向初始位置属性
t = 0;
a = 2; //设置加速度为2
x = 0;
v = 0;
在小车图层中第二帧处插入一个keyframe(关键帧),保持小车的位置不变,输入actions语句:
t = t+0.5; //设置时间间隔
s = s0+0.5*a*t*t;
x = s-s0;
v = a*t;
setproperty(“/dolly”,_x,s);//设置函数的属性
2、新建图层layer2,命名为“主界面”,在编辑区中输入“匀加速直线运动”几个字,并输入“s=m、a=m/s2、v=m/s、t=s”等文本,在“s=”与“m”之间插入文本框:选择工具栏中文本输入工具,在编辑区中“s=”与“m”之间单击,插入一个输入文本框,调整好大小,在下方的properties(属性)面板中,文本属性选择“input text”,选中[显示边框]按钮,在“var”栏中输入“x”,将文本框命名为“x”,如图1所示。

图1
同样方法在“a=”与“m/s2”之间、“v=”与“m/s”之间及“t=”与“s”之间分别插入文本框,并分别命名为“a”、“v”、“t”。
绘制一条标明刻度的直线,表示小车运动的平面,从library中拖入play、stop、restart三个按钮,调整好各部分之间的位置,如图2所示。在三个按钮中分别输入actions语句:

图2
(1)play按钮
on(release){
play();
}
(2)stop按钮
on(rollover){
stop();
}
(3)restart按钮
on(release){
gotoandplay(1);
x=0;
v=0;
t=0;
setproperty(“/dolly”,_x,s0);
}
3、新建图层layer3,命名为“运动”,在运动图层第三帧处插入一个keyframe,输入actions语句:
gotoandplay(2);//播放完第三个关键帧后再从第二个关键帧开始播放
最后制作完成的程序界面如图2,按下“ctrl+enter”测试一下,效果不错吧!若感到速度有点慢,修改一下加速度就可以了。