Desidero animare gli oggetti MoviveClips/Sprite nel modo più uniforme possibile. Tuttavia finora l'unico metodo che funziona è inserire il codice di movimento nel gestore di eventi EnterFrame. C'è un problema con questo approccio: quando il framerate su una macchina specifica è inferiore al framerate desiderato, l'intero gioco rallenta. Voglio essere in grado di farlo in modo indipendente dal tempo.ActionScript 3: Animazione programmatica uniforme
risposta
Esistono due modi per eseguire l'animazione programmatica all'interno del lettore Flash. Il primo che hai già indicato usando onEnterFrame. Tuttavia, come avrai già notato, per ottenere un'animazione fluida devi aumentare la frequenza fotogrammi complessiva del filmato. In questo modo aumenterà anche il carico della CPU per l'intero periodo di tempo in cui viene eseguito il SWF. Questo non è qualcosa che vuoi sempre.
L'altro modo di eseguire l'animazione programmatica è utilizzando un timer. All'interno di un gestore di timer è possibile chiamare una funzione denominata updateAfterEvent
che aggiornerà lo schermo indipendentemente dall'FPS che avresti impostato per il tuo SWF. Pertanto, l'utilizzo di un timer lascia un gateway per eseguire animazioni fluide all'interno del player Flash senza aumentare la frequenza fotogrammi complessiva del file SWF.
Due anni fa ho deciso di creare le mie librerie di tween per Flash (a causa delle mie frustrazioni con le librerie di tween esistenti disponibili). L'ho rilasciato con il nome Coretween e questa libreria ti consente, tra le altre cose, di scegliere il tipo di animazione che preferisci per ogni singola interpolazione. Nella pagina della documentazione do uno example della differenza tra animazione basata sul frame e basata sul tempo. Il file SWF di esempio su quella pagina viene eseguito a 12 fps ma, come puoi vedere, le interpolazioni del cerchio inferiore risultano molto più fluide perché controllate da un timer che fa tic tac a 60 fps e aggiorna lo schermo in-dipendentemente dalla frequenza fotogrammi del file SWF. Tieni a mente che anche se il timer scandisce a 60 fps, in realtà il Flash Player non sarà mai in grado di raggiungere questo frame rate. Tuttavia, cercherà di ottenere questa frequenza fotogrammi che si tradurrà in un'animazione generale molto più fluida.
Purtroppo fino ad ora non sono stato in grado di rilasciare una versione 1.0 della mia libreria, ma per quanto ne so è abbastanza stabile. Sei più che benvenuto ad usarlo in qualsiasi modo tu ritenga opportuno. Ho usato Coretween in molte produzioni commerciali tra cui quella che abbiamo fatto per la banca StGeorge qui in Australia.
Ecco alcune librerie di animazione basate Actionscript:
Entrambi funzionano bene, e dovrebbe aiutare con quello che vi serve.
Sfortunatamente no, dal momento che ho bisogno di controllo regolare in tempo reale sui miei oggetti. Il metodo tweener, che garantisce che a volte in futuro l'oggetto arriverà alla sua posizione desiderata è "non buono". – George
- 1. actionscript 3 init()
- 2. Debugging Haxe (ActionScript 3)
- 3. Eclipse e Actionscript 3
- 4. actionscript 3 e JSON
- 5. Ereditarietà multipla in ActionScript 3
- 6. Dynamic Audio Generation Actionscript 3
- 7. Actionscript 3 - Importazione file SVG
- 8. Animazione uniforme della visualizzazione nascondi/mostra nel layout lineare android
- 9. Informazioni su Array :: splice in ActionScript 3
- 10. Actionscript 3 ExternalInterface, Passa variabile a javascript?
- 11. Disegna testo sulla forma in ActionScript 3
- 12. stringhe di ritaglio con actionscript 3
- 13. La comunicazione tra C++ e ActionScript 3
- 14. Che cos'è ActionScript 3? Come funziona?
- 15. Sintassi di Static Constructor in Actionscript-3?
- 16. Actionscript 3: caricamento dinamico di file ai?
- 17. Ottieni l'URL del browser corrente - ActionScript 3
- 18. array casuale as3 - array randomize - actionscript 3
- 19. Funzione di animazione CSS3 per una rivoluzione 3D uniforme?
- 20. Animazione di testo uniforme (selezione scorrevole) tramite WPF
- 21. Ripeti animazione ogni 3 secondi
- 22. Best practice per eventi ActionScript 2: esiste un modo per simulare eventi in stile ActionScript 3?
- 23. Rilevamento perdite di memoria nel progetto ActionScript-3
- 24. Disporre (z) l'ordine degli oggetti in Flash con ActionScript 3?
- 25. eventi touch vs eventi clic del mouse utilizzando actionscript 3
- 26. Pacchetto di importazione Actionscript 3. * vs pacchetto di importazione. Classe
- 27. Quali sono le differenze chiave tra JavaScript e ActionScript 3?
- 28. Quali sono le differenze tra flex mxml e actionscript-3
- 29. Dichiarazione dichiarazione dichiarazione su loop in Actionscript 3
- 30. Actionscript 3 - il controllo di una connessione ad internet
Fantastico! Proprio quello di cui ho bisogno. Aspetterò con l'accettazione, in modo da poter ottenere più upvotes :) – George
Grazie. Le persone possono ancora votare quando viene accettata una risposta. :) – Luke
Le domande senza risposta accettata di solito ottengono più attenzione. La maggior parte degli utenti non si preoccupa di mandare indietro una risposta dopo essere stata accettata. – George