硬件论坛 软件论坛 操作系统 编程论坛 黑客论坛 笔记本论坛 教程论坛 手机论坛 返回主站
娱乐论坛 小说论坛 女性论坛 游戏论坛 QQ论坛 美女图片论坛 视频在线 家园博客 收藏本站
打印

用flash mx演示匀加速直线运动

前几天,同事问我能否制作物体作匀加速直线运动的动画,心想刚刚学会了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”测试一下,效果不错吧!若感到速度有点慢,修改一下加速度就可以了。






TOP

本论坛所有帖子仅代表发言者本人意见,不代表本站立场。