ある種の内部クロックを持つタイムライン「エンジン」があるとします。クロックの「ティック」ごとに、Track オブジェクトを保持する配列またはベクトルをチェックし、タイムラインの先頭から n ティックの startTime を持つオブジェクトが含まれているかどうかを確認します。または、TrackObjs Vector に存在する開始時間の Vector を作成して確認する方が効率的かもしれません。見つかった場合は、TrackObjs vector を実行し、その時点で開始する必要があるすべてのオーディオを取得します。
ここでのティックは、秒、10 分の 1、ミリ秒など、何でもかまいません。フレームベースの計時については、 http: //as3.casalib.org/docs/ org.casalib.time クラスを参照してください。
クラストラック() {
var startTime:int;
var trackName:文字列;
var ファイル名:文字列;
}
複数のミックスされたサウンドを実際に再生するために、さまざまなライブラリがあり、ほとんどの面倒な作業を行うことができます。
http://www.gaiaflashframework.com/wiki/index.php?title=Sound_Groups
Gaia フレームワークから分離する必要があるかもしれませんが、これには便利なコードがあるかもしれません。もっと良いかもしれません:
Matt Przybylski の SoundManager クラスhttp://www.reintroducing.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 クラスを使用すると、無限のオーディオ再生を作成できます。」