更好地创建单个对象事件而不是总是创建另一个对象吗?

时间:2018-08-27 14:53:22

标签: actionscript-3 events

通常,在调度事件(或自定义事件)时,我使用以下方法:

function fireEvent():void {
    dispatchEvent(new Event(Event.COMPLETE));
}

最好每次都使用单个对象来调度事件吗?我可以这样做吗?

var myEvent:Event = new Event(Event.COMPLETE);

function fireEvent():void {
    dispatchEvent(myEvent);
}

2 个答案:

答案 0 :(得分:3)

如果可以的话,这将是更好的方法(例如创建事件池)。不幸的是,AS3在事件流中对事件对象进行了一些内部魔术处理,使对象只能使用一次(很抱歉,由于某种原因,我无法快速找到证据)。

您可以通过第二次调度事件来轻松地获得确认,不会触发您的侦听器(可能仅对于冒泡功能是正确的,而不是确切记住),因此您必须为每个{{ 1}}通话。

答案 1 :(得分:2)

我想,即使合并有效也不值得。在astionscript中创建事件对象并不昂贵,而添加事件侦听器则很昂贵。您最好将这种精力放在管理侦听器和处理程序上,这很容易成为性能的瓶颈。