Frage

Ich möchte MoviveClips animieren / Sprite-Objekte als smootly wie möglich. Doch bisher die einzige Methode, die den Bewegungscode in den Enterframe-Ereignishandler wird Platzierung funktioniert. Es gibt ein Problem mit diesem Ansatz: Wenn die Framerate auf einer bestimmten Maschine unter die gewünschte Framerate ist dann das ganze Spiel verlangsamt. Ich möchte dies in einer zeitunabhängigen Weise in der Lage sein zu tun.

War es hilfreich?

Lösung

Es gibt zwei Möglichkeiten programmatische Animation innerhalb des Flash Players zu tun. Das erste zeigte bereits aus durch eine onEnterFrame verwenden. wie Sie bereits bemerkt haben könnten, bekommen jedoch eine glatte Animation Sie die Gesamtbildrate Ihres Films erhöhen müssen. Dadurch wird auch die CPU-Auslastung für die gesamte Zeit des SWF läuft erhöhen. Das ist nicht etwas, das Sie immer wollen.

Der andere Weg programmatische Animation zu tun, ist durch einen Timer. Innerhalb eines Timer-Handler ist es möglich, eine Funktion mit dem Namen updateAfterEvent zu nennen, die den Bildschirm unabhängig von der FPS aktualisieren Sie Ihre SWF gesetzt würden. Daher läßt einen Timer mit einem Gateway flüssige Animationen im Flash-Player zu tun, ohne die Gesamtbildrate der SWF zu erhöhen.

Vor zwei Jahren oder so machte ich mich auf meine eigenen Tween-Bibliotheken für Flash (wegen meiner Frustrationen mit den dann vorhandenen Tween-Bibliotheken verfügbar) zu erstellen. Ich veröffentlichte es unter dem Namen Coretween und diese Bibliothek können Sie unter anderem entscheiden, welche Art von Animation Sie bevorzugen jedes einzelne Tweens. Auf der Dokumentationsseite I geben einem Beispiel der Differenz zwischen Rahmen und laufzeitbasierte Animationen. Das Beispiel SWF auf dieser Seite läuft mit 12 fps, aber wie Sie die unteren Kreis Tweens viel glatter sehen kann, weil sie durch einen Timer, der bei 60 Bildern pro Sekunde tickt und aktualisiert den Bildschirm in-abhängig von der SWF-Frame-Rate gesteuert wird. Halten Sie daran, daß, obwohl der Timer bei 60 Bildern pro Sekunde in Wirklichkeit tickt der Flash Player wird nie in der Lage sein, diese Frame-Rate zu erreichen. Es wird jedoch versuchen, diese Frame-Rate zu erreichen, die in einer viel glattere Gesamt Animation führt.

Leider bis jetzt habe ich nicht in der Lage gewesen, eine 1.0-Version meiner Bibliothek zu veröffentlichen, aber soweit ich es ziemlich stabil wissen. Sie sind mehr als willkommen, sie in irgendeiner Weise verwenden Sie für richtig halten. Ich habe dieses hat eine Coretween in vielen kommerziellen Produktionen haben wir für taten StGeorge Bank hier in Australien.

Andere Tipps

Hier sind ein paar Actionscript basierte Animations-Bibliotheken:

TweenMax

Tweener

Sie beide gut funktionieren, und sollten Sie mit helfen, was Sie benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top