アプリ版:「スタンプのみでお礼する」機能のリリースについて

FLVPlayback コンポーネントを使って、アニメーション中に外部flv動画が再生されるようなものを作っています。
動画再生終了後に、次のアニメーションに移りたいのですが、外部flvファイルは定期的に更新されるので、何フレームあるのかわかりません。そこで、ActionScriptを使って外部flvファイルの再生が終了したらgotoAndPlay("");みたいな処理をしたいのですが、どのようにすれば良いでしょうか。

それと、よくあるプリローダー、いわゆる先読み機能では外部のflvファイルも一緒に先読みされるのでしょうか。

CS3+AS2+winvista環境です。
よろしくお願い致します。

A 回答 (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 を合わせた分の読み込み完了を検出できません。合算で読み込み完了率等を求めたいのでしたら、それなりの工夫が必要になります。
    • good
    • 0
この回答へのお礼

ありがとうございます!
しょうがないからキューポイント付けるかとか悩んでいるところだったので非常に助かりました。
また先読みの件も勉強になりました。

お礼日時:2009/06/05 15:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!