Почему событие.РЕНДЕРИНГ не отправляется?
-
18-09-2019 - |
Вопрос
Я создал класс, который должен зарегистрироваться для события.ВИЗУАЛИЗИРУЙТЕ событие так, чтобы оно знало, когда выполняется визуализация этапа.Упрощенная версия моего кода выглядит следующим образом:
package
{
import flash.events.Event;
import flash.display.Sprite;
public final class Test extends Sprite
{
public final function Test()
{
addEventListener(Event.ADDED_TO_STAGE,added,false,0,true);
}
private final function added(event:Event):void
{
trace("added to stage");
stage.addEventListener(Event.RENDER, renderHandler,false,0,true);
}
private final function renderHandler(event:Event):void
{
trace("Event.RENDER dispatched!");
}
}
}
Событие.Отправляется событие ADDED_TO_STAGE.Однако событие.Событие рендеринга таковым не является.Есть какие-нибудь идеи, что я, возможно, здесь делаю не так?Родитель добавляет этот объект в качестве дочернего на сцену, так что это не может быть проблемой.
Решение
Вы должны позвонить в stage.invalidate()
способ отправки Event.RENDER
событие.В соответствии с Ссылка на AS3, Event.RENDER
отправляется непосредственно перед визуализацией экрана, предоставляя всем прослушиваемым объектам возможность обновления.Я использовал Event.RENDER
перерисовывать статические фигуры можно только тогда, когда что-то изменило их параметры.Это быстрее, чем перерисовывать каждый кадр.