0

タブレットの加速度計に基づいてチョッピング モーションを作成し、away3D ボックスを使用して表示しようとしています。基本的に、ユーザーが加速度でデバイスを振るたびにやりたいことは、ボックスが上に移動し、すぐに下に戻ります。ナイフを切る動作を考えてみてください。現在、次のコードがありますが、それ自体がキャンセルされ、同じ場所に留まっているようです。どんな助けでも大歓迎です!

protected function onAccUpdate(event:AccelerometerEvent):void{
            var threshold:Number = 1.5;
            if(event.accelerationY > threshold){
                targetY = event.accelerationY *10;
                knife.y += targetY;
                trace(knife.y);
                if (knife.y >0){
                    knife.y -= targetY; 
                    trace(knife.y);
                }
4

1 に答える 1

0

関数の実行順序では、を設定knife.y += targetY;するとすぐif (knife.y >0)に true が返され、knife.y が元の位置に戻されます。そのため、ナイフは動かないように見えます。

onEnterFrame 更新関数を使用して、ナイフをターゲット位置に向かって緩める必要があります。次に、ナイフを移動する必要がある場合は、onAccUpdate 関数で targetY を新しい位置に設定します。更新関数で、ナイフが新しい位置に到達したらすぐに targetY を 0 に設定し、ナイフをアニメートして戻します。

onEnterFrame コードの例を次に示します。

var diff:Number = targetY - knife.y;
knife.y += diff * 0.05; // 0.05 is to ease/smooth the animation
if( Math.abs( diff ) <= 1 ) targetY = 0; // we reached the target position, now go back to 0
于 2013-04-21T14:47:03.010 に答える