1.5. 处理事件

tag:ActionScript 3 CookBook 简体中文

1.5. 处理事件
 
问题
我要重复执行某段代码
解决办法
在 enterFrame 事件中添加监听器和关联处理方法
讨论
 
在ActionScript 2.0 中处理enterFrame 事件是很简单的,你只要创建时间线函数调用 onEnterFrame 然后每次新帧开始时就会自动调用。在 ActionScript 3.0 中有各种各样的事件需要控制,访问他们也是不难的。
如果你熟悉ActionScript 2.0中的EventDispatcher 类的话,你就很好理解 ActionScript 3.0 事件句柄了。要广播 enterFrame 事件,你要告诉你的程序去监听这个事件然后指定回调函数。用 addEventListener 方法可以做到:
addEventListener(type:String, listener:Function)

type 参数指出你要监听的事件类型,比如"enterFrame". 然而自己输入这些字符串容易出错,最好的办法就是调用 Event 类的静态成员属性:导入Event 类,调用addEventListener 方法:
addEventListener(Event.ENTER_FRAME, onEnterFrame);
第二个参数onEnterFrame,指向类中定义的回调函数,该函数需要传递进EVENT的一个实例:
import flash.events.Event;
 
private function onEnterFrame(event:Event) {
 
}
event 对象包含一些于该事件有关的信息。这里有个简单的例子:画出一些随机线。

package {
    
import flash.display.Sprite;
    
import flash.events.Event;
    
    
public class ExampleApplication extends Sprite {
        
        
public function ExampleApplication(  ) {
            graphics.lineStyle(
101);
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }

 
        
private function onEnterFrame(event:Event):void {
            graphics.lineTo(Math.random(  ) 
* 400, Math.random(  ) * 400);
        }

    }

}
 

加支付宝好友偷能量挖...


评论(0)网络
阅读(75)喜欢(0)flash/flex/fcs/AIR