2013-12-12 9 views
0

나는 (가속도계로 움직이는) 볼이 중간 수평선에 도달 할 때마다 사운드를 재생하는 가속도계를 사용하여 모바일 앱을 작성하려고합니다.if/else 루프가 Java에서 제대로 작동하지 않습니다.

이 내 전체 코드입니다 :

 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; 
    } 

    } 

그것은 의도 한대로 작동하지 않습니다 끝에있는 경우 - 다른 루프입니다. 공이 398 및 402 좌표 내에있을 때 소리를 반복합니다.

내가 뭘 잘못하고 있니?

+4

이것은 '자바'코드가 아닙니다. 'var accelX : Number;'? –

+0

if/else 구문이 루프가 아닙니다. – Blub

+0

어떤 언어입니까? – Maroun

답변

0

내가 틀릴 수도 있지만, 마지막으로 그 자리에 있지 않은 것처럼 보입니다. 거기에 있어야하는 것처럼 보입니다.

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

    } 
+0

행의 중괄호를 닫는 데 필요합니다. function moveBall (evt : Event) { 나쁜 서식 지정에 대한 실수 : – Gadgou

0

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(); 
} 

는 도움이되기를 바랍니다.

+0

오류 : TypeError : 오류 # 1006 : 중지 기능이 아닙니다. – Gadgou

+0

내 코드를 편집하여 확인하십시오. –

관련 문제