2011-10-23 2 views
0

이 문제가 있습니다 :소리 만 끄기 - 어떻게?

게임에서 사운드를 어떻게 끕니까? 설정에 두 개의 버튼이 있기 때문에 묻습니다 : 음악 켜기/끄기 및 소리 켜기/끄기. 음악을 켜고 끄는 것은 특정 사운드 채널을 사용하기 때문에 정말 쉽습니다. 하지만 음향 만 볼륨을 끄려면 어떻게합니까 (예 : 음악은 여전히 ​​재생되지만 게임 소리는 제외)?

SoundMixer.soundtransform을 통해 사운드를 음소거하면 아무 것도들을 수 없으므로 원하는 사운드가 들리지 않습니다. 내 게임에서는 모든 소리가 배열로 던져집니다. 내 첫 번째 아이디어는 배열에 나열된 모든 사운드를 살펴보고 볼륨을 끄지 만 작동하지 않는다는 것입니다. 제발 - 아무도 도와 줄 수 있니? 고맙습니다.

var soundsON = true; 

과 어떤 음향 효과를 재생하기 전에 다음, 확인 소리과 같이, ON 꼭 확인하세요 :

if (soundsON) { 
mySound.play(); 
} 

하면

//not working 

private var sounds:Array; 
private var soundChannels:Array = []; 
private var muteSoundTransform:SoundTransform = new SoundTransform(); 

public function muteSoundOnly():void { 

muteSoundTransform.volume = 0; 

var soundLength:int = soundChannels.length - 1; 
for (var soundCtr:int = soundLength; soundCtr >= 0; soundCtr--) 
{ 

soundChannels[soundCtr].soundTransform = muteSoundTransform; 

} 

} 
+1

사운드를 배열에 추가하는 것이 좋은 해결책입니다. 동일한 배열에 음악을 추가하지 않습니까? 또는 음악이 효과와 동일한 변형을 사용한다는 것입니다. – Mattias

+1

음소거 기능이 한 번만 호출됩니까? 아니면 음소거 음소거 호출을 토글하는 코드를 생략 했습니까? 어떤 경우에는 소리를 토글하는 toggleSoundOnly() 함수 하나만 있으면됩니다. –

+0

음악이 다른 soundChannel (SoundTrackChannel)을 사용하므로 문제가되지 않아야합니다. 예, 저는이 함수가 한 번만 호출된다고 생각합니다. 처음에는 볼륨을 한 번 설정했다고 생각했습니다. 그래서이 함수를 반복해야합니까? – drpelz

답변

0

가 나는 같이 그것을 쉽게 생각 음소거 버튼을 soundsON = false; (으)로 설정하면 음향 효과가 재생되지 않습니다.

+1

사운드가 재생 중이고 음소거 버튼을 누르면 케이스를 처리하지 않습니다. – Florent