fase força render / redesenhar
Normalmente eu ouviria o evento ENTER_FRAME e executaria o código toda vez que um quadro fosse renderizado. Mas, para meu aplicativo, isso é muito lento. O tempo entre 2 eventos ENTER_FRAME é de 40 milissegundos. Não importa se eu mudo minha taxa de quadros.
Então é possível forçar o flash a redesenhar / renderizar o quadro sem ouvir eventos? Eu tentei o método stage.invalidate () e mudei o framerate mas ele não melhora nada (stage.invalidate () não faz nada na verdade)
Fiz um pequeno teste para ver o tempo médio entre o evento ENTER_FRAME e o 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();
}
Se estou certo, o evento ENTER_FRAME é disparado antes da renderização desse quadro e o evento EXIT_FRAME é disparado após a renderização. Então, após o evento EXIT_FRAME, a renderização é concluída e o aplicativo despacha um evento ENTER_FRAME. O tempo médio entre esses dois eventos é de 52 milissegundos. E eu quero encurtar esse tempo
Bytheway eu defini meu framerate para 180 para este teste