一人もくもく会 α verでサービス開始しました。
請求書作成システム α verでサービス開始しました。

サウンドをループ

flexでサウンドをループする方法。
BGM等に使用したい場合。
あと、主に複数サウンドをならしたい時に
一つのリスナー関数で終わらしたい時の話。
Soundを再生する時、以下のようにチャンネルオブジェクトが出てくる。
その時そのチャンネルオブジェクトにイベントを設定。

var channel:SoundChannel = snd.play();
channel.addEventListener(Event.SOUND_COMPLETE, onSoundComplete);

で、ぐぐっても出なかったしリファレンスにも
ちゃんとした情報が載っていなかったのだけど、
リスナーで受け取ったパラメータに、SoundChannelが割り当てられている。
なのでSoundとSoundChannelをなにかで結びつけて保存しておけば、
どのSoundが終了したのかを判別できる。

public function onSoundComplete(evt:Event):void
{
    for (var name:String in m_sounds)
    {
        if (m_sounds[name].channel == evt.target)
        {
            m_sounds[name].sound.play();
            break;
        }
    }
}