• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FLV ファイルに対して Nowloading する方法)

FLVファイルのNowloading方法

このQ&Aのポイント
  • FLVファイルをNowloadingする方法について、アクションスクリプトの記述場所やビデオデータの埋め込みに関して質問しています。
  • FLVファイルをプログレッシブダウンロードで読み込み、SWFファイルに書き出してサーバー上で動画配信する際、Nowloadingの表示方法について教えてください。
  • FLVファイルのNowloadingに関する質問です。アクションスクリプトの書き方や埋め込み方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

質問QNo.2598084 で回答されていらっしゃる方の考え方をそのまま利用して, それを簡略化し, Nowloading という文字を表示させるだけの方法を書きます。 新規ドキュメントを作成して, ご質問で書かれていらっしゃるように, 「WEBサーバーからのプログレッシブダウンロード」 にてステージ上に読み込ませる状態までを作成します。 すると, ステージ上には「FLVPlayback」コンポーネントが自動的に配置されると思います。 そのステージ上の「FLVPlayback」コンポーネントを選択した状態で, 下のプロパティインスペクタ(プロパティパネル)の左の方にある, [ <インスタンス名> ] とグレーの文字が書かれてある部分でインスタンス名を付けます。 QNo.2598084 の回答にしたがって, 「mediacomponent」 というインスタンス名を付けることにします。 この時点でレイヤーはまだ1つのはずです。 新規レイヤーを追加して, その新規レイヤー(レイヤー2)のステージ上にテキストツールで Nowloading という文字列を書きます。 その Nowloading というテキストを選択して, 「修正」→「シンボルに変換」 でムービークリップに変換します。 そのステージ上の Nowloading テキスト入りムービークリップを選択した状態で, 下のプロパティインスペクタ(プロパティパネル)の左の方にある, [ <インスタンス名> ] とグレーの文字が書かれてある部分でインスタンス名を付けます。 「Nowloading_mc」 というインスタンス名を付けることにします。 この時点でレイヤーは2つのはずです。 新規レイヤーを追加して, その新規レイヤー(レイヤー3)のフレーム1の空白キーフレームを選択した状態で, アクションパネルに次のスクリプトを書きます(コピペします)。 ------------------------------------------- /*--- QNo.2598084 の方のスクリプトを一部改良 ---*/ //コンポーネントを非表示にしてミュート(消音)にする mediacomponent._visible = false; mediacomponent.volume = 0; _root.onEnterFrame = function() { flv_total = mediacomponent.bytesTotal; if (flv_total != undefined) { //読み込み完了率を算出 flv_loaded = mediacomponent.bytesLoaded; //100%読み込まれたら動画を再生 if (flv_per>=100) { // Nowloading_mc を削除 Nowloading_mc.swapDepths(_root.getNextHighestDepth()); Nowloading_mc.removeMovieClip(); //コンポーネントを表示してミュートを解除 mediacomponent._visible = true; mediacomponent.volume = 100; //再生ヘッドを先頭に戻して再生 mediacomponent.playheadTime = 0; mediacomponent.play(); //enterFrameイベント処理を削除 delete _root.onEnterFrame; } } }; ------------------------------------------- 念のためレイヤーの構造を描いておきます。  □ レイヤー3 ・・・■|○| ←上記ActionScript  □ レイヤー2 ・・・■|●| ←Nowloading_mc  □ レイヤー1 ・・・■|●| ←mediacomponent 根幹の作成方法は以上,これだけです。 ======================== > 何番目のフレームに どのようなアクションスクリプト > を書けばよいのでしょうか? 上の場合は,FLVのロードに関してだけについて書いたものですから, フレーム1 にActionScriptを書くことになります。 上のレイヤーの図の通りです。 FLVに関する Nowloading だけではなくて, 本体SWFにも Nowloading を付ける場合は, フレーム1 などに SWF の Nowloading を用意して, それ以降のフレームに上のものを用意すれば良いということになります。  □ レイヤー3 ・・・■|○|○| ←ActionScript  □ レイヤー2 ・・・■|●|●| ←Nowloading_mc  □ レイヤー1 ・・・■|○|●| ←mediacomponent QNo.2598084 の方の回答の場合は, なぜかSWF のプリロード自体に 2フレーム 使用されていて フレーム1 と 2 をループで回されていますから, 次のような感じにするということです。  □ レイヤー3 ・・・■|○|○|○| ←ActionScript  □ レイヤー2 ・・・■|●//|●| ←Nowloading_mc  □ レイヤー1 ・・・■|○  |●| ←mediacomponent 何フレームに何を用意するとは決まった物ではありません。 その, 本体SWFの Nowloading に関する部分の注意と工夫が, QNo.2598084 の回答, > SWC ファイルで作られているコンポーネントは、 > リンケージを利用して swf ファイルに組み込まれます。 > デフォルトではフレーム1に書き出されるように設定されていますので、 > コンポーネントを多数利用するとフレーム1の容量が大きくなり、 > 続く Now Loading アニメがなかなか始まらなくなってしまいます。  ~略~ > ここに、MediaPlayback コンポーネントのインスタンスが > 初めてステージに登場するフレームを入力してください。 > 例えば、フレーム3に配置しているのであれば 3 を入力します。 の部分です。 ここは本体SWFに Nowloading を付けない場合は,関係がありません。 もし本体SWFに Nowloading を付ける場合は, 上で引用した部分のことを良く理解してその通りにしてください。 ~・~・~・~・~・~・~・~・~・~・~ なお, ムービープレビューのダウンロードのシミュレート機能を使っても, FLV に関してはシミュレートが働きません。 ローカルだと一瞬でFLVがロードされてしまいます。 実際にネット上にアップするか,仮想サーバなどで実験しないと, 動作確認はできないと思います。

rain_doll
質問者

お礼

 □ レイヤー3 ・・・■|○| ←上記ActionScript  □ レイヤー2 ・・・■|●| ←Nowloading_mc  □ レイヤー1 ・・・■|●| ←mediacomponent のご説明に 心の涙がでます。 「教えてgoo」の投稿は初めてでしたが、本当に心温かいご返信をいだたき、有頂天モードに入っています。私も誰かに何か答えたくなっています。それくらい、うれしいです。 明日、職場(学校)のパソコンに入っているFLASH8で試して、そしてネット上にアップして確認してみます。 ・・・できそうな気がしています。 BlurFiltan様に合掌。・・・ありがとうございました。

rain_doll
質問者

補足

ありがとうございました。 さっそくに作成してみました。ネット上にアップしましたが一瞬(2秒くらい)にして Nowloading表示が消え再生始めました。 ActionScript内容からして、Nowloading表示が消えたのでflv_per>=100 の判定が正になったのでしょうから大丈夫だと思いますが、少しだけ疑心の鬼が心に発生しています。 FLVファイルは60MBあります。学内LANの能力が高いのかなとも思いますが(過大評価すると)、自宅のADSLでもう一度確認します。取り急ぎの結果ご報告でした。  

関連するQ&A

専門家に質問してみよう