为什么我为已实现的IEventDispatcher接口获取“未定义的方法”?

时间:2012-11-22 20:06:02

标签: actionscript-3 events

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

我很有可能在这里做一些令人难以置信的愚蠢的事情我只是不知道它是什么......

以下是Class中抛出这些错误的方法(意味着在setTransformListner和“removeTransformListener”主体中处理“view”的方法:

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
{

}

这是Event Dispatcher Class ...

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);
        }

    }

}

1 个答案:

答案 0 :(得分:5)

猜测,您的软件包名称为view,而您尝试调用view.addEventListener,请尝试更改软件包名称。虽然应首先使用局部变量view