我在类中有一个构造函数,它可以执行某种逻辑:
public function Constructor() {
if some condition {
// load some resource from the internet, dispatch message when done
}
else {
// finish up, dispatch message now
dispatchEvent( new TestEvent( ... ) );
}
}
和使用它的类:
obj = new Constructor();
obj.addEventListener( ... ); // Listens to the above event
我遇到了麻烦,因为如果“某些条件”没有发生,它会立即调度该事件,但是第二个类不会听到该事件,因为它在addEventListener方法之前执行。
答案 0 :(得分:2)
简单。不要在构造函数中触发事件。构造对象,挂起侦听器,然后调用包含事件触发代码的初始化方法。
编辑:或者,如果你绝对必须,将一个回调方法作为参数传递给构造函数,并在构造函数中添加监听器。
我更喜欢前一种方法,因为它不太混淆。