我有类EventManager,方法是:
public function addEvent(obj:IEventDispatcher, event:String, listener:Function,
useCapture:Boolean = false, priority:int = 0,
useWeakReference:Boolean = false):void
{
obj.addEventListener(event, listener, useCapture, priority, useWeakReference);
[here event is pushed in my stack]
}
我想这样做:
public class CustomClass extends Sprite
{
public override function addEventListener(type:String, listener:Function,
useCapture:Boolean = false, priority:int = 0,
useWeakReference:Boolean = false):void
{
eventManager.addEvent(this, type, listener, useCapture, priority, useWeakReference);
}
}
但结果调用堆栈是:
customClass.addEventListener ->
eventManager.addEvent ->
customClass.addEventListener ->
eventManager.addEvent ->
customClass.addEventListener ->
...
依此类推...因为我在eventManager.addEvent中调用了obj.addEventListener
也许你可以给我一个解决这个问题的方法吗?
答案 0 :(得分:0)
您创建了一个递归循环,因为您在事件管理器中调用了调用事件管理器等的对象的addEventlistener函数...您可能要做的只是存储对象的引用和事件管理器内的参数实际上并没有从那里调用addEventlistener函数。