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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage