2012-04-21 4 views
0

들어오는 호출이 있거나 다른 이유로 다른 이유로 배경으로 이동 한 경우 음악을 중단하고 타이머를 올바르게 정지해야하므로 게임을 최적화합니다.앱을 배경으로 옮길 때 음악이 멈추지 않음

음악을 멈추지 않고 명령을 내렸을 때도 음악이 멈추지 않는다는 것 외에는 큰 효과가 있습니다. 더 이상한 것은 게임이 포 그라운드로 돌아 왔을 때 하나가 아닌 2 개의 배경 음악이 재생된다는 것입니다. 여기

내 내 코드의 일부, 아무것도 너무 복잡하거나 일반 벗어 :

... 

NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE; 
      NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, handleActivate); 
      NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, handleDeactivate); 
... 
private function handleActivate(event:Event):void 
     { 

      stage.frameRate = previousFrameRate; 

//if the music was on when the game is moved to the background, then replay it when its moved back to the foreground 
      if(musicOn) 
      { 
       BGMusic.play(); 
      } 


     } 

     private function handleDeactivate(event:Event):void 
     { 
      BGMusic.stop(); 
      stage.frameRate = 0; 
     } 

그것은 주목할 가치가 그 내가 음악을 재생하지 않으면 때 전경 다음 게임 돌아갑니다 (즉, handleActivate에서 BGMuusic.play()를 사용하지 않으면 예상대로 음악이 출력되지 않습니다. 음악을 멈추고 배경 음악이 멈추지 않고 포 그라운드로 이동하면 두 개의 트랙을 재생할 때만 음악을 다시 시작합니다.

아이디어가 있으십니까? 내가 말했듯이, 그 밖의 모든 것은 잘 작동하고, 게임은 올바르게 멈 춥니 다. 아이폰에서 직접 테스트 할 필 수 인증서가 없기 때문에 플래시 빌더 에뮬레이터에서이 테스트를 수행하고 있습니다. 아마 코드보다는 에뮬레이터 자체에 문제가있을 수 있습니다. 사전에

감사

편집 : 플래시 날의 바보 어도비 에어

답변

1

그럼으로이 글을 쓰는 건가요. 모든 것이 잘 작동합니다 if 문에 다른 조건을 추가하는 것을 잊었습니다. 그래서 대신 :

  if(musicOn) 
      { 
       BGMusic.play(); 
      } 

내가 musicButtonOn 같은 명확 뭔가 뮤직 온의 변수 이름을 변경합니다 ...

  if(musicOn && !BGMusic.isPlaying()) 
      { 
       BGMusic.play(); 
      } 

모든 것이 지금 잘 작동해야한다.

어쨌든 도움에 감사드립니다. 조언이나 의견이 있으시면 언제든지 말씀해주십시오. = D

0
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag { 
     NSLog(@"Playing stoped"); 
     [player stop]; 
} 
+0

이것은 저에게 objective-c처럼 보입니다. 나는 플래시와 어도비 에어로 게임을 쓴다. 이게 내가 어떻게 저를 도울 수 있는지 설명해 주시겠습니까? =) – r3x

관련 문제