- ベストアンサー
(Flash8)サウンドオブジェクト(?)の再生
ライブラリにある音楽ファイルをサウンドオブジェクトに割り当てて、それを"確実に"ループ再生させたいです。 sound_obj.start(0,10000); と言うように書いて1万回再生させているのですが、確実に永久的にループさせる方法はありませんか? 回答、アドバイス、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Sound クラスの start メソッドで再生した音の再生が終了した時に指定した関数が呼び出される、“ onSoundComplete “というイベントハンドラがあります。 これに登録する関数の中で再度 start メソッドを実行すると、再生が終了するたびに再生処理が行われるので、本当の無限ループ再生になります。 スクリプトの一例です。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください) /*********************************************/ //サウンドを挿入 sound_obj = new Sound(); sound_obj.attachSound( "○○○" ); //無限ループ再生設定 sound_obj.onSoundComplete = function() { this.start(); }; //サウンドを再生 sound_obj.start(); /*********************************************/ 音を止めたい時は、sound_obj.stop(); で止めることができます。 onSoundComplete の設定は、持ち主の Sound オブジェクト(上記の例では sound_obj )が存在している間、別の関数に置き換えたり、delete で onSoundComplete 自体を削除したりしない限りは有効です。 従って、attachSound で再生するサウンドシンボルを差し替えた場合や、一旦音を止めて再度 start メソッドで再生した時にも、onSoundComplete で呼び出される関数により無限ループ再生になります。
お礼
回答ありがとうございます。 止めたい時はonSoundComplete自体を削除すればよいのですね。 大変分かりやすい回答をありがとうございます。