• ベストアンサー

Flashでの動画の読み込み

Flash5を、Macで使用しています。 超初心者です。 何個か動画をつくって、UPしたりしたのですが、 そのまま読み込むと重たすぎて、なめらかに動いて くれません。 いろんなサイトを見ると、最初にデータ?を読み込んでるみたいなのですが、 Flashで最初にデータを読み込むように作るには どうしたらよいのでしょうか。

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.3

ロード(読み込み)画面の作り方はいろいろありますが、簡単にできる方法をご紹介します。 ロード画面を作るには、ActionScript というプログラミング言語を使います。プログラムというと難しく聞こえますが、基本的なスクリプトだけでできます。 ムービー本編は既に完成しているようですので、レイヤーを分けた方がいいでしょう。新規にレイヤーを2つ追加し、1つを「ロード画面表示」、もう1つを「アクション」とします。「ロード画面表示」は読み込み中の文字などの表示、「アクション」のレイヤーは ActionScript 専用にします。 ロード画面を2フレームで作ります。ムービー本編の前に空のフレームを2つ挿入して、予め本編を2フレーム分ずらしておきましょう。 「ロード画面表示」レイヤーのフレーム1にキーフレームを作り、テキストツールで「 Now Loading 」の文字を書きます。文字は「読み込み中」でもいいですし、デザインはお好みでどうぞ。 フレーム2でも同じ表示をします。フレーム2に「フレームの挿入」でフレームを挿入してください。 これで、ロード画面の表示は完成です。 次は ActionScript を設定します。 スクリプトはフレーム2に設定します。「アクション」レイヤーのフレーム1と2にそれぞれ、「空のキーフレーム」を作ってください。 ActionScript には、フレーム(タイムライン)に設定する”フレームアクション”と、ムービークリップやボタンのインスタンス(ステージに置いてあるオブジェクト)に設定する”オブジェクトアクション”の2つがあります。今回はタイムラインに設定する”フレームアクション”を使います。 どちらのアクションを編集する場合も、専用のパネルを使って設定します。 ActionScript のパネルは、「ウィンドウ」メニューの「アクション」を選択するか、ステージの右下に並んでいるアイコンの中の矢印のアイコンをクリックすると開きます。また、アクションを設定したいフレームやオブジェクトを選択して、control +クリックでメニューを出し、その中の「アクション」を選択することでも開くことができます。 今回はフレーム2にアクションを設定しますので、「アクション」レイヤーのフレーム2を選択した状態で、アクションパネルを開いてください。 編集画面の具体的な使い方は、ここでは割愛させていただきますが、とりあえず、次のようなアクションを設定してください。 (ブラウザで表示する都合上、各行の行頭に全角のスペースが入っています。このままコピーするとシンタックスエラーになりますので、全ての全角のスペースを半角のスペースかタブに置き換えて使ってください)  // ロード完了率を算出  loaded = Math.floor( ( _root._framesloaded / _root._totalframes ) * 100 );  //ロードが完了したらムービー本編を再生、  //それ以外はロード画面を再生  if ( loaded >= 100 )  {   gotoAndPlay ( 3 );  }  else  {   gotoAndPlay ( 1 );  } loaded というのは変数です。変数にはいろいろな値を入れることができます。ここではロードの完了率の、計算の結果が入ります。ロード完了率はロードしたフレーム数によって常に変わりますから、その値を使うには変数が必要になるわけです。 _root._framesloaded にロードしたフレーム数、_root._totalframes にムービー全体のフレーム数が入っています。プロパティと言って、変数と同じく値がいろいろ入りますが、読み取り専用で、中身を見ることしかできません。ちなみに、プロパティと呼ばれるものは他にもあり、中には自分で値を変更できるものもあります。 Math.floor は、指定した数の小数点以下を切り捨て、整数にするスクリプトです。 従って、変数 loaded にはロードの完了率(%)が整数で入ります。ロードが完了したかどうかは、loaded が 100 になったかどうかで判断できます。 条件によって処理を分ける時に使うのが、if というスクリプトです。英語の「もし~だったら」の if と同じように考えてください。if に続く ( ) の条件が成立する時は、すぐ下の { } の中の処理が、不成立だった場合は else に続く { } の中の処理が実行されます。 なお、条件の中にある >= は、数学で言うところの不等号と同じです。ここでは loaded に入っている値が 100 以上になると、条件成立となります。 gotoAndPlay は指定のフレームにジャンプするアクションです。ムービーの本編はフレーム3から始まりますので、ロードが完了した場合( loaded が 100 以上になった場合)はフレーム3から再生し、完了前はフレーム1に戻るようにします。 つまり、ロードが完了するまでは常にロード画面の表示をしておく、という意味になります。 ロード画面の基本的な作り方は、大体こんなところです。 他にも、総容量(バイト数)とロードされた容量を取得してロード率を計算する方法もありますが、基本的な考え方はどれも同じで、ロードが完了したら本編を、完了前はロード画面を再生する仕組みです。 普通に「ムービープレビュー」すると、既にデータが全て読み込まれている状態になっているため、ロード画面が一瞬で終わってしまい、確認ができません。 ですが、「ムービープレビュー」の「表示」メニューの「ストリーミングを表示」にチェックを入れると、ネットで公開した時のようにダウンロードがシミュレートされるようになります。同じく「表示」メニューの「プロファイラ」にチェックを入れると、フレームごとのデータ量のグラフや、総フレーム数・容量・ロード完了率などの情報も表示されます。 ただ「 Now Loading 」と表示されているだけでは、見ている人には、いつロードが終わるのかが分かりませんよね。容量の大きなムービーは読み込みがどうしても長くなり、いつまでも表示が変わらないままでは、もしや読み込みが失敗しているのでは・・・と思われてしまうかもしれません。 ロード画面のよくある演出は、ロード完了率を表示したり、プログレスバーを表示したりする、といったものです。これなら読み込み完了率に応じて数値やグラフの長さが変わりますから、見ていてとても分かりやすくなります。 どちらの演出も、今回使った変数 loaded の値を利用して作れます。 Flash のテキストツールで作れるテキストフィールドの中には、ActionScript で使う変数の中身を表示できる「ダイナミックテキスト」があります。これを利用して、loaded の値を表示すると、「 Now Loading ○% 」といった表示もできます。 プログレスバーは、ムービークリップの横方向の大きさを%で指定して変更できる、_xscale というアクション(これが、値を自由に変更できるプロパティの1つです)を使って作れます。loaded は%で出していますから、そのまま _xscale の値の指定に利用できます。 ここではヒントしか書けませんが、Flash や ActionScript に慣れてきたら、ちょっと凝ったロード画面にも、ぜひチャレンジしてみてください。 ところで、「 Now Loading 」のコンポーネントですが。 コンポーネントの概念は、Flash 5 の次のバージョンである、Flash MX から取り入れられたものです。Flash 5 にもコンポーネントの前身にあたる「スマートクリップ」と呼ばれるものはありますが、Flash MX や Flash MX 2004 用に開発されたコンポーネントは、Flash 5 では正常に動作しない可能性があります。 長くなってすみませんでした。 不明な点がございましたら、補足してください。

