AnimationAction.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. <!DOCTYPE html>
  2. <html lang="pt-br">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="page.js"></script>
  7. <link type="text/css" rel="stylesheet" href="page.css" />
  8. </head>
  9. <body>
  10. <h1>[name]</h1>
  11. <p class="desc">
  12. AnimationAction programa o desempenho das animações que são armazenadas em
  13. [page:AnimationClip AnimationClips].<br /><br />
  14. Nota: A maioria dos métodos da AnimationAction podem ser encadeados.<br /><br />
  15. Para obter uma visão geral dos diferentes elementos do sistema de animação three.js, consulte o
  16. artigo "Sistema de animação" na seção "Próximos Passos" do manual.
  17. </p>
  18. <h2>Construtor</h2>
  19. <h3>[name]( [param:AnimationMixer mixer], [param:AnimationClip clip], [param:Object3D localRoot] )</h3>
  20. <p>
  21. [page:AnimationMixer mixer] - o `AnimationMixer` que é controlado por esta ação.<br />
  22. [page:AnimationClip clip] - o `AnimationClip` que contém os dados da animação para esta ação.<br />
  23. [page:Object3D localRoot] - o objeto raiz no qual esta ação é executada.<br /><br />
  24. Nota: Ao invés de chamar este construtor diretamente, você deve instanciar um AnimationAction com
  25. [page:AnimationMixer.clipAction] uma vez que este método fornece cache para melhor desempenho.
  26. </p>
  27. <h2>Propriedades</h2>
  28. <h3>[property:Boolean clampWhenFinished]</h3>
  29. <p>
  30. Se `clampWhenFinished` estiver definido como true a animação será automaticamente [page:.paused pausada]
  31. em seu último quadro.<br /><br />
  32. Se `clampWhenFinished` estiver definido como false, [page:.enabled enabled] será trocado automaticamente
  33. para false quando o último loop da ação terminar, para que esta ação não tenha mais impacto.<br /><br />
  34. O padrão é falso.<br /><br />
  35. Nota: `clampWhenFinished` não tem impacto se a ação for interrompida (só tem efeito se
  36. seu último loop realmente terminou).
  37. </p>
  38. <h3>[property:Boolean enabled]</h3>
  39. <p>
  40. Definir `enabled` como `false` desativa esta ação, para que não tenha efeito. O padrão é `true`.<br /><br />
  41. Quando a ação é reativada, a animação continua de seu [page:.time time] (tempo)
  42. (configurar `enabled` para `false` não redefine a ação).<br /><br />
  43. Nota: Definir `enabled` como `true` não reinicia automaticamente a animação. Configurar `enabled`
  44. para `true` só reiniciará a animação imediatamente se a seguinte condição for atendida:
  45. [page:.paused paused] é `false`, esta ação não foi desativada nesse meio tempo
  46. (executando um comando [page:.stop stop] ou [page:.reset reset]), e nem [page:.weight weight]
  47. nem [page:.timeScale timeScale] são `0`.
  48. </p>
  49. <h3>[property:Number loop]</h3>
  50. <p>
  51. O modo de looping (pode ser alterado com [page:.setLoop setLoop]). O padrão é
  52. [page:Animation THREE.LoopRepeat] (com um número infinito de [page:.repetitions repetitions] (repetições)).<br /><br />
  53. Deve ser uma destas constantes:<br /><br />
  54. [page:Animation THREE.LoopOnce] - reproduzindo o clipe uma vez,<br />
  55. [page:Animation THREE.LoopRepeat] - reproduzindo o clipe com o número escolhido de `repetições`,
  56. cada vez pulando do final do clipe diretamente para o início,<br />
  57. [page:Animation THREE.LoopPingPong] - reproduzindo o clipe com o número escolhido de `repetições`,
  58. tocando alternadamente para frente e para trás.
  59. </p>
  60. <h3>[property:Boolean paused]</h3>
  61. <p>
  62. Definir `paused` como `true` pausa a execução da ação definindo a escala de tempo efetiva
  63. para '0'. O padrão é `false`.<br /><br />
  64. </p>
  65. <h3>[property:Number repetitions]</h3>
  66. <p>
  67. O número de repetições do [page:AnimationClip] ao longo desta ação.
  68. Pode ser definido através de [page:.setLoop setLoop]. O padrão é `Infinity`.<br /><br />
  69. Definir este número não tem efeito se o [page:.loop modo de loop] está configurado como
  70. [page:Animation THREE.LoopOnce].
  71. </p>
  72. <h3>[property:Number time]</h3>
  73. <p>
  74. O tempo local desta ação (em segundos, começando com `0`).<br /><br />
  75. O valor é fixado ou encapsulado em `0...clip.duration` (de acordo com o estado do loop). Pode ser
  76. dimensionado em relação ao tempo do mixer global, alterando [page:.timeScale timeScale] (usando
  77. [page:.setEffectiveTimeScale setEffectiveTimeScale] ou [page:.setDuration setDuration]).<br />
  78. </p>
  79. <h3>[property:Number timeScale]</h3>
  80. <p>
  81. Fator de escala para o [page:.time tempo]. Um valor de `0` faz com que a animação seja pausada. Valores
  82. negativos fazem com que a animação seja reproduzida para trás. O padrão é `1`.<br /><br />
  83. Propriedades/métodos referentes a `timeScale` (respectivamente `time`) são:
  84. [page:.getEffectiveTimeScale getEffectiveTimeScale],
  85. [page:.halt halt],
  86. [page:.paused paused],
  87. [page:.setDuration setDuration],
  88. [page:.setEffectiveTimeScale setEffectiveTimeScale],
  89. [page:.stopWarping stopWarping],
  90. [page:.syncWith syncWith],
  91. [page:.warp warp].
  92. </p>
  93. <h3>[property:Number weight]</h3>
  94. <p>
  95. O grau de influência desta ação (no intervalo `[0, 1]`). Valores entre '0' (sem impacto)
  96. e 1 (impacto total) podem ser usados para mesclar várias ações. O padrão é `1`. <br /><br />
  97. Propriedades/métodos relativos a `weight` são:
  98. [page:.crossFadeFrom crossFadeFrom],
  99. [page:.crossFadeTo crossFadeTo],
  100. [page:.enabled enabled],
  101. [page:.fadeIn fadeIn],
  102. [page:.fadeOut fadeOut],
  103. [page:.getEffectiveWeight getEffectiveWeight],
  104. [page:.setEffectiveWeight setEffectiveWeight],
  105. [page:.stopFading stopFading].
  106. </p>
  107. <h3>[property:Boolean zeroSlopeAtEnd]</h3>
  108. <p>
  109. Ativa interpolação suave sem separar clipes por início, loop e fim. O padrão é `true`.
  110. </p>
  111. <h3>[property:Boolean zeroSlopeAtStart]</h3>
  112. <p>
  113. Ativa interpolação suave sem separar clipes por início, loop e fim. O padrão é `true`.
  114. </p>
  115. <h2>Métodos</h2>
  116. <h3>[method:this crossFadeFrom]( [param:AnimationAction fadeOutAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )</h3>
  117. <p>
  118. Faz com que a ação [page:.fadeIn fade in] esmaeça outra ação simultaneamente, dentro do
  119. intervalo de tempo passado. Este método pode ser encadeado.<br /><br />
  120. Se warpBoolean for true, [page:.warp warping] (mudanças graduais das escalas de tempo) adicional
  121. será aplicado.<br /><br />
  122. Nota: Como em `fadeIn`/`fadeOut`, o desvanecimento começa/termina com um peso de 1.
  123. </p>
  124. <h3>[method:this crossFadeTo]( [param:AnimationAction fadeInAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )</h3>
  125. <p>
  126. Faz com que a ação [page:.fadeOut fade out] esmaeça em outra ação simultaneamente, dentro do
  127. intervalo de tempo passado. Este método pode ser encadeado.<br /><br />
  128. Se warpBoolean for true, [page:.warp warping] (mudanças graduais das escalas de tempo) adicional
  129. será aplicado.<br /><br />
  130. Nota: Como com `fadeIn`/`fadeOut`, o desvanecimento começa/termina com um peso de 1.
  131. </p>
  132. <h3>[method:this fadeIn]( [param:Number durationInSeconds] )</h3>
  133. <p>
  134. Aumenta o [page:.weight weight] desta ação gradualmente de `0` para `1`, dentro do intervalo de
  135. tempo decorrido. Este método pode ser encadeado.
  136. </p>
  137. <h3>[method:this fadeOut]( [param:Number durationInSeconds] )</h3>
  138. <p>
  139. Diminui o [page:.weight weight] desta ação gradualmente de `1` para `0`, dentro do intervalo de
  140. tempo decorrido. Este método pode ser encadeado.
  141. </p>
  142. <h3>[method:Number getEffectiveTimeScale]()</h3>
  143. <p>
  144. Retorna a escala de tempo efetiva (considerando os estados atuais de distorção (warping) e
  145. [page:.paused paused]).
  146. </p>
  147. <h3>[method:Number getEffectiveWeight]()</h3>
  148. <p>
  149. Retorna o peso efetivo (considerando os estados atuais de desvanecimento (fading) e
  150. [page:.enabled enabled]).
  151. </p>
  152. <h3>[method:AnimationClip getClip]()</h3>
  153. <p>
  154. Retorna o clipe que contém os dados de animação para esta ação.
  155. </p>
  156. <h3>[method:AnimationMixer getMixer]()</h3>
  157. <p>
  158. Retorna o mixer que é responsável por reproduzir esta ação.
  159. </p>
  160. <h3>[method:Object3D getRoot]()</h3>
  161. <p>
  162. Retorna o objeto raiz no qual esta ação é executada.
  163. </p>
  164. <h3>[method:this halt]( [param:Number durationInSeconds] )</h3>
  165. <p>
  166. Desacelera a velocidade desta animação para '0' diminuindo [page:.timeScale timeScale] gradualmente
  167. (a partir de seu valor atual), dentro do intervalo de tempo decorrido. Este método pode ser encadeado.
  168. </p>
  169. <h3>[method:Boolean isRunning]()</h3>
  170. <p>
  171. Retorna verdadeiro se a ação [page:.time time] estiver em execução no momento.<br /><br />
  172. Além de ser ativado no mixer (consulte [page:.isScheduled isScheduled]), as seguintes condições devem ser atendidas:
  173. [page:.paused paused] é igual a false, [page:.enabled enabled] é igual a true,
  174. [page:.timeScale timeScale] é diferente de `0` e não há agendamento para início atrasado
  175. ([page:.startAt startAt]).<br /><br />
  176. Nota: `isRunning` sendo true não significa necessariamente que a animação pode realmente ser vista.
  177. Este é apenas o caso, se [page:.weight weight] for definido adicionalmente para um valor diferente de zero.
  178. </p>
  179. <h3>[method:Boolean isScheduled]()</h3>
  180. <p>
  181. Retorna verdadeiro, se esta ação estiver ativada no mixer.<br /><br />
  182. Nota: Isso não significa necessariamente que a animação está realmente em execução (compare as
  183. condições para [page:.isRunning isRunning]).
  184. </p>
  185. <h3>[method:this play]()</h3>
  186. <p>
  187. Diz ao mixer para ativar a ação. Este método pode ser encadeado.<br /><br />
  188. Nota: A ativação desta ação não significa necessariamente que a animação começará imediatamente:
  189. Se a ação já havia terminado antes (chegando ao final de seu último loop), ou se o tempo
  190. para um início atrasado foi definido (via [page:.startAt startAt]), um [page:.reset reset] deve ser
  191. executado primeiro. Algumas outras configurações ([page:.paused paused]=true, [page:.enabled enabled]=false,
  192. [page:.weight weight]=0, [page:.timeScale timeScale]=0) podem também impedir a reprodução da animação.
  193. </p>
  194. <h3>[method:this reset]()</h3>
  195. <p>
  196. Redefine a ação. Este método pode ser encadeado.<br /><br />
  197. Este método define [page:.paused paused] como false, [page:.enabled enabled] como true,
  198. [page:.time time] para `0`, interrompe qualquer desvanecimento e distorção programados e remove a
  199. contagem de loop e agendamento para início atrasado.<br /><br />
  200. Nota: .`reset` é sempre chamado por [page:.stop stop], mas .`reset` não chama .`stop` em si.
  201. Isso significa: Se você quer ambos, resetar e parar, não chame .`reset`; chame .`stop` em vez disso.
  202. </p>
  203. <h3>[method:this setDuration]( [param:Number durationInSeconds] )</h3>
  204. <p>
  205. Define a duração de um único loop desta ação (ajustando [page:.timeScale timeScale]
  206. e parando qualquer distorção programada). Este método pode ser encadeado.
  207. </p>
  208. <h3>[method:this setEffectiveTimeScale]( [param:Number timeScale] )</h3>
  209. <p>
  210. Define [page:.timeScale timeScale] e interrompe qualquer distorção (warping) programada. Este método pode ser encadeado.<br /><br />
  211. Se [page:.paused paused] for falso, a escala de tempo efetiva (uma propriedade interna) também será definida
  212. com este valor; caso contrário, a escala de tempo efetiva (afetando diretamente a animação
  213. neste momento) será definida como '0'.<br /><br />
  214. Nota: .`paused` não será alterado para `true` automaticamente, se .`timeScale` for definido como `0` por
  215. este método.
  216. </p>
  217. <h3>[method:this setEffectiveWeight]( [param:Number weight] )</h3>
  218. <p>
  219. Define o [page:.weight weight] e interrompe qualquer desvanecimento (fading) programado. Este método pode ser encadeado.<br /><br />
  220. Se [page:.enabled enabled] for true, o peso (weight) efetivo (uma propriedade interna) também será definido
  221. com este valor; caso contrário, o peso efetivo (afetando diretamente a animação neste momento)
  222. será definido como '0'.<br /><br />
  223. Nota: .`enabled` não será alterado para `false` automaticamente, se .`weight` for definido como `0` com
  224. este método.
  225. </p>
  226. <h3>[method:this setLoop]( [param:Number loopMode], [param:Number repetitions] )</h3>
  227. <p>
  228. Define o [page:.loop loop mode] e o número de [page:.repetitions repetitions]. Este método
  229. pode ser encadeado.
  230. </p>
  231. <h3>[method:this startAt]( [param:Number startTimeInSeconds] )</h3>
  232. <p>
  233. Define o tempo para um início atrasado (geralmente passado como [page:AnimationMixer.time] +
  234. deltaTimeInSeconds). Este método pode ser encadeado.<br /><br />
  235. Nota: A animação só começará em um dado momento se .`startAt` estiver encadeado com
  236. [page:.play play], ou se a ação já foi ativada no mixer (por uma
  237. chamada de .`play`, sem parar ou redefini-lo nesse meio tempo).
  238. </p>
  239. <h3>[method:this stop]()</h3>
  240. <p>
  241. Diz ao mixer para desativar esta ação. Este método pode ser encadeado.<br /><br />
  242. A ação será imediatamente interrompida e completamente [page:.reset resetada] (reset).<br /><br />
  243. Nota: Você pode parar todas as ações ativas no mesmo mixer de uma só vez usando
  244. [page:AnimationMixer.stopAllAction mixer.stopAllAction].
  245. </p>
  246. <h3>[method:this stopFading]()</h3>
  247. <p>
  248. Interrompe qualquer [page:.fadeIn fading] agendado que seria aplicado a esta ação. Este método pode ser
  249. encadeado.
  250. </p>
  251. <h3>[method:this stopWarping]()</h3>
  252. <p>
  253. Interrompe qualquer [page:.warp warp] agendado que seria aplicado a esta ação. Este método pode ser
  254. encadeado.
  255. </p>
  256. <h3>[method:this syncWith]( [param:AnimationAction otherAction] )</h3>
  257. <p>
  258. Sincroniza esta ação com a outra ação passada. Este método pode ser encadeado.<br /><br />
  259. A sincronização é feita definindo os valores [page:.time time] e [page:.timeScale timeScale] desta ação
  260. aos valores correspondentes da outra ação (parando qualquer distorção (warping) programada).<br /><br />
  261. Nota: Alterações futuras do `time` e do `timeScale` da outra ação não serão detectadas.
  262. </p>
  263. <h3>[method:this warp]( [param:Number startTimeScale], [param:Number endTimeScale], [param:Number durationInSeconds] )</h3>
  264. <p>
  265. Altera a velocidade de reprodução, dentro do intervalo de tempo passado, modificando
  266. [page:.timeScale timeScale] gradualmente de `startTimeScale` para `endTimeScale`. Este método pode
  267. ser encadeado.
  268. </p>
  269. <h2>Eventos</h2>
  270. <p class="desc">
  271. Existem dois eventos que indicam quando um único ciclo da ação ou toda a ação é concluída.
  272. Você pode reagir a eles com:
  273. </p>
  274. <code>
  275. mixer.addEventListener( 'loop', function( e ) { …} ); // properties of e: type, action and loopDelta
  276. mixer.addEventListener( 'finished', function( e ) { …} ); // properties of e: type, action and direction
  277. </code>
  278. <h2>Source</h2>
  279. <p>
  280. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  281. </p>
  282. </body>
  283. </html>