123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- <!DOCTYPE html>
- <html lang="it">
- <head>
- <meta charset="utf-8" />
- <base href="../../../" />
- <script src="page.js"></script>
- <link type="text/css" rel="stylesheet" href="page.css" />
- </head>
- <body>
- <h1>[name]</h1>
- <p class="desc">
- AnimationAction pianifica l'esecuzione delle animazioni archiviate in
- [page:AnimationClip AnimationClips].<br /><br />
- Nota: La maggior parte dei metodi di AnimationAction può essere concatenata.
- Per una paronamica dei diversi elementi del sistema di animazione di three.js consultare
- l'articolo "Sistema di animazione" nella sezione "Prossimi Passi" del manuale.
- </p>
- <h2>Costruttore</h2>
- <h3>[name]( [param:AnimationMixer mixer], [param:AnimationClip clip], [param:Object3D localRoot] )</h3>
- <p>
- [page:AnimationMixer mixer] - l'`AnimationMixer` controllato da questa azione.<br />
- [page:AnimationClip clip] - l'`AnimationClip` che contiene i dati di animazione per questa azione.<br />
- [page:Object3D localRoot] - l'oggetto root su cui viene eseguita questa azione.<br /><br />
- Nota: Invece di chiamare questo costruttore direttamente, dovresti creare un'istanza AnimationAction con
- [page:AnimationMixer.clipAction] poiché questo metodo fornisce la memorizzazione nella cache per migliorare
- le prestazioni.
- </p>
- <h2>Proprietà</h2>
- <h3>[property:Boolean clampWhenFinished]</h3>
- <p>
- Se `clampWhenFinished` è impostato a true l'animazione verrà automaticamente messa in [page:.paused pausa]
- sull'ultimo frame.<br /><br />
- Se `clampWhenFinished` è impostato a false, [page:.enabled enabled] verrà automaticamente impostato a false
- al termine dell'ultimo ciclo di animazione, in modo che questa azione non abbia più alcun impatto.<br /><br />
- Il valore di default è false.<br /><br />
- Nota: `clampWhenFinished` non ha impatto se l'azione viene interrotta (ha effetto solo se il suo ultimo ciclo
- è effettivamente terminato).
- </p>
- <h3>[property:Boolean enabled]</h3>
- <p>
- Impostare `enabled` a `false` disabilita questa azione, in modo che non abbia più alcun impatto. Il valore di default è `true`. <br /><br />
- Quando l'azione viene riattivata (re-enabled), l'animazione continua dal [page:.time tempo] corrente
- (impostare `enabled` a `false` non resetta l'azione). <br /><br />
- Nota: Impostare `enabled` a `true` non riavvia automaticamente l'azione. Impostare `enabled` a `true`
- farà riavviare l'animazione immediatamente solo se è soddisfatta la seguente condizione:
- [page:.paused paused] è `false`, l'azione non è stata disattivata nel frattempo
- (eseguendo un comando di [page:.stop stop] o [page:.reset reset]) e né [page:.weight weight] né
- [page:.timeScale timeScale] sono pari a `0`.
- </p>
- <h3>[property:Number loop]</h3>
- <p>
- La modalità di looping può essere modificata con [page:.setLoop setLoop]. L'impostazione predefinita è
- [page:Animation THREE.LoopRepeat] (con un numero infinito di [page:.repetitions ripetizioni])<br /><br />
- Il valore deve essere una di queste costanti:<br /><br />
- [page:Animation THREE.LoopOnce] - riproduce il clip una volta,<br />
- [page:Animation THREE.LoopRepeat] - riproduce il clip con il numero di `ripetizioni` prescelto,
- ogni volta saltando dalla fine della clip direttamente al suo inizio,<br />
- [page:Animation THREE.LoopPingPong] - riproduce il clip con il numero di `ripetizioni` prescelto,
- alternativamente in avanti e in indietro.
- </p>
- <h3>[property:Boolean paused]</h3>
- <p>
- Impostando `paused` a `true` l'azione verrà sospesa impostando il time scale effettivo a `0`. Il valore di default è `false`.
- </p>
- <h3>[property:Number repetitions]</h3>
- <p>
- Il numero di ripetizioni dell'[page:AnimationClip] eseguite nel corso di questa azione.
- Può essere settato tramite [page:.setLoop setLoop]. Il valore di default è `Infinity`.<br /><br />
- Se la modalità di [page:loop looping] è impostata a [page:Animation THREE.LoopOnce], impostare questo valore non ha effetti.
- </p>
- <h3>[property:Number time]</h3>
- <p>
- L'ora locale di questa azione (in secondi, partendo da `0`).<br /><br />
- Il valore viene bloccato a `0...clip.duration` (in base allo stato del ciclo). Può essere scalato
- rispetto al tempo globale del mixer modificando [page:.timeScale timeScale] (utilizzando
- [page:.setEffectiveTimeScale setEffectiveTimeScale] o [page:.setDuration setDuration]). <br />
- </p>
- <h3>[property:Number timeScale]</h3>
- <p>
- Fattore di scala per il [page:.time tempo]. Un valore uguale a `0` mette in pausa l'azione. Valori
- negativi fanno sì che l'animazione venga riprodotta all'indietro. Il valore di default è `1`. <br /><br />
- Le proprietà/metodi relativi a `timeScale` (rispettivamente `time`) sono:
- [page:.getEffectiveTimeScale getEffectiveTimeScale],
- [page:.halt halt],
- [page:.paused paused],
- [page:.setDuration setDuration],
- [page:.setEffectiveTimeScale setEffectiveTimeScale],
- [page:.stopWarping stopWarping],
- [page:.syncWith syncWith],
- [page:.warp warp].
- </p>
- <h3>[property:Number weight]</h3>
- <p>
- Il grado di influenza di questa azione (nell'intervallo `[0, 1]`). I valori tra `0` (nessun impatto)
- e 1 (impatto totale) possono essere usati per combinare più azioni. Il valore di default è `1`. <br /><br />
- Le proprietà/metodi relativi a `weight` sono:
- [page:.crossFadeFrom crossFadeFrom],
- [page:.crossFadeTo crossFadeTo],
- [page:.enabled enabled],
- [page:.fadeIn fadeIn],
- [page:.fadeOut fadeOut],
- [page:.getEffectiveWeight getEffectiveWeight],
- [page:.setEffectiveWeight setEffectiveWeight],
- [page:.stopFading stopFading].
- </p>
- <h3>[property:Boolean zeroSlopeAtEnd]</h3>
- <p>
- Abilita l'interpolazione uniforme senza clip separati per inizio, loop e fine. Il valore di default è `true`.
- </p>
- <h3>[property:Boolean zeroSlopeAtStart]</h3>
- <p>
- Abilita l'interpolazione uniforme senza clip separati per inizio, loop e fine. Il valore di default è `true`.
- </p>
- <h2>Metodi</h2>
- <h3>[method:this crossFadeFrom]( [param:AnimationAction fadeOutAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )</h3>
- <p>
- Provoca il [page:.fadeIn fade in] (la dissolvenza in entrata) di questa azione, e la dissolvenza in uscita di un'altra azione
- simultaneamente, entro l'intervallo passato. Questo metodo può essere concatenato.<br /><br />
- Se warpBoolean è true, verranno applicati ulteriori [page:.warp warping] (modifiche graduali delle scale temporali).<br /><br />
- Nota: Come con `fadeIn`/`fadeOut`, la dissolvenza inizia/termina con un weight di 1.
- </p>
- <h3>[method:this crossFadeTo]( [param:AnimationAction fadeInAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )</h3>
- <p>
- Provoca il [page:.fadeOut fade out] (la dissolvenza in uscita) di questa azione, e la dissolvenza in entrata di un'altra azione
- simultaneamente, entro l'intervallo passato. Questo metodo può essere concatenato.<br /><br />
- Se warpBoolean è true, verranno applicati ulteriori [page:.warp warping] (modifiche graduali delle scale temporali).<br /><br />
- Nota: Come con `fadeIn`/`fadeOut`, la dissolvenza inizia/termina con un weight di 1.
- </p>
- <h3>[method:this fadeIn]( [param:Number durationInSeconds] )</h3>
- <p>
- Aumenta il [page:.weight weight] di questa azione gradualmente da `0` a `1`, entro l'intervallo passato.
- Questo metodo può essere concatenato.
- </p>
- <h3>[method:this fadeOut]( [param:Number durationInSeconds] )</h3>
- <p>
- Diminuisce il [page:.weight weight] di questa azione gradualmente da `1` a `0`, entro l'intervallo passato.
- Questo metodo può essere concatenato.
- </p>
- <h3>[method:Number getEffectiveTimeScale]()</h3>
- <p>
- Restituisce l'effettivo time scale (considerando lo stato attuale di [page:.warp warping] e di [page:.paused paused]).
- </p>
- <h3>[method:Number getEffectiveWeight]()</h3>
- <p>
- Restituisce l'effettivo weight (considerando lo stato attuale di fading e di [page:.enabled enabled]).
- </p>
- <h3>[method:AnimationClip getClip]()</h3>
- <p>
- Restituisce la clip che contiene i dati di animazione di questa azione.
- </p>
- <h3>[method:AnimationMixer getMixer]()</h3>
- <p>
- Restituisce il mixer responsabile dell'esecuzione di questa azione.
- </p>
- <h3>[method:Object3D getRoot]()</h3>
- <p>
- Restituisce l'oggetto root sul quale questa animazione è eseguita.
- </p>
- <h3>[method:this halt]( [param:Number durationInSeconds] )</h3>
- <p>
- Decelera la velocità di questa animazione a `0` diminuendo gradualmente il [page:.timeScale timeScale]
- (a partire dal valore corrente), entro l'intervallo passato. Questo metodo può essere concatenato.
- </p>
- <h3>[method:Boolean isRunning]()</h3>
- <p>
- Restituisce true se il [page:.time time] dell'azione è attualmente in esecuzione.<br /><br />
- Oltre ad essere attivato nel mixer (vedi [page:.isScheduled isScheduled]) le seguenti condizioni devono essere soddisfatte:
- [page:.paused paused] deve essere uguale a false, [page:.enabled enabled] deve essere uguale a true,
- [page:.timeScale timeScale] deve essere diversa da `0`, e non deve essere prevista nessuna programmazione
- per un avvio ritardato ([page:.startAt startAt]).<br /><br />
- Nota: il fatto che `isRunning` sia true non significa necessariamente che l'animazione sia effettivamente visibile.
- Ciò avviene solo se [page:.weight weight] è impostato su un valore diverso da zero.
- </p>
- <h3>[method:Boolean isScheduled]()</h3>
- <p>
- Restituisce true se questa azione è attivata nel mixer.<br /><br />
- Nota: Questo non significa necessariamente che l'animazione sia effettivamente in esecuzione (confronta
- le condizioni aggiuntive per [page:.isRunning isRunning]).
- </p>
- <h3>[method:this play]()</h3>
- <p>
- Dice al mixer di attivare l'azione. Questo metodo può essere concatenato.<br /><br />
- Nota: Attivare questa azione non significa necessatiamente che l'animazione verrà avviata immediatamente:
- Se l'azione era già terminata prima (raggiungendo la fine del suo ultimo loop), o se è stato impostato un tempo
- per un inizio ritardato (tramite [page:.startAt startAt]), prima deve essere eseguito un [page:.reset reset].
- Anche altre impostazioni, (come [page:.paused paused]=true, [page:.enabled enabled]=false,
- [page:.weight weight]=0, [page:.timeScale timeScale]=0) possono impedire la riproduzione dell'animazione.
- </p>
- <h3>[method:this reset]()</h3>
- <p>
- Reimposta l'azione. Questo metodo può essere concatenato.<br /><br />
- Questo metodo imposta [page:.paused paused] a false, [page:.enabled enabled] a true,
- [page:.time time] a `0`, interrompe ogni fading e wraping programmati, e rimuove il conteggio del loop
- interno per l'avvio ritardato.<br /><br />
- Nota: .`reset` è sempre chiamato da [page:.stop stop], ma .`reset` non chiama .`stop`.
- Questo significa che se vuoi chiamare entrambi i metodi, non chiamare .`reset`, chiama invece .`stop`.
- </p>
- <h3>[method:this setDuration]( [param:Number durationInSeconds] )</h3>
- <p>
- Imposta la durata per un singolo loop dell'azione (regolando il [page:.timeScale timeScale] e
- interrompendo qualsiasi warping programmato). Questo metodo può essere concatenato.
- </p>
- <h3>[method:this setEffectiveTimeScale]( [param:Number timeScale] )</h3>
- <p>
- Imposta il [page:.timeScale timeScale] e interrompe qualsiasi warping programmato. Questo metodo può essere concatenato.<br /><br />
- Se [page:.paused paused] è false, l'effettivo time scale (una proprietà interna) sarà impostato a questo valore,
- altrimenti il time scale effettivo (che influenza direttamente l'animazione in questo momento) verrà impostato a `0`.<br /><br />
- Nota: Se .`timeScale` è impostato `0` da questo metodo, .`paused` non verrà impostato automaticamente a `true`.
- </p>
- <h3>[method:this setEffectiveWeight]( [param:Number weight] )</h3>
- <p>
- Imposta il [page:.weight weight] e interrompe qualsiasi fading programmato. Questo metodo può essere concatenato.<br /><br />
- Se [page:.enabled enabled] è true, l'effettivo weight (una proprietà interna) sarà impostato a questo valore,
- altrimenti il weight effettivo (che influenza direttamente l'animazione in questo momento) verrà impostata a `0`.<br /><br />
- Nota: Se .`weight` è impostato `0` da questo metodo, .`enabled` non passerà automaticamente a `false`.
- </p>
- <h3>[method:this setLoop]( [param:Number loopMode], [param:Number repetitions] )</h3>
- <p>
- Imposta la modalità di [page:.loop looping] e il numero di [page:.repetitions ripetizioni]. Questo metodo può essere concatenato.
- </p>
- <h3>[method:this startAt]( [param:Number startTimeInSeconds] )</h3>
- <p>
- Definisce il tempo per un avvio ritardato (solitamente passato come [page:AnimationMixer.time] +
- deltaTimeInSeconds). Questo metodo può essere concatenato.<br /><br />
- Nota: L'animazione inizierà solo all'ora indicata se .`startAt` è concatenato con
- [page:.play play], o se l'azione è già stata attivata nel mixer (da una precedente chiamata di .`play`,
- senza che nel frattempo sia stata fermata o resettata).
- </p>
- <h3>[method:this stop]()</h3>
- <p>
- Dice al mixer di disattivare questa azione. Questo metodo può essere concatenato.<br /><br />
- L'azione verrà immediatamente interrotta e completamente [page:.reset resettata].<br /><br />
- Nota: puoi interrompere tutte le azioni attive sullo stesso mixer in una volta sola tramite
- [page:AnimationMixer.stopAllAction mixer.stopAllAction].
- </p>
- <h3>[method:this stopFading]()</h3>
- <p>
- Interrompe qualsiasi [page:.fadeIn fading] programmato applicato a questa azione. Questo metodo può essere concatenato.
- </p>
- <h3>[method:this stopWarping]()</h3>
- <p>
- Interrompe qualsiasi [page:.warp warping] programmato applicato a questa azione. Questo metodo può essere concatenato.
- </p>
- <h3>[method:this syncWith]( [param:AnimationAction otherAction] )</h3>
- <p>
- Sincronizza questa azione con l'altra azione passata. Questo metodo può essere concatenato.<br /><br />
- La sincronizzazione viene fatta impostando i valori [page:.time time] e [page:.timeScale timeScale]
- di questa azione ai corrispondenti valori dell'altra azione (interrompendo qualsiasi warping programmato).<br /><br />
- Nota: Le modifiche future di `time` e `timeScale` dell'altra azione non verranno rilevate.
- </p>
- <h3>[method:this warp]( [param:Number startTimeScale], [param:Number endTimeScale], [param:Number durationInSeconds] )</h3>
- <p>
- Modifica la velocità di riproduzione, entro l'intervallo di tempo passato, modificando
- gradualmente il [page:.timeScale timeScale] da `startTimeScale` a `endTimeScale`. Questo metodo può essere concatenato.
- </p>
- <h2>Eventi</h2>
- <p class="desc">
- Ci sono due eventi che indicano quando un singolo ciclo dell'azione o l'intera azione è terminata. Si può rispondere ad essi con:
- </p>
- <code>
- mixer.addEventListener( 'loop', function( e ) { …} ); // properties of e: type, action and loopDelta
- mixer.addEventListener( 'finished', function( e ) { …} ); // properties of e: type, action and direction
- </code>
- <h2>Source</h2>
- <p>
- [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
- </p>
- </body>
- </html>
|