Что является самым основным объектом, который может использовать addEventListener в AS3? - PullRequest
0 голосов
/ 03 мая 2011

Я создаю класс обработчик , который будет выглядеть примерно так:

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() - по какой-то причине ENTER_FRAME даже никогда не срабатывает - работает нормально, если бы он продлил Sprite или MovieClip .Я ошибочно предположил, что EventDispatcher был самым простым из возможных.

У меня изначально было событие, примененное к стадии, которую я проанализировал через конструктор - это просто показалось довольно неопрятным.

Ответы [ 2 ]

0 голосов
/ 03 мая 2011

DisplayObject - самый базовый объект для запуска ENTER_FRAME.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#event:enterFrame

0 голосов
/ 03 мая 2011

самый простой класс, который запускает Event.ENTER_FRAME - DisplayObject

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...