Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向verold模型对象添加动画_Javascript_Three.js_Verold - Fatal编程技术网

Javascript 向verold模型对象添加动画

Javascript 向verold模型对象添加动画,javascript,three.js,verold,Javascript,Three.js,Verold,我试图用脚本来制作3d模型的动画。然而,我很难理解verold API组件的正确用法 我将一个模型加载到场景中,并将一个脚本作为该模型的属性附加。我还有一个关键帧动画属性,设置为不自动播放 我的目标是在用户单击按钮时启动特定动画。当我使用下面的代码时,我可以看到模型对象 PlayAnimation.prototype.init = function() { // this.veroldEntity is available here but the Three.JS data isn't loa

我试图用脚本来制作3d模型的动画。然而,我很难理解verold API组件的正确用法

我将一个模型加载到场景中,并将一个脚本作为该模型的属性附加。我还有一个关键帧动画属性,设置为不自动播放

我的目标是在用户单击按钮时启动特定动画。当我使用下面的代码时,我可以看到模型对象

PlayAnimation.prototype.init = function() {
// this.veroldEntity is available here but the Three.JS data isn't loaded yet
cObject = this.veroldEntity;

};
但我不确定如何使用playanimation(循环、开始时间、保存、fn)功能

因此,我的问题是: 1.这是在脚本中启动动画的正确方法吗? 2.如果是这样的话,有人能告诉我正确的使用方法吗,即save和fn参数是什么


提前感谢…

有两种方法可以从组件触发动画。您可以使用动画API,也可以在UI中设置EventHandler

EventHandler是一种简单的方法:

事实上,如果有一篇文章你应该看看,以了解维洛德是如何工作的,我会说看看那篇。它很好地总结了使用Verold API最常见的方法。用HTML/CSS构建界面,并将应用程序中的事件激发到Verold中。然后尽可能多地使用我们的内置组件和编辑器。Verold API还有很多功能,更不用说通过获取下面的Three.js渲染器的句柄可以做什么,但是使用事件可以实现很多功能


我将让Ian回答如何使用动画API。如果您想要驱动更复杂的交互,例如,如果您想要自定义动画混合,请直接使用API。

首先,您需要获得要通过脚本控制的关键帧动画组件的引用。您可以使用
getComponentsByScriptName()
将关键帧动画组件附加到实体:

PlayAnimation.prototype.init = function() {
  var animationsById = this.getEntity().getComponentsByScriptName("Keyframe Animation");

  this.animations = [];

  for (var id in animationsById) {
    this.animations.push(animationsById[id]);
  }
};
如果将单个关键帧动画组件附加到实体,则
this.animations[0]
将引用该组件。接下来,可以播放动画:

this.animations[0].play();