Flash 在AS3中可以使用addEventListener的最基本对象是什么?

Flash 在AS3中可以使用addEventListener的最基本对象是什么?,flash,actionscript-3,Flash,Actionscript 3,我正在创建一个处理程序类,其内容类似于: package avian.background { import flash.events.EventDispatcher; import flash.events.Event; import flash.utils.getTimer; import avian.objects.AvChild; import avian.background.AvManager; public class AvHand

我正在创建一个处理程序类,其内容类似于:

package avian.background
{
    import flash.events.EventDispatcher;
    import flash.events.Event;
    import flash.utils.getTimer;
    import avian.objects.AvChild;
    import avian.background.AvManager;

    public class AvHandler extends EventDispatcher
    {
        // vars
        private var _last:uint = 0;
        private var _time:uint = 0;

        /**
         * Constructor
         */
        public function AvHandler()
        {
            addEventListener(Event.ENTER_FRAME, _handle);
            _last = getTimer();
        }

        /**
         * Called on dispatch of Event.ENTER_FRAME
         */
        private function _handle(e:Event):void
        {
            _time = getTimer() - _last;

            var i:AvChild;
            for each(i in AvManager.getList("all"))
            {
                i.step(_time);
            }

            _last = getTimer();
        }
    }
}
我们的目标是让这个类扩展最基本的类,这个类仍然可以使用
addEventListener()
——出于某种原因,如果要扩展SpriteMovieClip,ENTER\u框架甚至永远不会启动——工作正常。我错误地认为EventDispatcher是最基本的


我最初将事件应用到我通过构造函数解析的阶段-这看起来很不整洁。

触发事件的最简单类。ENTER\u FRAME是DisplayObject

DisplayObject是触发ENTER\u FRAME的最基本对象


谢谢mate-查看了一下。您是否可以确认您确实可以从DisplayObject扩展并实例化AvHandler类,而不会出现运行时错误?我不认为DisplayObject可以直接实例化,但我个人不知道在向下扩展一级后实例化是否安全(无需任何设置)。DisplayObject的本机代码中可能有某种程度的“抽象检测”,可以在AS3中复制为:if(Object)(this).constructor==YourAbstractClass){//ERROR!}