Pregunta

Quiero animar MoviveClips / Sprite objetos como smootly como sea posible. Sin embargo hasta ahora el único método que funciona es colocar el código de movimiento en el controlador de eventos enterFrame. Hay un problema con este enfoque: cuando la velocidad de fotogramas en una máquina específica está por debajo de la tasa de fotogramas deseada y luego todo el juego se ralentiza. Quiero ser capaz de hacer esto de una manera independiente del tiempo.

¿Fue útil?

Solución

Hay dos maneras de hacer la animación programática dentro del reproductor de Flash. El primero que ya se ha señalado mediante el uso de un onEnterFrame. Sin embargo, como ya habrá notado, para conseguir una animación suave que necesita para aumentar la velocidad de cuadro general de la película. Hacer esto también aumentará la carga de la CPU durante todo el período de tiempo que su SWF se ejecuta. Esto no es algo que siempre desee.

La otra forma de hacer animación programática es mediante el uso de un temporizador. Dentro de un controlador de temporización es posible llamar a una función llamada updateAfterEvent que actualizará la pantalla independiente del FPS hubiera definido para su SWF. Por lo tanto, el uso de un temporizador deja una puerta de entrada a hacer una animación suave dentro del reproductor de Flash sin aumentar la velocidad de cuadro general de su SWF.

Hace dos años o así que se dispuso a crear mis propias bibliotecas de interpolación para flash (debido a mis frustraciones con las bibliotecas tween entonces existentes disponibles). Solté bajo el nombre Coretween y esta biblioteca que permite, entre otras cosas, elegir qué tipo de animación que prefiera para Tween cada individuo. En la página de documentación Doy un ejemplo de la diferencia entre la animación basada trama en base y el tiempo. El ejemplo SWF en esa página corre a 12 fps, pero como se puede ver, los preadolescentes círculo inferiores mucho más suaves porque está controlado por un temporizador que las garrapatas a 60 fps y actualiza la pantalla en dependido de la velocidad de fotogramas SWF. Tenga en cuenta sin embargo que aunque el temporizador garrapatas a 60 fps, en realidad, el reproductor de Flash nunca será capaz de lograr esta velocidad de grabación. Sin embargo, se tratará de lograr esta velocidad de grabación que se traduce en una animación en general mucho más suave.

Por desgracia, hasta ahora no he sido capaz de liberar una versión 1.0 de mi biblioteca, pero por lo que yo sé que es bastante estable. Eres más que bienvenido para utilizarlo en cualquier forma que estimen conveniente. He usado Coretween en muchas producciones comerciales incluyendo éste que hicimos para el banco StGeorge aquí en Australia.

Otros consejos

Aquí hay algunas bibliotecas de animación basada en ActionScript:

TweenMax

Tweener

Ambos funcionan bien, y deben ayudarle con lo que necesite.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top