fuerza de escenario render / redibujar
Normalmente escucharía el evento ENTER_FRAME y ejecutaría el código cada vez que se procesa un marco. Pero para mi aplicación, esto es demasiado lento. El tiempo entre 2 eventos ENTER_FRAME es de 40 milisegundos. No importa si cambio mi framerate.
Entonces, ¿es posible forzar el flash para volver a dibujar / renderizar el cuadro sin escuchar los eventos? Probé el método stage.invalidate () y cambié el framerate pero no mejora nada (stage.invalidate () no hace nada)
Hice una pequeña prueba para ver el tiempo promedio entre el evento ENTER_FRAME y el evento 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();
}
Si estoy en lo cierto, el evento ENTER_FRAME se activa antes de la representación de ese marco y el evento EXIT_FRAME se activa después de la representación. Entonces, después del evento EXIT_FRAME, el renderizado se completa y la aplicación enviará un evento ENTER_FRAME. El tiempo promedio entre esos dos eventos es de 52 milisegundos. Y quiero acortar ese tiempo.
Por cierto, he establecido mi tasa de cuadros en 180 para esta prueba