820_aka
質問者

お礼

貴重な時間をさいて たくさんの書き込みありがとうございます なかなか回答がなかったのであきらめていましたが 思い出して見てみるとこんなに詳しく書き込みが あってびっくりしました。 返事遅れてすみません。 ちょっとむずかしいですが、がんばってみます! ありがとうございました。

その他の回答 (2)

回答No.2

アクションスクリプトが難しいと思いましたら「Now Loading」のコンポーネントを使うという方法があります。 参考URLの書籍を買うと、もれなく「Now Loading」のコンポーネント等が付属のCD-ROMに入っていますので 初心者の方にはお勧めかと思います。 何冊も本を買って読みましたが、この本が一番初心者に親切だと思いましたので参考までにどうですか?

参考URL:
http://www.flash-jp.com/books/oshifla_2004/
820_aka
質問者

お礼

ありがとうございます! 調べてみます

  • yuino-n
  • ベストアンサー率34% (9/26)
回答No.1

こんにちは、私もFLASHをやり始めたばかりです。 一般的に「Now Loading」等の軽い画像を読み込んでから 本編に入るものが多いみたいです。 軽い画像を出している時に本編(重い画像)を読み込む とスムーズに表示されるようです。 「Now Loading」の作り方 http://f-site.org/archives/000333.html http://www2.netwave.or.jp/~light/index.html 難しいかと思いますがお互いがんばりましょう♪

参考URL:
http://f-site.org/archives/000333.html