我正在加载模型并尝试在动画事件中更改动画轨迹:
<a-entity three-model="loader:object;src:url(http://localhost:3000/upload/6tTxHz6JMPXMsGD8W/marine_anims_core.json);animation:run;animationDuration:0;enableAnimation:true" >
<a-animation begin="mouseenter" attribute="three-model.animation" repeat="1" dur="1000" direction="alternate" from="walk" to="run"></a-animation>
</a-entity>
我很遗憾地看到这样的错误:
aframe-extras.loaders.min.js:688 [three-model] Animation "NaN" not found.
playAnimation @ aframe-extras.loaders.min.js:688
update @ aframe-extras.loaders.min.js:658
updateProperties @ component.js:205
value @ a-entity.js:427
value @ a-entity.js:450
value @ a-entity.js:579
f @ a-animation.js:426
(anonymous function) @ a-animation.js:136
update @ Tween.js:339
update @ Tween.js:81
value @ a-scene.js:382
value @ a-scene.js:407
我不确定这是否是由于A-Animation没有处理文本或什么?
答案 0 :(得分:2)
我会使用事件集组件来更改值以响应事件:https://github.com/ngokevin/kframe/tree/master/components/event-set
<a-entity three-model="animation: walk" event-set="_event: mouseenter; three-model.animation: run;>
答案 1 :(得分:1)
<-animation>
依赖于Tween.js(cf https://github.com/tweenjs/tween.js/用于文档),它基本上采用from
值和to
值,这些值在引擎盖下是数字的(是的,即使是颜色)。 from
值在时间0处等于0,在时间dur
处等于值1。从0更改为1将取决于所选的easing
,但基本上您将被分配到您选择的attribute
从 - * 0到 - 从* 0.1到 - 从* .0.2 ...到 - 从* 0.9到 - * 1。
所有这一切都说补间依赖于连续值,而不是离散值。步行和跑步之间的中间价值是什么?运行步行* .0.2?步行一个位快?运行慢?如果您的补间系统无法插值从from
到to
,那么您的动画(至少在当前0.3中使用的补间系统中)将不起作用。
您可以做的是在模型上添加addEventListener(),如果尚未运行则启动运行动画,等待所需时间,停止并再次开始步行动画。