Bühnenkraft rendern / neu zeichnen
Normalerweise würde ich das Ereignis ENTER_FRAME abhören und jedes Mal Code ausführen, wenn ein Frame gerendert wird. Für meine Anwendung ist dies jedoch zu langsam. Die Zeit zwischen 2 ENTER_FRAME-Ereignissen beträgt 40 Millisekunden. Egal ob ich meine Framerate ändere.
Ist es also möglich, Flash zum Neuzeichnen / Rendern des Frames zu zwingen, ohne Ereignisse abzuhören? Ich habe die stage.invalidate () -Methode ausprobiert und die Framerate geändert, aber sie verbessert nichts (stage.invalidate () macht eigentlich nichts)
Ich habe einen kleinen Test durchgeführt, um die durchschnittliche Zeit zwischen dem Ereignis ENTER_FRAME und dem Ereignis EXIT_FRAME zu ermitteln:
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();
}
Wenn ich recht habe, wird das ENTER_FRAME-Ereignis vor dem Rendern dieses Frames und das EXIT_FRAME-Ereignis nach dem Rendern ausgelöst. Nach dem EXIT_FRAME-Ereignis ist das Rendern abgeschlossen und die App sendet ein ENTER_FRAME-Ereignis. Die durchschnittliche Zeit zwischen diesen beiden Ereignissen beträgt 52 Millisekunden. Und ich möchte diese Zeit verkürzen
Übrigens habe ich für diesen Test meine Framerate auf 180 eingestellt