[name]

Les AnimationActions programment la performance des animations qui sont stockées dans [page:AnimationClip AnimationClips].

Note: La plupart des méthodes d'AnimationAction peuvent être chainées.

Pour avoir un aperçu des différents éléments du système d'animation de three.js, consultez l'article "Système d'Animation" dans la section "Étapes Suivantes" du manuel.

Constructeur

[name]( [param:AnimationMixer mixer], [param:AnimationClip clip], [param:Object3D localRoot] )

[page:AnimationMixer mixer] - l'`AnimationMixer` contrôlé par cette action.
[page:AnimationClip clip] - l`AnimationClip` qui contient les données d'animation pour cette action.
[page:Object3D localRoot] - l'objet racine sur lequel est appliqué l'action.

Note: Au lieu d'appeler ce constructeur directement, vous devriez instantier un AnimationAction avec [page:AnimationMixer.clipAction] étant donné que cette méthode applique une mise en cache pour obtenir de meilleures performances.

Propriétés

[property:Boolean clampWhenFinished]

Si `clampWhenFinished` est mis à true l'animation sera automatiquement [page:.paused mise en pause] à son dernier frame.

Si `clampWhenFinished` est mis à false, [page:.enabled enabled] sera automatiquement reglé sur false quand la dernière boucle de l'action sera terminée, afin que cette action n'ai pas plus d'impact.

La valeur par défaut est false.

Note: `clampWhenFinished` n'a pas d'impact si l'action est interrompue (il n'a d'impact que si la dernière boucle de l'action s'est réellement terminée).

[property:Boolean enabled]

Régler `enabled` sur `false` désactive cette action, afin qu'elle n'ai aucun impact. La valeur par défaut est `true`.

