使用Global Event Dispatcher会有什么不利之处,如下所述: http://www.riaspace.com/2010/11/unframework-so-how-to-getaway-without-any-framework/ 请记住,我只是在小型(ish)应用程序上工作。
// eventDispatcher.as script file
package
{
import flash.events.IEventDispatcher;
public function get eventDispatcher():IEventDispatcher
{
return _eventDispatcher;
}
}
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
var _eventDispatcher:IEventDispatcher = new EventDispatcher();
public class MyViewPM
{
public function btn_clickHandler():void
{
eventDispatcher.dispatchEvent(new MyEvent(MyEvent.EVENT_TYPE));
}
}
答案 0 :(得分:5)
如果您正在处理较小的项目并且您自己,那么全球调度员可能会很好,可以为您节省一些时间。
问题在于更大的应用程序和几个开发人员在相同的代码库上工作。我的经验是(经验不足)开发人员会迅速滥用全局事件系统并在其上发送事件,这些事件应该是本地事件(主要是查看事件)。这使得代码难以理解,测试和修改,因为您几乎无法控制谁发送以及谁监听某些事件。与全局状态一样,数据可以同时在不同的地方进行修改,这可能导致调试噩梦。
如果您对增强型全球调度员感兴趣,请查看AS3Commons EventBus。