Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Управление звуковыми объектами, находящимися в массиве (http://www.flasher.ru/forum/showthread.php?t=58960)

dimarik 03.06.2004 11:40

Управление звуковыми объектами, находящимися в массиве
 
Дано
1. Массив объектов Sound в виде
var sndObjectsArray = [];
var sndObjectsArrayIndex = 0;

// В цикле пригружаем звучки, имена файлов в массиве sndFileNamesArray
sndObjectsArray[sndObjectsArrayIndex] = new Sound();
sndObjectsArray[sndObjectsArrayIndex].loadSound(sndFileNamesArray[sndObjectsArrayIndex], false);
sndObjectsArrayIndex++;

2. Элемент управления громкостью и балансом общий для всего мувика (да, собственно и для кучи других мувиков)управляет объектом звука playerSound
//
playerSound = new Sound();
playerSound.onSoundComplete = function(){
// _НЕ_РАБОТАЕТ_!!!_А_ОЧЕНЬ_НАДА_
}
playerSound = sndObjectsArray[1];
//
sndObjectsArray[1].onSoundComplete = function(){
// _РАБОТАЕТ_НО_НАМ_ТАКОГО_НЕ_НАДА!!!_
}
Другими словами - не работает хэндлер onSoundComplete для объекта playerSound

Вопрос.
Как динамически переопределять хэндлер onSoundComplete для playerSound, который в свою очередь берет "контент" из объектов в массиве sndObjectsArray.

DeliMIter 03.06.2004 14:13

Re: Управление звуковыми объектами, находящимися в массиве
 
Цитата:

Оригинал написал(а) dimarik playerSound = new Sound();
playerSound.onSoundComplete = function(){
// _НЕ_РАБОТАЕТ_!!!_А_ОЧЕНЬ_НАДА_
}
playerSound = sndObjectsArray[1];
А теперь посмотри, что ты написал... Ты создаешь новый саунд, назначаешь ему хандлер, а потом этой переменной присваиваешь абсолютно другой объект. Естественно он у тебя работать не будет, так как хандлер умерает смертью храбрых вместе со старым объектом.

dimarik 03.06.2004 14:42

Хм... А как правильно?

DeliMIter 03.06.2004 15:14

Назначь хандлеры объектам - элементам массива. Они и будут срабатывать. Если ты хочешь, чтобы у тебя было загружено несколько звуков одновременно, то именно так - правильно.

dimarik 03.06.2004 17:12

Не могу - не знаю количество элементов массива (генерится динамически и кол-во элементов заранее не известно).


Часовой пояс GMT +4, время: 10:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.