Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.11.2010, 02:46
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 1  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
По умолчанию Структура SoundManager

Есть необходимость написать SoundManager. То, какой в нем будет функционал, - дело 10е. Интересует именно воспроизведение звуков, точнее как дать понять менеджеру какой звук воспроизводить. Потенциально предполагается, что звуки будут подтягиваться из библиотеки (хотя даже если это будут внешние - не думаю, что это на что-то принципиально повлияет)
Собственно вопрос в том, как наиболее грамотно с точки зрения определять проигрываемый(ые) звуки? В НЕТе достаточно много вариантов, когда классу передается в качестве параметра строка, соответствующая тому или иному звуку, но у меня что-то закладываются подозрения, что это не совсем правильный подход. Хотелось бы услышать у кого какие соображения на тему организации воспроизведения звуков. Заранее спасибо.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 04.11.2010, 11:40
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 2  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
ну, если юзать Dictionary в качестве хранилища, то можно и не только строку.
а вообще: трудно что-либо советовать, когда не понятна задача
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 04.11.2010, 11:48
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Строка - нормально, звуки не так часто дёргаются. Иначе многовато мороки, т.к. enum нету.
Ну можно написать свой костыль вместо enum и использовать массив или вектор, но того не стоит, по-моему, задолбаешься туда новые значения закидывать.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 04.11.2010, 11:53
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 4  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
TanaTiX проще нагуглить готовый вариант и его юзать, пардон но такие вещи давно написаны и хорошо работают, я юзаю вариант с синглтоном, в роли хранилища используется Dictionary.

Старый 04.11.2010, 13:24
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 5  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
Сообщение от cleptoman Посмотреть сообщение
а вообще: трудно что-либо советовать, когда не понятна задача
Задача: есть в библиотеке набор звуков (потенциально не известного количества), которыми нужно управлять (проигрывать, при этом потенциально частота и разнообразие проигрывания могут быть абсолютно различными)

Вот один из первых вариантов, который вываливается при поиске. Что смущает - так это
Код:
public function addLibrarySound($linkageID:*, $name:String):Boolean
подобные конструкции с применением *

Т.е. получается что я могу туда передать все что угодно - и менеджер съест. Или создавать миллион проверок на валидность полученных данных (в том примере используется только проверка на наличие такого же объекта), ведь звук там или картинка, или просто строка - не известно.

В общем хочется универсальности и стабильности.

ЗЫ. или у меня манечка?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 04.11.2010, 13:34
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 6  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
linkageID - это что-то из пережитков AS2

почему бы не пеердавать класс звука из либы и все
public function addLibrarySound($linkageID:Class, $name:String):Boolean

а еще лучше передавать экземпляры, тогда в вашем менеджере делаем метод а ля
Код AS3:
 
public function addLibrarySound($sound:Sound, $name:String):Boolean
 
....
 
 
public function playSound($name:String):SoundChannel{
var sound:Sound = this.someSoundsHolder[$name];
if(sound){
return sound.play();
}
return null;
}
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 04.11.2010, 15:27
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 7  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
это что-то из пережитков AS2
возможно, но не в наименованиях дело

Я так понимаю, в вышеуказанном примере someSoundsHolder является Dictionary?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
может и обжект, если ключ стринговый..
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 05.11.2010, 01:43
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 9  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Назрел вопрос. Как правило подобного рода менеджеры являются синглтонами, т.е. не DisplayObject-ами. Следовательно если я, к примеру, хочу отследить окончание проигрывания произвольного звука, то я не смогу отослать событие об этом другим (потенциально всем) объектом приложения. И вообще, если сам менеджер воспринимать как контроллер, то как быть с событиями внутри контроллера?
Или я что-то не так понимаю?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 05.11.2010, 01:57
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 10  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
DisplayObject может быть синглтоном и подобный менеджер можно хоть на сцену добавить. Не понятно только зачем. События могут слать штуки, унаследованные от EventDispatcher. Вот унаследовать его от него и слать. Любой, кто сможет долезть до него сможет и события слушать. Типа SoundManager.instance.addEventListener("ggsound_end", whateverListener);
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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