4

我有一个奇怪的情况,我看不到为什么我实现的 IEventDispatcher 接口没有编译,我得到Error: Call to a possibly undefined method addEventListenerError: Call to a possibly undefined method removeEventListener.

很有可能我在这里做了一些非常愚蠢的事情,我只是不知道它是什么......

以下是引发这些错误的类中的方法(意味着在 setTransformListner 和“removeTransformListener”的主体中处理“视图”的方法:

public function setTransformListener(view:AbstractView):void
{
    view.addEventListener(CustomEvent.TRANSFORM, transform);
}

public function removeTransformListener(view:AbstractView):void
{
    view.removeEventListener(CustomEvent.TRANSFORM, transform);
}

private function transform(e:CustomEvent):void
{

}

这是事件调度程序类...

package view 
{
    import flash.events.Event;
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;

    public class AbstractView implements IEventDispatcher
    {

        private var _dispatcher:EventDispatcher;

        public function AbstractView():void
        {
            _dispatcher = new EventDispatcher(this);
        }

        /* INTERFACE flash.events.IEventDispatcher */

        public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
        {
            _dispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
        }

        public function dispatchEvent(evt:Event):Boolean
        {
            return _dispatcher.dispatchEvent(evt);
        }

        public function hasEventListener(type:String):Boolean
        {
            return _dispatcher.hasEventListener(type);
        }

        public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
        {
            _dispatcher.removeEventListener(type, listener, useCapture);
        }

        public function willTrigger(type:String):Boolean 
        {
            return _dispatcher.willTrigger(type);
        }

    }

}
4

1 回答 1

5

疯狂猜测,您的包名是view并且您正在尝试调用view.addEventListener,尝试更改包名。虽然view应该首先使用本地 var。

于 2012-11-22T21:32:31.833 回答