1

チェックボックスで切り替えられるアニメーションを含むシーンを構築したいと考えています。クリックすると、すべてのボックス要素の高さを「.1」にスケーリングします。もう一度クリックすると、元の高さに戻ります。Routes と TimeSensor を試してみましたが、操作が難しいことがわかりました。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>
4

1 に答える 1

1

TimeSensor は必須です。これは、インターポレーターの keyValue をトリガーするのが彼だからです。
以下は簡単な例です。TimeSensor は非常に使いやすいです。

DEF TS TimeSensor { cycleInterval 2 loop TRUE }
DEF SI ScalarInterpolator {
key [0 0.5 1]
keyValue [2 2 2 1 1 1 0.5 0.5 0.5] }

ROUTE T​​S.fraction_changed TO SI.set_fraction
ROUTE SI.value_changed TO BOX.scale

タイマーの一部は、ScalarInterpolator にルーティングされます。分数がキーの値 (0、0.5、または 1) より大きい場合は常に、対応する keyValue (N 番目のインデックス) が BOX のスケールにルーティングされます。それでおしまい...

より遅い効果が必要な場合は、TimeSensor のサイクル間隔を増やすことができます。効果を一度だけにしたい場合は、ループを FALSE に設定できます。

また、複数のキーとキー値を持つことができます..

于 2014-08-13T08:11:08.237 に答える