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 对象包含一些于该事件有关的信息。这里有个简单的例子:画出一些随机线。
问题
我要重复执行某段代码
解决办法
在 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(1, 0, 1);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(event:Event):void {
graphics.lineTo(Math.random( ) * 400, Math.random( ) * 400);
}
}
}
import flash.display.Sprite;
import flash.events.Event;
public class ExampleApplication extends Sprite {
public function ExampleApplication( ) {
graphics.lineStyle(1, 0, 1);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(event:Event):void {
graphics.lineTo(Math.random( ) * 400, Math.random( ) * 400);
}
}
}