Рендеринг / перерисовка сцены

Обычно я слушаю событие ENTER_FRAME и выполняю код каждый раз при рендеринге фрейма. Но для моего приложения это слишком медленно. Время между двумя событиями ENTER_FRAME составляет 40 миллисекунд. Не имеет значения, если я изменю свою частоту кадров.

Так можно ли заставить вспышку перерисовывать / рендерить кадр без прослушивания событий? Я попробовал метод stage.invalidate () и изменил частоту кадров, но это ничего не улучшает (stage.invalidate () на самом деле ничего не делает)

Я сделал небольшой тест, чтобы увидеть среднее время между ENTER_FRAME и событием EXIT_FRAME:

private var beginTime:Number;
private var endTime:Number;

public function init():void {
    addEventListener(Event.ENTER_FRAME, enterFrame);
    addEventListener(Event.EXIT_FRAME, exitFrame);
}

private function enterFrame(e:Event):void {
    beginTime = new Date().getTime();

    if(endTime) {
        trace(beginTime - endTime);
    }
}

private function exitFrame(e:Event):void {
    endTime = new Date().getTime();
}

Если я прав, событие ENTER_FRAME вызывается до рендеринга этого кадра, а событие EXIT_FRAME вызывается после рендеринга. Поэтому после события EXIT_FRAME рендеринг завершен, и приложение отправит событие ENTER_FRAME. Среднее время между этими двумя событиями составляет 52 миллисекунды. И я хочу сократить это время

Кстати, для этого теста я установил частоту кадров 180

Ответы на вопрос(1)

Ваш ответ на вопрос