![]() |
|
||||||||||
|
|||||
|
Есть необходимость написать SoundManager. То, какой в нем будет функционал, - дело 10е. Интересует именно воспроизведение звуков, точнее как дать понять менеджеру какой звук воспроизводить. Потенциально предполагается, что звуки будут подтягиваться из библиотеки (хотя даже если это будут внешние - не думаю, что это на что-то принципиально повлияет)
Собственно вопрос в том, как наиболее грамотно с точки зрения определять проигрываемый(ые) звуки? В НЕТе достаточно много вариантов, когда классу передается в качестве параметра строка, соответствующая тому или иному звуку, но у меня что-то закладываются подозрения, что это не совсем правильный подход. Хотелось бы услышать у кого какие соображения на тему организации воспроизведения звуков. Заранее спасибо.
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
ну, если юзать Dictionary в качестве хранилища, то можно и не только строку.
а вообще: трудно что-либо советовать, когда не понятна задача
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Строка - нормально, звуки не так часто дёргаются. Иначе многовато мороки, т.к. enum нету.
Ну можно написать свой костыль вместо enum и использовать массив или вектор, но того не стоит, по-моему, задолбаешься туда новые значения закидывать.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Задача: есть в библиотеке набор звуков (потенциально не известного количества), которыми нужно управлять (проигрывать, при этом потенциально частота и разнообразие проигрывания могут быть абсолютно различными)
Вот один из первых вариантов, который вываливается при поиске. Что смущает - так это подобные конструкции с применением * Т.е. получается что я могу туда передать все что угодно - и менеджер съест. Или создавать миллион проверок на валидность полученных данных (в том примере используется только проверка на наличие такого же объекта), ведь звук там или картинка, или просто строка - не известно. В общем хочется универсальности и стабильности. ЗЫ. или у меня манечка?
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
linkageID - это что-то из пережитков AS2
почему бы не пеердавать класс звука из либы и все public function addLibrarySound($linkageID:Class, $name:String):Boolean а еще лучше передавать экземпляры, тогда в вашем менеджере делаем метод а ля
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Цитата:
Я так понимаю, в вышеуказанном примере someSoundsHolder является Dictionary?
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
может и обжект, если ключ стринговый..
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Назрел вопрос. Как правило подобного рода менеджеры являются синглтонами, т.е. не DisplayObject-ами. Следовательно если я, к примеру, хочу отследить окончание проигрывания произвольного звука, то я не смогу отослать событие об этом другим (потенциально всем) объектом приложения. И вообще, если сам менеджер воспринимать как контроллер, то как быть с событиями внутри контроллера?
Или я что-то не так понимаю?
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
DisplayObject может быть синглтоном и подобный менеджер можно хоть на сцену добавить. Не понятно только зачем. События могут слать штуки, унаследованные от EventDispatcher. Вот унаследовать его от него и слать. Любой, кто сможет долезть до него сможет и события слушать. Типа SoundManager.instance.addEventListener("ggsound_end", whateverListener);
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|