Flashでアニメーションを作成する際のLoadingの最適な方法とは?

このQ&Aのポイント
  • Flashでアニメーションを作成する際、LoadingのActionScriptについてアドバイスをいただきたいです。
  • 現在は100%読み込んでから再生する方法を取っていますが、ロード時間が長いため途中まで読み込んでから再生する方法を教えてください。
  • 具体的な解決方法や効果的なActionScriptのコードなどを教えていただけると助かります。
回答を見る
  • ベストアンサー

Loadign途中に再生させる方法

Flashでアニメーションを作成しているのですが、LoadingのActionScriptについて アドバイスいただけないでしょうか。 まず、現在下記のActionScriptで100%読み込んでから再生する方法を取っています。 -----ActionScript------------------------------- Total = _root.getBytesTotal(); Loaded = _root.getBytesLoaded(); if (loaded>=Total) { _root.play(); } else { parcent = (Loaded/Total)*100; parcent_text = Math.round(parcent); Bar.p_Bar(parcent_text); _root.stop(); } ------------------------------------------------- ところがあまりにもloadingに時間がかかる為、途中まで読み込んだら 再生するようにしたいのですが、その場合どのようにすれば良いのでしょうか。 どうぞ宜しくお願い致します。

noname#16138
noname#16138
  • Flash
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

ActionScript中の if (loaded>=Total) { _root.play(); } の部分で, 「もし,ロードされたバイト数が,トータルのバイト数よりも等しいか大きくなればPlay」 なのですから,単純にここを if (loaded>=Total * 0.5) { _root.play(); } とかにされたら,0.5=50%読み込んだところでPlayすると思います。 思っただけで,やってないので自信はありませんが。

その他の回答 (1)

回答No.2

ローディングを完了するまでの時間はPCのスペックによって違いますので、30% 50%読み込む毎に再生ボタン、またはムービーを再生させる機能を表示、用意させてあげて、ユーザーの意思で操作してあげるのはいかがでしょうか?

参考URL:
http://1art.jp/flash/le/lesson38/lesson38.htm