Quand l'action est réactivée, l'animation continue depuis son [page:.time time] actuel (Régler `enabled` sur `false` ne relance pas l'action).

Note: Régler `enabled` sur `true` ne redémarre pas automatiquement l'action. Régler `enabled` sur `true` ne redémarrera l'action immédiatement que si les conditions suivantes sont remplies: [page:.paused paused] est à `false`, l'action n'a pas été désactivée (en exécutant un [page:.stop stop] ou un [page:.reset reset]), et ni [page:.weight weight] ni [page:.timeScale timeScale] ne sont à `0`.

[property:Number loop]

Le mode répeter (peut-être changé avec [page:.setLoop setLoop]). Sa valeur par défaut est [page:Animation THREE.LoopRepeat] (avec un nombre infini de répétitions [page:.repetitions repetitions])

Doit être une de ces constantes:

[page:Animation THREE.LoopOnce] - joue le clip une fois,
[page:Animation THREE.LoopRepeat] - joue le clip le nombre choisi de `répetitions`, en sautant à chaque fois de la fin du clip à son début,
[page:Animation THREE.LoopPingPong] - joue le clip le nombre choisi de `répetitions`, alternant entre lecture du début vers la fin et lecture de la fin vers le début.

[property:Boolean paused]

Régler `paused` sur `true` met l'exécution de l'action en pause en mettant l'échelle temporelle effective à `0`. La valeur par défaut est `false`.

[property:Number repetitions]

Le nombre de répétitions de l'[page:AnimationClip] actuel réalisées durant cette action. Peut-être paramétré depuis [page:.setLoop setLoop]. La valeur par défaut est `Infinity`.

Changer ce nombre n'a aucun effet, si le [page:.loop loop mode] est réglé sur [page:Animation THREE.LoopOnce].

[property:Number time]

Le temps local de cette action (en secondes, en commençant par `0`).

La valeur peut-être restreinte à `0...clip.duration` (selon l'état de la boucle). Il peut être mis à l'échelle relativement à celui du mixer global en changeant [page:.timeScale timeScale] (en utilisant [page:.setEffectiveTimeScale setEffectiveTimeScale] ou [page:.setDuration setDuration]).

[property:Number timeScale]

Facteur de mise à l'échelle pour le [page:.time time]. Une valeur de `0` cause la mise en pause de l'animation. Une valeur négative fera jouer l'animation à l'envers . La valeur par défaut est `1`.

Les propriétés/méthodes concernant `timeScale` (respectivement `time`) sont: [page:.getEffectiveTimeScale getEffectiveTimeScale], [page:.halt halt], [page:.paused paused], [page:.setDuration setDuration], [page:.setEffectiveTimeScale setEffectiveTimeScale], [page:.stopWarping stopWarping], [page:.syncWith syncWith], [page:.warp warp].

[property:Number weight]

Le degré d'importance d'une action (compris dans l'intervalle `[0, 1]`). Les valeurs entre `0` (aucun impact) et 1 (impact total) peuvent être utilisées pour mélanger plusieurs actions. La valeur par défaut est `1`.

Les propriétés/méthodes concernant `weight` sont: [page:.crossFadeFrom crossFadeFrom], [page:.crossFadeTo crossFadeTo], [page:.enabled enabled], [page:.fadeIn fadeIn], [page:.fadeOut fadeOut], [page:.getEffectiveWeight getEffectiveWeight], [page:.setEffectiveWeight setEffectiveWeight], [page:.stopFading stopFading].

[property:Boolean zeroSlopeAtEnd]

Permet une interpolation fluide sans avoir de clips séparés pour le début, les répétitions et la fin. La valeur par défaut est `true`.

[property:Boolean zeroSlopeAtStart]

Permet une interpolation fluide sans avoir de clips séparés pour le début, les répétitions et la fin. La valeur par défaut est `true`.

Méthodes

[method:this crossFadeFrom]( [param:AnimationAction fadeOutAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )

Provoque l'[page:.fadeIn apparition] de cette action, en faisant disparaître une autre action simultanément, durant l'intervalle de temps passée en paramètre. Cette méthode peut être chaînée.

Si warpBoolean est à true, un [page:.warp warping] additionnel (changement graduel de l'échelle temporelle) sera appliqué.

Note: Comme avec `fadeIn`/`fadeOut`, le fading commence/termine avec un weight à 1.

[method:this crossFadeTo]( [param:AnimationAction fadeInAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )

Provoque la [page:.fadeIn disparition] de cette action, en faisant apparaître une autre action simultanément, durant l'intervalle de temps passée en paramètre. Cette méthode peut être chaînée.

Si warpBoolean est à true, un [page:.warp warping] additionnel (changement graduel de l'échelle temporelle) sera appliqué.

Note: Comme avec `fadeIn`/`fadeOut`, le fading commence/termine avec un weight à 1.

[method:this fadeIn]( [param:Number durationInSeconds] )

Augmente graduellement le [page:.weight weight] de cette action de `0` à `1`, durant l'intervalle de temps passée en paramètre. Cette méthode peut être chaînée.

[method:this fadeOut]( [param:Number durationInSeconds] )

Diminue graduellement le [page:.weight weight] de cette de `1` à `0`, durant l'intervalle de temps passée en paramètre. Cette méthode peut être chaînée.

[method:Number getEffectiveTimeScale]()

Renvoie l'échelle temporelle effective (en prenant en compte l'état actuel du warping et de [page:.paused paused]).

[method:Number getEffectiveWeight]()

Renvoie le weight effectif (en prenant en compte l'état actuel du fondu et de [page:.enabled enabled]).

[method:AnimationClip getClip]()

Renvoie le clip qui contient les données d'animation pour cette action.

[method:AnimationMixer getMixer]()

Renvoie le mixer qui est responsable de jouer cette action.

[method:Object3D getRoot]()

Renvoie l'objet racine sur lequel l'action est appliquée.

[method:this halt]( [param:Number durationInSeconds] )

Diminue la vitesse de l'animation jusqu'à `0` en diminuant le [page:.timeScale timeScale] graduellement (en commençant depuis sa valeur actuelle), durant l'intervalle de temps passée en paramètre. Cette méthode peut être chaînée.

[method:Boolean isRunning]()

Renvoie true si le [page:.time time] de l'action est en cours.

En plus d'être activé dans le mixer (see [page:.isScheduled isScheduled]) les conditions suivantes doivent être remplies: [page:.paused paused] est à faux, [page:.enabled enabled] est à true, [page:.timeScale timeScale] est différent de `0`, et un départ différé n'est pas programmé ([page:.startAt startAt]).

Note: le fait que `isRunning` soit à true n'indique pas nécessairement que l'action est visible. C'est seulement le cas si le [page:.weight weight] est reglé sur une valeur non-nulle.

[method:Boolean isScheduled]()

Renvoie true, si cette action est activée dans le mixer.

Note: Cela n'indique pas nécessairement que l'action est en cours d'éxécution (voir les conditions additionnelles pour [page:.isRunning isRunning]).

[method:this play]()

Indique au mixer d'activer cette action. Cette méthode peut être chaînée.

Note: Activer cette action ne signifie pas nécessairement que l'animation démarrera directement: Si l'action s'était déjà terminée avant (en atteignant la fin de sa dernière boucle), ou si une durée pour un départ différé a été renseignée (via [page:.startAt startAt]), un [page:.reset reset] doit être éxécuté avant. Quelques autres paramètres ([page:.paused paused]=true, [page:.enabled enabled]=false, [page:.weight weight]=0, [page:.timeScale timeScale]=0) peuvent empêcher cette animation d'être jouée, également.

[method:this reset]()

Réinitialise l'action. Cette méthode peut être chaînée.

Cette méthode passe [page:.paused paused] à false, [page:.enabled enabled] à true, [page:.time time] à `0`, annule tous les fondus et warping programmés, retire le compteur de boucles interne et les départs différés programmés.

Note: .`reset` est toujours appelé par [page:.stop stop], mais .`reset` n'appelle pas .`stop` de lui-même. Cela signifie que: Si vous voulez à la fois, réinitialiser et stopper, n'appellez pas .`reset`; mais .`stop`.

[method:this setDuration]( [param:Number durationInSeconds] )

Renseigne la durée pour une seule boucle de cette action (en modifiant [page:.timeScale timeScale] et en stoppant tous les warpings programmés). Cette méthode peut être chaînée.

[method:this setEffectiveTimeScale]( [param:Number timeScale] )

Renseigne le [page:.timeScale timeScale] et stoppe tous les warpings programmés. Cette méthode peut être chaînée.

Si [page:.paused paused] est à false, l'échelle temporelle effective (propriété interne) sera également mise à cette valeur; par ailleurs l'échelle temporelle effective (affectant directement l'animation à cet instant) sera mis à `0`.

Note: .`paused` ne sera pas automatiquement mis à `true`, si le .`timeScale` est mis à `0` par cette méthode.

[method:this setEffectiveWeight]( [param:Number weight] )

Renseigne le [page:.weight weight] et stop tous les fondus programmés. Cette méthode peut être chaînée.

Si [page:.enabled enabled] est à true, le weight effectif (propriété interne) sera également mis à cette valeur; Par ailleurs le weight effectif (affectant directement l'action à cet instant) sera mis à `0`.

Note: .`enabled` ne sera pas automatiquement mis à `false`, si le .`weight` est mis à `0` par cette méthode.

[method:this setLoop]( [param:Number loopMode], [param:Number repetitions] )

Renseigne le [page:.loop loop mode] et le nombre de [page:.repetitions répétitions]. Cette méthode peut être chaînée.

[method:this startAt]( [param:Number startTimeInSeconds] )

Définis le temps pour un départ différé (généralement [page:AnimationMixer.time] + deltaTimeInSeconds). Cette méthode peut être chaînée.

Note: Cette action ne commencera qu'à un temps donné, si .`startAt` est chaîné avec [page:.play play], ou si l'action a déjà été activée dans le mixer (par un appel précédent de .`play`, sans l'avoir stoppée ou réinitialisée entre temps).

[method:this stop]()

Indique au mixer de désactiver cette action. Cette méthode peut être chaînée.

L'action sera immédiatement stoppée et complètement [page:.reset reset].

Note: Vous pouvez stopper simultanément toutes les actions actives d'un même mixer via [page:AnimationMixer.stopAllAction mixer.stopAllAction].

[method:this stopFading]()

Stoppe tous les [page:.fadeIn fondus] programmés qui sont appliqués à cette action. Cette méthode peut être chaînée.

[method:this stopWarping]()

Stoppe tous les [page:.warp warping] programmés qui sont appliqués à cette action. Cette méthode peut être chaînée.

[method:this syncWith]( [param:AnimationAction otherAction] )

Synchronise cette action avec l'action passée en paramètre. Cette méthode peut être chaînée.

La synchronisation est faite en dupliquant les valeurs du [page:.time time] et du [page:.timeScale timeScale] de l'autre action (stoppant tous les warpings programmés).

Note: Les changements futurs du `time` et du `timeScale` de l'autre action ne seront pas détéctés.

[method:this warp]( [param:Number startTimeScale], [param:Number endTimeScale], [param:Number durationInSeconds] )

Change la vitesse de lecture, durant l'intervalle temporelle passée en paramètre, en modifiant le [page:.timeScale timeScale] graduellement depuis `startTimeScale` jusqu'à `endTimeScale`. Cette méthode peut être chaînée.

Évènements

Il y a deux évènements indiquant quand une boucle de l'animation ou l'animation elle-même s'est terminée. Vous pouvez y réagir avec:

mixer.addEventListener( 'loop', function( e ) { …} ); // properties of e: type, action and loopDelta mixer.addEventListener( 'finished', function( e ) { …} ); // properties of e: type, action and direction

Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]