2011-05-15 5 views
0

Flash AS3でAccelerometerを使用する際に問題があります。スクリプトはうまく動作しますが、ボールは画面の左下にしか表示されず、ステージ内に収まりたいと思います。加速度計 - ボールが出る段階。 Flash AS3

何が間違っていますか?ここで

は私のスクリプトです:あなたがゼロにボールxの値を取得する場合を意味accxで* 30、
により、xの値が減少している ので

import flash.sensors.Accelerometer; 
import flash.events.AccelerometerEvent; 

var my_acc:Accelerometer = new Accelerometer(); 
my_acc.setRequestedUpdateInterval(50); 

my_acc.addEventListener(AccelerometerEvent.UPDATE, onAccUpdate); 
function onAccUpdate(e:AccelerometerEvent):void{ 
    ball.x -= (e.accelerationX*30); 
    ball.y += (e.accelerationY*30); 

    if (ball.x < 0) { 
     ball.x = 0; 
    } else if (ball.x > stage.stageWidth) { 
     ball.x = stage.stageWidth; 
    } 

    if (ball.y < 0) { 
     ball.y = 0; 
    } else if (ball.y > stage.stageHeight) { 
     ball.y = stage.stageHeight; 
    } 
} 
+0

があなたの小切手を作ってみましょうstageWidthプロパティ-ball.width '> ='。 if(ball.x <= 0)など。 – keyboardP

+1

ボールが画面上に表示されない場合は、ボールの中心点を右に設定しているかどうかを確認してください。 – JiminP

+0

ありがとうJiminP - それは動作します! –

答えて

0

問題があるすなわち< 0の条件は満たしている場合、
これは再びステージを越えて0より小さくなります。
>ステージ幅の条件では、ボールがステージの境界から離れるように移動します。

*同じ値がy値で発生しています。

30に.X < 0条件値を設定するか、stageWidthプロパティ-30を代わりに0 と.Y> stageWidthプロパティ値のball.widthまたは