2012-09-21 3 views
1

저는 약간의 플래시 게임을하고 있는데 동시에 다른 소리를 재생하는 데 문제가 있습니다.AS2 - 여러 소리를 함께 재생

예를 들어, 플레이어가 타워를 통과 할 때, 공 사운드가 재생됩니다. 플레이어가 점프하면 점프 사운드가 재생됩니다. 두 가지 동작이 동시에 발생할 수 있으며, 두 가지 소리가 함께 재생 (중복)되어야합니다.

그 소리는 다음과 같이 선언됩니다

s_jumping = new Sound(); 
s_jumping.attachSound("s_jump"); 
s_noise2 = new Sound(); 
s_noise2.attachSound("s_gong"); 

을 그리고 (필요시) 그들은 간단한 s_jumping.start(0,1); 또는 s_noise2.start(0,1);로 불린다.
내 코드에서 아무 것도 s_jumping.stop() 또는 s_noise2.stop()으로 전화 한 적이 없습니다.

이 사운드는 별도로 연주해도 잘 작동하지만 함께 연주하면 작동하지 않습니다. 두 번째 소리가 나면 첫 번째 소리가 멈 춥니 다.

다른 변수 이름을 가진 new Sound()을 사용하면 사운드가 개별적으로 존재한다는 것을 의미한다고 생각했습니다. 대신 한 사운드가 다른 사운드보다 우선합니다.

내가 뭘 잘못하고 있니?

(참고 :.. 내가 여기에 소리의 거대한 숫자를 재생하려고 아니에요 내 테스트에서 3이 동시에 소리를 가장에있다)

업데이트 : 추가 테스트 후, 그 소리 나가 가지고있는 1 개의 배경 소리를 제거하는 경우에 잘한다. 그래서 나는 어떤 종류의 한계에 부딪쳤다. 이상한 점은 현재 3 ~ 4 개의 소리를 동시에 연주한다는 것입니다. 내가 읽은 바에 따르면 적어도 8 개의 소리로 괜찮을 것입니다!
(참고 : Flash CS4, 동작 스크립트 2 사용 및 Flash Player 8 내보내기)

답변

1

그래, 문제는 정지 기능의 잘못된 사용으로 인한 것 같습니다.

분명히 s_jumping.stop();모든 사운드을 멈추고 "s_jumping"소리뿐만 아니라.

s_jumping.stop('s_jump');

난 정말 이해가 안 :

가 하나의 소리를 중지하려면, 당신은 매개 변수로 ("ActionScript에 내보내기"의 사운드 속성에 선언)의 식별자를 통과해야 논리는 여기에 있지만 최소한 의도 한대로 작동하고 있습니다.^