使用远程3D在Flash AS3中进行跷跷板/斩波运动

时间:2013-04-20 15:54:03

标签: actionscript-3 flash-builder accelerometer away3d

我正在尝试根据平板电脑的加速度计进行斩波动作并使用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);
                }

1 个答案:

答案 0 :(得分: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