Domanda

Voglio animare MoviveClips / Sprite oggetti come smootly possibile. Tuttavia finora l'unico metodo che funziona è l'inserimento del codice di movimento nel gestore di eventi enterFrame. C'è un problema con questo approccio: quando il framerate su una specifica macchina è inferiore al framerate desiderato poi tutta la partita rallenta. Voglio essere in grado di fare questo in modo indipendente dal tempo.

È stato utile?

Soluzione

Ci sono due modi per fare l'animazione programmatica all'interno del Flash Player. La prima si già sottolineato utilizzando un'onEnterFrame. Tuttavia, come si potrebbe già aver notato, per ottenere un'animazione fluida è necessario aumentare la frequenza dei fotogrammi complessiva del filmato. Facendo questo aumenterà anche il carico della CPU per l'intero periodo di tempo il file SWF viene eseguito. Questo non è qualcosa che si desidera sempre.

L'altro modo di fare animazione programmatico è quello di utilizzare un timer. All'interno di un gestore del timer è possibile chiamare una funzione denominata updateAfterEvent che aggiornerà lo schermo indipendente dal FPS quando si imposta per il file SWF. Quindi, utilizzando un timer lascia un gateway per fare animazioni fluide all'interno del Flash Player senza aumentare il frame rate complessivo del vostro SWF.

Due anni fa o giù di lì ho deciso di creare le mie librerie tween per Flash (a causa delle mie frustrazioni con le librerie tween allora esistenti disponibili). Ho rilasciato sotto il nome di Coretween e questa biblioteca si consente, tra le altre cose, scegliere il tipo di animazione che si preferisce per ogni individuo tween. Nella pagina di documentazione do un della differenza tra animazione basato telaio base e il tempo. L'esempio SWF in quella pagina gira a 12 fps, ma come si può vedere, le interpolazioni inferiori cerchio molto più regolari perché è controllato da un timer che le zecche a 60 fps e aggiorna lo schermo in-dipendeva dal frame rate SWF. Non tenere a mente però che anche il timer zecche a 60 fps in realtà il Flash Player non sarà mai in grado di raggiungere questo frame rate. Tuttavia, cercherà di raggiungere questo frame rate che si traduce in un'animazione generale molto più agevole.

Purtroppo fino ad oggi non sono stato in grado di rilasciare una versione 1.0 della mia biblioteca, ma per quanto ne so che è abbastanza stabile. Tu sei più che benvenuti a utilizzare in qualsiasi modo si vede in forma. Ho usato Coretween in molte produzioni commerciali compreso questo abbiamo fatto per StGeorge banca qui in Australia.

Altri suggerimenti

Qui ci sono alcune librerie di animazione basato Actionscript:

TweenMax

Tweener

Entrambi funzionano bene, e dovrebbe aiutarvi con ciò che è necessario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top