Показать сообщение отдельно
Старый 15.02.2010, 22:23
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Код AS1/AS2:
btn.onRelease = function  () {
	fadeout = setInterval (fadeOut , 100);
};
 
function fadeOut () {
	if (!allSound) {
		allSound  = new Sound();//скобки пусты, значит этот экземпляр класса Sound влияет на весь звук ролика
	}
 
	if (count == undefined) {
		count = 10;
	}
 
	if (count >= 0) {
		allSound.setVolume(count * 10);
		count--;
	}
	else {
		clearInterval(fadeout);
	}
}
Тут в 10 шагов (каждый шаг - раз в 100 мс) уводится в 0 громкость всех звуков в ролике.
Если нужно опять стартовать какой-то звук, то нужно будет поднять всю громкость до 100 объекта allSound и только тогда стартовать нужный звук.
Если так поступать нежелательно, то нужна несколько другая схема работы со звуком, зависящая от конкретных обстоятельств - откуда и как стартуются звуки, сколько их и пр.

Вот так то же самое, но покороче:
Код AS1/AS2:
btn.onRelease = fadeOut;
 
function fadeOut () {
	fadeout ? null : fadeout = setInterval (fadeOut , 100);
	allSound ? null : allSound = new Sound(); //скобки пусты, значит этот экземпляр класса  Sound  влияет на весь звук ролика
	count == undefined ? count = 10 : null ;
 
	if (count > 0) {
		count--;
		allSound.setVolume(count * 10);
	}
	else {
		clearInterval(fadeout);
	}
}


Последний раз редактировалось mooncar; 15.02.2010 в 22:40.