您的位置:首页 > 其它

Event事件的clone方法

2014-03-01 00:05 197 查看
在自定义事件中,一般都是继承自flash.events.event,一个鲜为人知的细节是,对于重复事件的执行(不断调动dispatcher),as3不是每次创建一个myEvent事件对象,而是克隆原对象,使用的是myEvent.clone(),而且是自动调用的。在API手册中有如下描述:

clone()返回一个新的 Event 对象,它是 Event 对象的原始实例的副本。通常您不需要调用 clone();当您重新调度事件,即调用 dispatchEvent(event)(从正在处理 event 的处理函数)时,EventDispatcher 类会自动调用它。

新的 Event 对象包括原始对象的所有属性。

当您创建自己的自定义 Event 类时,必须覆盖继承的 Event.clone() 方法,以复制自定义类的属性。如果您未设置在事件子类中添加的所有属性,则当侦听器处理重新调度的事件时,这些属性将不会有正确的值。

一般来说,自定义自己的事件都必须覆盖原Event类的clone方法,因为这样你才能在克隆方法重新传递自定义属性,这非常重要!
class PingEvent extends Event {
var URL:String;

public override function clone():Event {
return new PingEvent(type, bubbles, cancelable, URL);
}
}
不然自定义属性值将不会改变!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: