当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash AS3.0菜鸟学飞教程:帧循环学习实例

Flash动画制作
Flash5的DATE对象(二)
Flash层的运用(一)
Flash 神奇遮罩之原理篇(1)
Flash 神奇遮罩之应用篇(5)
Flash 神奇遮罩之图片篇(3)
Flash 神奇遮罩之透明度篇(1)
Flash MX的自由变形工具(1)
Flash MX的自由变形工具(3)
用动作脚本动态创建和控制文本框 (7)
Freehand和Flash的结合应用(2)
Freehand和Flash的结合应用(6)
Flash 神奇遮罩之原理篇(2)
Flash 神奇遮罩之应用篇(1)
Flash 神奇遮罩之透明度篇(2)
实例学用Flash MX增强的AS功能(2)
FW MX和Flash MX的亲密合作(3)
Flash5 有声音的三眼狼(一)
Freehand和Flash的结合应用(5)
Flash5 有声音的三眼狼(三)
Freehand和Flash的结合应用(11)

Flash动画制作 中的 Flash AS3.0菜鸟学飞教程:帧循环学习实例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 403 ::
收藏到网摘: n/a

上面的例子执行代码的速度只有帧频的一半,而且代码分散,不适合制作复杂的应用程序。我们可以利用enterFrame事件以帧频的速度执行代码,而且代码可以集中在一帧。

用enterFrame事件制作匀速运动:

1、新建Flash文档
2、在图层1创建一个实例名为mc的影片剪辑
3、新建as图层,单击第1帧,输入代码:
  //动态更改帧频
  stage.frameRate = 30;
//获取mc初始位置
  var dx:Number = mc.x;
//定义速度
  var speed:Number = 5;
//注册侦听器
  mc.addEventListener(Event.ENTER_FRAME,onMove);
//定义事件接收函数
  function onMove(e:Event)
{
//坐标加速度
    dx += speed;
//影片剪辑的坐标
   e.target.x = dx; 
//如果影片运动到舞台右边界
   if(ds > stage.stageWidth)
{
//移除enterFrame事件
    mc.removeEventListener(Event.ENTER_FRAME,onMove);
}
}

代码使用了Event类的ENTER_FRAME属性,接收函数中参数e是Event类的实例,它具有target属性,target表示事件发送者mc。

4、测试影片
使用enterFrame事件可实现代码的重复执行,它执行的速度与帧频有关。
提示:当不需要使用enterFrame事件时,一定要用removeEventListener()函数来删除enterFrame事件。