Показать сообщение отдельно
Старый 25.04.2012, 17:05
bublic_bicubic вне форума Посмотреть профиль Отправить личное сообщение для bublic_bicubic Найти все сообщения от bublic_bicubic
  № 8  
Ответить с цитированием
bublic_bicubic
 
Аватар для bublic_bicubic

Регистрация: Mar 2010
Сообщений: 48
Тогда в вашем коде при первом запуске функции playsound произойдет ошибка. Нужно либо при первом запуске обработать это, либо включать один из звуков в начале работы приложения.

В данном случае нужен один SoundChannel (так как звук проигрывается только один)
Код AS3:
//var sound1:Sound, sound2:Sound; звуки, которые надо воспроизводить
 
btn.addEventListener( MouseEvent.CLICK, toggleSound );
var soundChannel:SoundChannel = null; // канал, изначально звук не проигрывается
var currentSound:Sound = null; // текущий звук, изначально не задан
 
function toggleSound( e:MouseEvent = null ):void { 
	switch ( currentSound ) {
		case null: // если звук еще не проигрывается, выбираем первый звук
		case sound2: // если проигрывается второй звук, выбираем первый звук
			currentSound = sound1;
			break;
		case sound1: // если проигрывается первый звук, выбираем второй звук
			currentSound = sound2
			break;
	}
	if ( soundChannel ) { // если сейчас проигрывается звук, останавливаем его
		soundChannel.stop();
	}
	soundChannel = currentSound.play( 0, 3000 ); // включаем проигрывание нового звука
}