调用函数与调度事件

Joe*_*ter 1 oop events design-patterns actionscript-3 observer-pattern

当你可以直接调用函数时,创建自己的事件有什么用呢?

例如

var customEvent:Event = new Event("ev");
_myObject.addEventListener("ev", handler);

private function handler(e:Event):void
{
    //Do something
}

//And then dispatching the event else where like this
_myObject.dispatchEvent(customEvent);
Run Code Online (Sandbox Code Playgroud)

当你可以像这样直接调用函数

handler();
private function handler():void
{
//do something
}
Run Code Online (Sandbox Code Playgroud)

自定义事件究竟是什么意思?在这种情况下,我应该使用哪一个来提高效率和减少资源消耗?

str*_*rah 6

在调度事件的情况下,"调度员"不需要知道有关侦听器的任何信息.甚至可能没有听众存在.

在直接调用函数的情况下,它必须知道函数的名称,它必须具有对实现函数的对象的引用,等等.它使代码更难重用.