Показать сообщение отдельно
Старый 22.10.2009, 01:02
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
и опять промах) Теперь звук не останавливается вообще - это раз. И если проиграть первый звук, затем второй, а после этого снова первый - первый звук можно снова дублировать - это два) Сейчас попробую флагами одолеть это...
Обязательно отпишу, даже если не получилось

Добавлено через 5 минут
отлично, заработало! Теперь ваша функция приобрела следующий вид:

Код AS1/AS2:
function startStopMus(btnID){
	var vsound:Sound = new Sound();
	vsound.attachSound(mp3[btnID]);
 
	if (!btn[btnID].enbl){
		vsound.start(mp3[btnID]);
		btn[btnID].enbl = true;
	} else {
		vsound.stop(mp3[btnID]);
		btn[btnID].enbl = false;
	}
 
	vsound.stop(mp3[btnID - 1]);
	vsound.stop(mp3[btnID + 1]);
 
	btn[btnID - 1].enbl = false;
	btn[btnID + 1].enbl = false;
 
}
Большое спасибо)

Добавлено через 13 часов 31 минуту
хе, добавил на сцену еще парочку кнопкоклипов и в библиотеку парочку звуков, решил проверить свою догадку. Оказалось, точно - если запустить первый звук, а затем четвертый - они накладываются друг на друга. Вот здесь недочет:
Код AS1/AS2:
vsound.stop(mp3[btnID - 1]);
vsound.stop(mp3[btnID + 1]);
btn[btnID - 1].enbl = false;
btn[btnID + 1].enbl = false;
исправил вот так:
Код AS1/AS2:
function startStopMus(btnID){
	var vsound:Sound = new Sound();
	vsound.attachSound(mp3[btnID]);
 
	if (!btn[btnID].enbl){
		vsound.start(mp3[btnID]);
		btn[btnID].enbl = true;
	} else {
		vsound.stop(mp3[btnID]);
		btn[btnID].enbl = false;
	}
	if (btnID != btn.length-1){
		for(j = btnID+1; j <= btn.length-1; j++){
			vsound.stop(mp3[j]);
			btn[j].enbl = false;
		}
	}
	if (btnID != 0){
		for(j = btnID-1; j >= 0; j--){
			vsound.stop(mp3[j]);
			btn[j].enbl = false;
		}
	}
}
__________________
тут я


Последний раз редактировалось КорДум; 22.10.2009 в 16:22.