Предположим, у вас есть «движок» временной шкалы, который имеет какие-то внутренние часы. каждый «тик» часов вы будете проверять некоторый массив или вектор, который содержит ваши объекты Track, и смотреть, содержит ли он объект с startTime из n тиков с начала временной шкалы. Или, может быть, более эффективно создать вектор времени запуска, который существует в векторе TrackObjs, и проверить это, а затем, если он будет найден, запустить вектор TrackObjs и получить все аудио, которые необходимо запустить в это время.
Здесь тики могут быть секундами, десятками, миллисекундами, чем угодно. см. http://as3.casalib.org/docs/ классы org.casalib.time для основанных на кадрах хронометраж
class Track() {
var startTime:int;
var trackName:String;
var fileName:String;
}
Для фактического воспроизведения нескольких смешанных звуков существуют различные библиотеки, которые могут сделать большую часть тяжелой работы за вас.
http://www.gaiaflashframework.com/wiki/index.php?title=Sound_Groups
Здесь может быть полезный для вас код, хотя вам, возможно, потребуется отделить его от среды Gaia. Может быть, лучше:
класс SoundManager Мэтта Пшибыльского http://www.reintroduction.com
Класс Guttershark SoundManager http://codeendeavor.com/guttershark
Кроме того, они могут представлять интерес для динамической генерации звука:
http://code.google.com/p/benstucki/
"Flaudio – это динамическая библиотека для генерации и обработки звука во время выполнения для ActionScript 3"
http://code.google.com/p/popforge/
" Аудиобиблиотека Popforge AS3 позволяет создавать действительный объект flash.media.Sound с вашими собственными семплами, что открывает новые перспективы для звукового дизайна с текущим Adobe Flash Player 9. Вы можете создавать синтезаторы, эффекты и проигрыватели сэмплов любого типа. Поставляемый класс AudioBuffer позволяет создавать бесконечное воспроизведение звука».
person
ransomweaver
schedule
10.12.2009