関連するQ&A

  • 半分読み込んで再生するプリローダー

    Flashでプリローダーを作成しています。 これまでは100%読み込むとムービーを再生するという、 よくあるタイプのものを使用していましたが、 今回は全体の半分、または指定のバイト数を読み込んだら再生するものにしたいと思っています。 そこで自分でスクリプトを書き換え、試行錯誤してみましたがどうしてもうまくいきません。 【もとのスクリプト(正常に動作します)】 ================================================================== this.onEnterFrame = function() { _root.stop(); nParcent = (_root.getBytesLoaded() / _root.getBytesTotal() )*100; this.nParcent_txt.text = Math.round(nParcent)+"%"; if ( nParcent == 100) { _root.play(); } } ================================================================== 【書き換え後のスクリプト】 ================================================================== this.onEnterFrame = function() { _root.stop(); halfSize = _root.getBytesTotal() / 2; nParcent = (_root.getBytesLoaded() / halfSize )*100; this.nParcent_txt.text = Math.round(nParcent)+"%"; if ( nParcent == 100) { _root.play(); } ================================================================== 書き換えた後の方を実行すると、 200%まで読み込んでムービーがストップしてしまいます。 ActionScript初心者でどこが間違っているのか見当がつかず困っています。 ご回答よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flashビデオの音声が途切れ途切れで再生されてしまう。

    プログレスバーのActionScriptを追加したところ、 埋め込んであるFlashビデオの音声が途切れ途切れで再生されてしまいます。 "下記の内容です。 _root.stop(); this.onEnterFrame = function() { partNumber = (_root.getBytesLoaded()/_root.getBytesTotal())*100; partNumber_txt.text = "Loading " + Math.round(partNumber) + "%"; if (partNumber == 100) { //clearInterval(intervalID); _root.play(); } }; function startMC(){ spin_mc._rotation += 30; } var intervalID = setInterval(startMC,50); "ここまでです。 (同時にミュージックも埋め込んで再生していますが、こちらの音は問題なし。) パブリッシュ設定をいくつか変えてぱブリッシュを試したのですが、上手くいかず、 プログレスバーのActionScriptを削除しパブリッシュすると問題なくFlashビデオの音声も再生されます。 この症状には、どういった問題が考えられますでしょうか? ご教授頂けますと幸いです。何卒、よろしく願い致します。

  • ボタンを押してもすぐ戻ってしまう・・・。

    1フレーム目に、 onEnterFrame = function():Void { if (_totalframes == _framesloaded) { gotoAndStop("snap"); } total = _root.getBytesTotal(); loaded = _root.getBytesLoaded(); percent = Math.floor(loaded/total*100); _root.bar_mc._xscale = percent; }; stop(); と記入し2フレーム目のフレームラベルをsnapに。 2フレーム目には、画像と次のフレームにいくボタンが置いてあります。 ボタンには、 on(press){ gotoAndStop(3); } と書いてあるのですが。 このボタンを押すと、確かに3フレーム目にいくのですが、すぐ2フレーム目に戻ってしまうんです。 初めてローディングバーをつけてみたので、間違いだらけかもしれないですがどうすればいいか教えてください><

    • ベストアンサー
    • Flash
  • ローディングバーをゆっくりみせる方法

    自分の作品をのせる個人サイトを作成しています。 ルートにloadingというレイヤーを作成し、入れ子にして中に入り、 _parent.stop(); total = _parent.getBytesTotal(); loaded = _parent.getBytesLoaded(); percent = Math.floor(loaded/total*100); bar._xscale = percent; if (percent/100>=1) { gotoAndStop(3); _parent.play(); } というように記述し、外部swfファイルを読み込ませる度に loadingの1~3フレームを繰り返す仕組みにしてます。 この作り方だとローディングバーが一瞬しか表示されないので確実に読み 込んでいるようにゆっくりとみせたいのですがこの場合どのようにしたら よいのでしょうか?(もちろん本来ならローディングバーなど表示されない ほうがストレスにはならないのでしょうが、サイトに統一感をもたせたく てゆっくりと読み込ませたいです。) 前に企業サイトなどでは裏技みたいな感じでローディングバーをわざと ゆっくり読み込ませる工夫がしてあるとお聞きしたのですが。。。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • now loding.......

    onClipEvent (load) { total = _root.getBytesTotal(); } onClipEvent (enterFrame) { loaded = _root.getBytesLoaded(); percent = int(loaded/total*100); text = " "+percent+"%"; gotoAndStop(percent); if (loaded == total) { _root.gotoAndPlay(2); } } と、いうスクリプトが記述されているのですが、すべてダウンロードしないうちに再生してしまい、ナローバンドで見たときに、途中の動きがギクシャクしてしまいます。 このスクリプトをどういじれば解決するのでしょうか? ご教授くだされば幸いです。

  • Now Loadingから次のフレームに行かない

    Flash8です。 1フレームに全体のサイズを読み込むスクリプト ------------------------- this.onEnterFrame = function() { nParcent = (_root.getBytesLoaded()/_root.getBytesTotal())*100; if (nParcent == 100) { _root.play(); delete this.onEnterFrame; } }; _root.stop(); ------------------------- と、%を数字で表記するためのスクリプト ------------------------- onClipEvent (enterFrame) { num = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100); _root.nowloading.percent = num+"%"; } ------------------------- を入れていて、100%読み込んだら次のフレームより開始(再生)したいのですけど、 現状読み込んで(数字も0から100に上がって行って)、100%になった状態でストップして再生しません。 何が足りないのでしょうか? アドバイスお願いします!

  • FLASHのプリロードについて…

    こんにちは。 最近FLASH MXをはじめたばかりの初心者です。 プリロード画面を作ったのですが、全て 読み込むまでに結構な時間がかかってしまいます。 そこで、全部読み込んだ時点で再生、ではなくて ある一定のフレームまでもしくは全体の○%まで 読み込んだら再生を始める、というようにしたいの ですが、そんなアクションはないでしょうか? onClipEvent(enterFrame){ total=_root.getBytesTotal(); loaded=_root.getBytesLoaded(); if(loaded==total){ _root.play();}} 今は↑のように書いています。 ご回答宜しくお願いします。

  • (1)loading後再生→(2)すぐにアクセスした場合飛ばす

    現状できてることは (1)トップページにてLoading後(一分くらい)→再生→最後のフレームではストップ (2)そしてサブからトップへすぐに戻ったとき→Loading(一分)後、再生せず→最後のフレームでストップということまではできてます。 問題は(2)の"またLoading(一分)後”なのです。 サブからすぐにトップへ戻ったときは再生せずに 最後のフレームへジャンプしてくれるのはいいのですがその前にLoadingが発生して一分たってから最後の フレームへジャンプするのです。このときのloading の防ぎ方を教えてください。 現状スクリプトを下にて参考にしてください。 Flash MX6 フレーム数940 フレーム1 onClipEvent (load) { _root.stop(); //タイムラインの1フレーム目で止めておく } onClipEvent (enterFrame) { // すべて読み込んだら3フレーム目へ if (100 == Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) { _root.gotoAndPlay(3); } } フレーム 2 gotoAndStop (1); ---------------↑ここまではLoading--------------- フレーム4 onClipEvent (load) { myObject = SharedObject.getLocal("Watch"); myDate = new Date(); Watch2 = myDate.getTime(); if (myObject.data.Watch1 != undefined) { Watch1 = myObject.data.Watch1; } else { Watch1 = 0; } //ココは60000で一分 if (Watch1+60000>Watch2) { //ここを最終フレーム _root.gotoAndStop(920); } } onClipEvent (enterFrame) { myDate = new Date(); Watch3 = myDate.getTime(); myObject.data.Watch1 = Watch3; } ----------↑一分内は940へジャンプ(前回sassakunさんにてご回答)-------------- フレーム4をフレーム1へ先にもってきたり 色々ためしましたがうまくいきませんよろしくおねがいします。

    • ベストアンサー
    • Flash
  • FLASH5 での プリロード

    お世話になってます。 今回はFLASH5でのプリロード方法が上手くいかず投稿させて頂きました。 具体的なFLASHの内容ですが、 トータル2フレームで2MB前後のファイルとなります。 1、2フレーム目に stop(); を記述しプリロードのMC内で、 loadedSize = _root.getBytesLoaded(); totalSize = _root.getBytesTotal(); if (loadedSize >= totalSize) { _root.play(); } else { parcent = (loadedSize/totalSize)*100; gDownloaded = Math.round(parcent); _root.stop(); } とし、MC内で2フレームとってMC自体のループとしてます。 これでムービープレビューのストリーミングでは最初にプリロード されている様なのですが、フレームが0とされ 何も表示されない場所でプリローディングしている様です。 (プリロード中にフレーム1を表示させたいのですが、 全て読み込んで(フレーム0)からフレーム2に移動している感じです) またこれとは話がずれますが、指定したフレーム(途中からとか)で プリロードさせる方法はありますでしょうか? 補足要求あればお願い致します。

  • 1フレーム~5フレームまで表示されなくなったのは。。。

    こんにちわ毎回お世話になっております 新しいフラッシュを作ったのですが 前回のフラッシュにしようしたロード画面を 使いまわしました。 ムービークリップ自体には onClipEvent (load) { _root.stop(); } onClipEvent (enterFrame) { if (100 == Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) { _root.gotoAndPlay(5); } } onClipEvent (enterFrame) { this.gotoAndStop(Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)); } と前回同様記述しました。 しかし今回はロード画面がでず 白紙の画面のまま読み込みが完了し そのままフレーム5に進んでしまっています。 何回もやりなおしたのですが どうしても白紙のまま読み込んでしまいます。 これはFLA自体が破損?したのでしょうか? 非常に困っています。 なにかアドバイスがありましたらお願いいたします。 別のロードムービーを作ったものの 白紙のまま読み込みされました。。。 FLASH8 WIN XP使用です。

    • ベストアンサー
    • Flash

専門家に質問してみよう