【发布时间】:2013-12-30 15:15:16
【问题描述】:
我正在尝试使用加速度计编写一个移动应用程序,每次球(由加速度计移动)到达中间水平线时它都会播放声音。
这是我的全部代码:
import flash.events.Event;
import flash.media.SoundChannel;
import flash.media.Sound;
var accelX:Number;
var accelY:Number;
var tl:sound = new sound();
var counter:Boolean = false;
var fl_Accelerometer:Accelerometer = new Accelerometer();
fl_Accelerometer.addEventListener(AccelerometerEvent.UPDATE,
function fl_AccelerometerUpdateHandler(event:AccelerometerEvent):void
{
accelX = event.accelerationX;
accelY = event.accelerationY;
}
ball.addEventListener(Event.ENTER_FRAME, moveBall);
function moveBall(evt:Event){
ball.x -= accelX*30;
ball.y += accelY*30;
if(ball.x > (480-ball.width/2)){
ball.x = 480-ball.width/2;
}
if(ball.x < (0+ball.width/2)){
ball.x = 0+ball.width/2;
}
if(ball.y > (800-ball.height/2)){
ball.y = 800-ball.height/2;
}
if(ball.y < (0+ball.height/2)){
ball.y = 0+ball.height/2;
}
if(ball.y > 398 && ball.y < 402 && counter == false)
{
tl.play(0, 0);
counter = true;
}
else
{
counter = false;
tl.stop;
}
}
最后的 if-else 循环没有按预期工作。当球在 398 和 402 坐标内时,它会一直循环播放声音。
我做错了什么?
【问题讨论】:
-
这不是
Java代码。var accelX:Number;? -
if/else 构造不是循环。
-
那是什么语言?
-
尝试 if{} else if {}
-
它的外观 flash actionscript。
标签: flash loops if-statement actionscript boolean