sintassi di base per un loop di animazione?

voti
1

So che jQuery, ad esempio, può fare l'animazione di sorta. So anche che al centro stesso dell'animazione, ci deve me una sorta di anello di fare l'animazione. Che cosa è un esempio di tale ciclo?

Una risposta completa idealmente dovrebbe rispondere alle seguenti domande:

  • Che cosa è una sintassi di base per un efficace ricorsione di animazione che può animare una singola proprietà di un particolare oggetto in un momento? La funzione dovrebbe essere in grado di variare il suo oggetto target e proprietà dell'oggetto.
  • Quali argomenti / parametri che dovrebbe prendere?
  • Che cosa è una buona gamma di ribadire il ciclo? In millisecondi? (Questo dovrebbe essere un parametro / argomento della funzione?)

RICORDA:

  • La risposta non è necessariamente linguaggio specifico, ma se si sta scrivendo in una lingua specifica, si prega di specificare quale.
  • La gestione degli errori è un plus. {Non c'è niente di più irritante (per i nostri scopi) di un'animazione che fa qualcosa di strano, come fermarsi a metà.}

Grazie!

È pubblicato 07/03/2010 alle 14:52
fonte dall'utente
In altre lingue...                            


1 risposte

voti
1

tipicamente (per jQuery almeno) questo non è fatto in un ciclo, ma piuttosto in una serie di callback.

pseudojavascript:

function startAnimation(element, endPosition, duration) {
    var startPosition = element.position;
    var startTime = getCurrentTime();
    function animate() {
        var timeElapsed = getCurrentTime() - startTime;
        if (timeElapsed > duration) {
            element.position = endPosition;
            stopTimer();
        } else {
            // interpolate based on time
            element.position = startPosition +
                (endPosition - startPosition) * timeElapsed / duration;
        }
    }
    startRepeatingTimerWithCallbackAndInterval(animate, 1.0 / 30.0);
}

E 'anche possibile utilizzare gli oggetti per memorizzare i dati di partenza, invece di chiusure.

Questo non risponde completamente tutti i punti in questione, ma è un punto di partenza.

Risposto il 08/03/2010 a 20:54
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more