Вопрос

Для меня это сложный сценарий.

У меня есть синглтон для управления звуком с таким ресурсом, как словарь, в котором хранятся все ссылки на мои URL-адреса и ресурсы, а также всякая болтовня внутри него.

У меня есть функция под названием addItem(id:String, url:String):Object

Я хотел бы сделать что-то подобное, как soundManager.addItem(id:String, url:String).play() или soundManager.addItem(id:String, url:String).stop() при этом он добавит мой элемент в мой словарь и начнет воспроизводить звук

В настоящее время я делаю soundManager.addItem(id:String, url:String)затем soundManager.play('myID').

Мой звуковой ресурс — это объект, содержащий несколько битов, таких как Sound, SoundChannel, SoundTransform, URL и некоторые другие неописуемые части.

Я знаю, что это будет прототипирование — я просто застреваю, когда мне нужно создать прототип своих пользовательских функций и объектов.

заранее спасибо


заключение:

Что ж, я выполнил автозапуск, как указано в моем принятом ответе.

Еще я сделал кое-что очень крутое, что мне нравится.

Я создаю класс SoundManager, который обрабатывает и использует SoundObject, который содержит SoundTransform, SoundChannel и все остальное, что требуется звуковому объекту.

Таким образом, когда я добавляю элемент в SoundManager, он всегда возвращает класс SoundObject, который включает в себя все необходимые мне функции play(), Pause(), Volume(), Position().

Это действительно очень полезно, и я уже использовал его в 4 проектах!Да.

Спасибо, ребята, за вашу помощь.

Это было полезно?

Решение

Если вы смотрите на код, то:

soundManager.addItem(url:String)

возвращает объект (который вы только что добавили), который затем дается play() командование У вас есть несколько простых вариантов в этом.

1) Если вы всегда играете звук, то вы просто добавляете команду в addItem() функция

2) Если вы хотите сделать именно то, что у вас есть, вам нужно сделать правильный класс для звукового объекта с функцией Play (). Вероятно, то, что отправляет событие на Soundmanager, которое затем переключает звук.

3) Добавьте логическое значение к оператору ADD, который является функцией автозаписи, что -то вроде:

addItem(value:*, autoPlay:Boolean = false):Object{
if(autoplay) play()
}

Другие советы

что именно вы подразумеваете под «прототипированием»?Вы имеете в виду добавление пользовательских методов к объекту прототипа классов во время выполнения?хотя это все еще возможно, это больше не является обычной практикой в ​​AS3 по следующим причинам:

  1. не типобезопасен
  2. плохая производительность
  3. редко имеет какое-либо преимущество перед подклассами.

Кроме того, вам следует выбрать одну сигнатуру метода для addItem.ты перечислил 3.это немного сбивает с толку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top