【问题标题】:if/else loop not working properly in Javaif/else 循环在 Java 中无法正常工作
【发布时间】: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


【解决方案1】:

我可能错了,但在我看来,最后一个 } 不在它的位置上,似乎它应该在那里。

if(ball.y > 398 && ball.y < 402 && counter == false)
{
     tl.play(0, 0);
     counter = true;
     } 
     else
     {  
     counter = false;
     tl.stop;
     }

     }

【讨论】:

  • 需要一个来关闭第 16 行函数 moveBall(evt:Event){ 我的错误格式错误:)
【解决方案2】:

由于 stop 是一个函数,因此您需要使用 stop() 之类的括号来调用它。

试试 在上面声明这个,

var soundControl:SoundChannel;

那么,

if(ball.y > 398 && ball.y < 402 && counter == false)
{
  soundControl = tl.play(0, 0);
  counter = true;
} 
else
{  
  counter = false;
  soundControl.stop();
}

希望对你有帮助。

【讨论】:

  • 当我这样做时,我收到错误:TypeError: Error #1006: stop is not a function.
猜你喜欢
  • 1970-01-01
  • 2014-09-27
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 2022-11-24
  • 2014-11-16
  • 1970-01-01
相关资源
最近更新 更多