Я создаю класс обработчик , который будет выглядеть примерно так:
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 был самым простым из возможных.
У меня изначально было событие, примененное к стадии, которую я проанализировал через конструктор - это просто показалось довольно неопрятным.