- ベストアンサー
now loadingの作り方
初めまして、Flashを始めたばかりのの初心者です。Now Ladingを作りたいのですが、IF構文で分岐させ完了していなければ、、、。というのはなんとなくわかったのですが、まずは、タイムラインで、あるフラッシュビデオAが完了したらフラッシュビデオBが流れるを作ってイメージをつかみたいと思っていますががこれができません。タイムライン上に並べただけではできないのでしょうか、、。あまりに初心者ですみませんです。なお、フラッシュビデオは、adobe media coverterで作ったものです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
FLVPlayback使うのならその辺りの イベントは一通り用意されてます ロード中はprogress ムービーのデータがロード完了したらready 再生が最後まで終わったらcomplete のイベントをそれぞれ発信します progressイベントにはbytesLoadedと bytesTotalのデータが入ってます まあインスタンスからも取得できるんですが import fl.video.FLVPlayback import fl.video.VideoEvent import fl.video.VideoProgressEvent var myFLVPlayback:FLVPlayback=new FLVPlayback() addChild(myFLVPlayback) myFLVPlayback.source="XXXXX.flv" myFLVPlayback.addEventListener(VideoProgressEvent.PROGRESS,onProg) function onProg(e){ var per=Math.floor(e.bytesLoaded/e.bytesTotal*100) trace(per+"% ロード完了") } myFLVPlayback.addEventListener(VideoEvent.READY,onReady) function onReady(e){ trace("準備完了") } myFLVPlayback.addEventListener(VideoEvent.COMPLETE,onComp) function onComp(e){ trace("再生終了") }
その他の回答 (1)
- H240S18B73
- ベストアンサー率65% (190/288)
とりあえず、タイムライン上に二つのFLVPlaybackなりを並べた所で 最初のFLVの再生完了を待って次のフレームに行く、なんてことはしてくれません だから最初のFLVPlaybackが再生を終了して"complete"イベントを 発信するまでそのフレームで停止し、"complete"イベントで 次のフレームに移動するような処理を書いてやる必要があります また、読み込み済みパーセンテージを反映するような プリローダーを作るなら読み込み状況を調べる必要があります これはFLVPlaybackインスタンス、もしくはそれが読み込み中に 発信するprogressイベントのbytesLoadedとbytesTotalプロパティで 読み込み済みのバイト数、読み込もうとしてる総バイト数を 取得する事で調べることができます プリローダーのムービーを作るなら ENTER_FRAMEイベント毎に インスタンスから調べる方がいいでしょう progressを使うのはスクリプトの処理を 待たせたい時位かと思います 別に読み込み済みパーセンテージとかを反映する必要はないなら FLVPlaybackのインスタンスはファイルの読み込みが終われば readyイベントを発信してくれるので それを受けてプリローダのムービーを 終了させれば良いだけです あと、もしビデオBのプリローダーとしてビデオAを使おうとかしてるのだとしたら ビデオAをよっぽど軽くするか、埋め込むか、最初のフレームであらかじめロードしておくか しておかないと、プリローダのビデオAが始まるまでに時間がかかるという 本末転倒な結果になってしまいます あと、rootのloaderInfoは外部の画像とか動画のロードは含まず なおかつ、まだ再生されていないフレームに配置されたインスタンスには アクセスすることはできません プリローダとムービーのフレームを分けてやりたいなら ムービーをプリローダのフレームに見えない形で置いておくとか してやらないとイベントの取得も、そもそもロードの開始もできません
お礼
あの後、何度も読み直しつつ、未だに全て理解できていませんが、かなりおおきなヒントをいただいています。大変に感謝しております。引き続き勉強いたしますので、ぜひ、よろしくお願いします。
補足
お答えありがとうございます。具体的には、Flashにflvを読み込んでからだと思いますが、具体的にはどうしたら良いでしょうか?