- ベストアンサー
外部flvファイルの再生終了の確認方法とプリローダーについて
- FLVPlayback コンポーネントを使って外部flv動画の再生終了を確認する方法について、ActionScriptを利用して実装します。
- 外部flvファイルの再生が終了したら、指定したフレームに移動して次のアニメーションを再生する処理を行います。
- 一般的なプリローダーの機能では、外部のflvファイルも一緒に先読みされることがありますが、具体的な仕組みは環境によって異なるため、確認が必要です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
FLVPlayback コンポーネントでは、FLV の終端に達して再生が終了した時に” complete ”というイベントが発生します。 このイベントを利用してフレームを移動してはいかがでしょう。 スクリプトの一例です。 FLVPlayback コンポーネントのインスタンス” flv_player ”があるとします。 このスクリプトは、FLVPlayback コンポーネントのインスタンスがあるタイムラインのフレームに記述してください。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください) /**************************************************/ //リスナーオブジェクトを作成 var obj:Object = new Object(); //FLV再生終了時の処理を定義 obj.complete = function( info:Object ):Void { //アニメのフレームに進む gotoAndPlay( "○○○" ); //リスナーを削除 flv_player.removeEventListener( "complete" , obj ); }; //リスナーを登録 flv_player.addEventListener( "complete" , obj ); //タイムラインを止めておく stop(); /**************************************************/ 外部 FLV も JPEG 画像等をスクリプトで読み込む時と同じように、FLVPlayback コンポーネントのインスタンスがあるフレームが再生されて内部のスクリプトが実行されるまでは読み込まれません。 一般にプリローダーは、ムービーの最初に専用のフレームを作り、読み込みが完了するまで先のフレームを再生しない仕組みで作るかと思います。 つまり、ムービー自体が読み込まれるまでは FLVPlayback があるフレームが再生されず、そのためにコンポーネント内のスクリプトも実行されないことになるので、FLV は先読みされません。 もっとも、プリローダーと FLVPlayback が同じフレームにある場合などは、容量によっては FLV とムービー自体の読み込みが並行して行われることはあるかもしれません。 これは単に、ムービー自体と外部 FLV の2件の読み込みが同時に行われるだけの話で、進捗状況もそれぞれ別の情報として管理されます。 ムービーのプリローダー1つではムービー自体と FLV を合わせた分の読み込み完了を検出できません。合算で読み込み完了率等を求めたいのでしたら、それなりの工夫が必要になります。
お礼
ありがとうございます! しょうがないからキューポイント付けるかとか悩んでいるところだったので非常に助かりました。 また先読みの件も勉強になりました。