Javascript 使用x3Dom创建动画的最佳方法是什么?

Javascript 使用x3Dom创建动画的最佳方法是什么?,javascript,x3d,x3dom,Javascript,X3d,X3dom,我想构建一个场景,其中包含一些通过复选框切换的动画。单击时,我希望所有框元素的高度缩放到“.1”。再次单击时,我希望它返回到原始高度。我曾尝试过路由和时间传感器,但发现它们很难使用。在x3dom中是否有更简单的动画选项 下面是我在模板中使用的一些代码 <timeSensor DEF="time" cycleInterval="2" loop="false" > </timeSensor> <positionInterpolator def="scale" key="

我想构建一个场景,其中包含一些通过复选框切换的动画。单击时,我希望所有框元素的高度缩放到“.1”。再次单击时,我希望它返回到原始高度。我曾尝试过路由和时间传感器,但发现它们很难使用。在x3dom中是否有更简单的动画选项

下面是我在模板中使用的一些代码

<timeSensor DEF="time" cycleInterval="2" loop="false" > </timeSensor>
<positionInterpolator def="scale" key="0 1" keyValue="1 1 1  1 .1" ></positionInterpolator>
<route fromNode="time" fromField ="fraction_changed" toNode="scale" toField="set_fraction"></route> 
<route fromNode="scale" fromField ="value_changed" toNode="box" toField="size"></route>

时间传感器是强制性的,因为它是触发插值器键值的传感器。
下面是一个简单的例子,时间传感器非常容易使用:

DEF TS时间传感器{cycleInterval 2 loop TRUE}
DEF SI 标量干涉器{
键[0.5 1]
键值 [2 2 1 0.5 0.5 0.5]}

路由TS.fraction\u更改为SI.set\u fraction
路由SI.value_更改为 箱秤

计时器的部分被路由到ScalarInterpolator。每当分数大于键(0、0.5或1)中的值时,相应的键值(第n个索引)将路由到框的刻度。就这样

如果希望产生较慢的效果,可以增加时间传感器的周期间隔。如果希望只产生一次效果,则可以将循环设置为FALSE


您还可以有多个键和键值..

插值器+路由/Javascript,这样您就可以在不使用timeSensor的情况下使用路由了?我使用了一个位置插值器、路由和时间传感器来修改我的盒子的比例,但它有点古怪和不一致。你能举个例子说明如何在没有时间限制的情况下使用插值器吗?有几个问题。我希望效果可以多次绑定到复选框。我是否将循环属性设置为false或true?我正在尝试更改循环属性,但我会遇到一些奇怪的问题。还有一件事我将其与主干/木偶结合使用。我会有多个盒子。有没有办法将一条路线绑定到所有箱子上?非常感谢你帮助我!我将对我的问题进行编辑,在另一次代码回顾中加入更多的例子,我认为问题必须涉及主干,而不一定是插值。我捕获模型事件和更改的方式干扰了我的转换和缩放。感谢所有的帮助。如果循环为真,那么只要“活动”字段为真,缩放效果就会自动执行。如果要将效果绑定到复选框,则只能在选中复选框时设置“活动”字段(TRUE)。一旦您取消选中它,“活动”字段将被停用(FALSE),问题就变成了,如果该复选框为true,我只希望效果持续一次,而不是循环。我想它的复选框,以改变规模和简单的过渡规模。如果loop设置为true,它将完全重复效果。因此,需要时间传感器的循环字段为FALSE:)