• 締切済み

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
  • 回答数4
  • ありがとう数2

みんなの回答

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.4

> ・・・普通に1フレーム目ではないのでしょうか? > "_root上"というのが分かりません(つД`;) ムービークリップ等を配置すれば、無数に各々の1フレーム目ができるので "普通に1フレーム目" と言われても、あなたの "普通" が何を指しているのかわかりません そのように質問されたということは、あなたが記述した_root.stop(); や_root.play();の_rootも理解できていないと言うことでしょうか _rootという言葉自体基本中の基本ですので、勉強用のサイト・書籍等で一から勉強したほうがよいでしょう また、traceのほうもわからないようですが、 Flashにはヘルプ機能があるので、そちらを有効に活用しましょう ヘルプはどう使うのですか?は無しです 少し厳しいアドバイスになってしまいましたが、 基本中の基本を理解していないと、質問に質問が永遠に繰り返されるだけです 自分の書いたスクリプト位は何を記述しているのか把握して下さい 丸写し or コピー&ペーストで記述し理解できていないならば、 理解できていない旨を述べた上で質問しましょう 何事も順を追って一つ一つ理解するように励みことをおすすめします

freeman555
質問者

補足

>少し厳しいアドバイス・・・ そうですね(^^;) でもここは分からない人間が質問する広場です。 私に非があったとすれば、最初に「初心者」である事を書かなかったくらいでしょうか? それでも、分からないから聞いているのであって、「自分で把握しろ」は見当違いだと思います。 第一、教える気が無いのなら最初から書き込まなければいいだけの話で、 「書き込んでみたら初心者だったから教えない」では、コチラとしてもいい気がしません。 もちろんおっしゃってる意味もよく理解できます。 自分で調べて理解した方が、後々自分の「糧」になると言う事なのでしょう。 でも、今はそれは必要としている事ではなく、質問に対する解決策が欲しかったのです。 例えるならば「卵の割り方を教えてください」に対して 「卵とは何かを理解せよ」とか「成分は何で出来ているかもわかってないならそれから勉強して出直せ」と 答えられているようなものです。 問題の件は自己解決しました。

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.3

原因はわかりませんが、簡略化して試してみましょう 質問の際に書かれたフレームやMCに記述してあるスクリプトを 全て削除してから "_root上" の1フレーム目に //ここから this.stop(); this.onEnterFrame = function() { var num = Math.floor(this.getBytesLoaded()/this.getBytesTotal()*100); this.nowloading.percent = num+"%"; if (this._framesloaded == this._totalframes) { this.play(); delete this.onEnterFrame; trace("playの命令をしたよ"); } }; //ここまで そして "_root上" の2フレーム目に //ここから trace("フレーム 2 を通ったよ"); //ここまで として trace による確認もしてみると良いかと思います

freeman555
質問者

お礼

度々の回答ありがとうございます。 >"_root上" の1フレーム目 ・・・普通に1フレーム目ではないのでしょうか? "_root上"というのが分かりません(つД`;) >trace による確認 と言うのも(^^;) まったくの初心者な者ですから、良ければ優しくお願いしますm(_ _)m

noname#35109
noname#35109
回答No.2

#1です。 スミマセン。何を書いてるんだか....。 スクリプト変更部分の訂正です。 nParcent = (_root.getBytesLoaded()/_root.getBytesTotal())*100;   ↓ 変更 ↓ nParcent = Math.round((_root.getBytesLoaded()/_root.getBytesTotal())*100); です。 Math.round の () で右辺全体をくくるのを忘れていました。

freeman555
質問者

補足

回答ありがとうございます! スクリプト書き換えてみたけどやっぱり2より先に行きません。 100%という表示とNOWLOADINGの表示が出たままです。 なんだろう・・・(つД`;) 他にはスクリプト無いんだけど。

noname#35109
noname#35109
回答No.1

謎ですね。 ご質問で書かれているスクリプトをコピペして作ってみましたが, ロード完了次第, _root のタイムラインはフレーム2に行って,ちゃんと再生が開始されます。 _root に フレーム2 以降のフレームが存在していて, なおかつ, フレーム2 に _root.gotoAndStop(1); などというわけのわからないスクリプトを書いていなかった場合ですが。 if文内の判定が厳密すぎて, ほんの少しの誤差で, nParcent の値がちょうど 100 にならないので動かないのかもしれません。 nParcent = (_root.getBytesLoaded()/_root.getBytesTotal())*100;   ↓ 変更 ↓ nParcent = Math.round(_root.getBytesLoaded()/_root.getBytesTotal())*100; こうされてみてはいかがでしょうか? Math.round で小数点以下を四捨五入してみるのです。

関連するQ&A

  • 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); } } と、いうスクリプトが記述されているのですが、すべてダウンロードしないうちに再生してしまい、ナローバンドで見たときに、途中の動きがギクシャクしてしまいます。 このスクリプトをどういじれば解決するのでしょうか? ご教授くだされば幸いです。

  • 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
  • (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
  • 半分読み込んで再生するプリローダー

    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
  • ボタンを押してもすぐ戻ってしまう・・・。

    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
  • FLASHのプリロードについて…

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

  • Math.floorがうまく動きません…

    Flase8初心者です。 NowLoading画面に%を表示させようと思いスプリクトを書いたのですが、 Math.floorがうまく動かないのか小数点以下まで表示されてしまいます。  スプリクトは下記のものです。 this.onEnterFrame = function() { Parcent = (_root.getBytesLoaded()/_root.getBytesTotal()*100); Parcent_txt.text =Math.floor(Parcent); if (Parcent == 100) { _root.play(3); } }; _root.stop(); どこかに間違いがあるのでしょうか? 回答、よろしくお願い致します。

    • ベストアンサー
    • Flash
  • ムービークリップ再生後次のフレームへ移動しません

    アクションスクリプトを使って、テキストが下から上へ流れるようにムービークリップを再生し、テキストが流れ終わったところで次のフレームへ移動させたいのですが、フレームが移動せず困っています。 スクリプトは色々なところで調べて、やっとの事で下記のように書きました。 使用しているのはFlash MX 2004 です。 |○  □|○|  ←1.スクリプトレイヤー |●    □|  ←2.ムービークリップレイヤー |○|●→|●|  ←3.ムービークリップ後に再生したいレイヤー 1.のスクリプト(2つのキーフレームいずれとも) stop(); 2.のムービークリップのスクリプト onClipEvent (load) { spd =5; onClipEvent (enterFrame) { this._y = this._y-spd; if (this._y<=-10) { spd = 0; gotoAndPlay(2); } } 知り合いにお見舞いのメッセージをと思って作ったのですが、送ることが出来なくてとてもあせっています。 どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • Flash:外部JPEG読み込み待ちについて

    こんにちは。どうぞよろしくお願い致します。 Flash MX2004使用です。 外部JPEGを4枚読み込ませ、 4枚全部読み込み終わるまで再生をストップさせる またはローディング画面を表示する という事をやりたいのですが、なかなかうまくいきません。 現在の状況は、1フレーム目に this.ph01.loadMovie("01.jpg"); this.ph02.loadMovie("02.jpg"); this.ph03.loadMovie("03.jpg"); this.ph04.loadMovie("04.jpg"); 「ph01」に onClipEvent (load) { this._parent.stop(); } onClipEvent (data) { if (this.getBytesTotal()>0 && this.getBytesTotal()<=this.getBytesLoaded()) { if (this._parent.ph02.getBytesTotal()>0 && this._parent.ph02.getBytesTotal()<=this._parent.ph02.getBytesLoaded()) { if (this._parent.ph03.getBytesTotal()>0 && this._parent.ph03.getBytesTotal()<=this._parent.ph03.getBytesLoaded()) { if (this._parent.ph04.getBytesTotal()>0 && this._parent.ph04.getBytesTotal()<=this._parent.ph04.getBytesLoaded()) { this._parent.play(); } } } } else { this._parent.stop(); } } と書いています。 何分ActionScriptはまだまだサンプルの真似事とちょっと手を加える程度の知識しかないもので、上に書いた物もものすごい間違い方をしているかもしれません(恥) 読み込むJPEGファイルは大したサイズではないので、一般的な回線速度なら普通に再生しても読み込みが再生に追いつかないという事もないのですが、先方の指示で絶対に!!全ての画像を読み込み終わるまで再生しないように!!と言われています。 どなたか、どうかお力を貸して頂けないでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 【読み込み時間orロード画面】

    一番最初に待ち時間に出せる アニメの作り方について質問を投げさせて貰います。 よくある待ち時間画面ですが、 他のサイトを参考にソースをコピーして 動作を確認しておりましたが、 どうしても画面がまっしろなままから 全部読み込んではじめて動くみたいで、 困っております。 1フレーム目にある、 ムービークリップにこのようなソースを書きました。 onClipEvent (load) { stop(); } onClipEvent (enterFrame) { if (100 == Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) { gotoAndPlay(2); } } 【フレーム2】には、【フレーム3】に飛ぶボタンを用意してます。 一度、【シーン1】ですべてのデーターを読み込んで 【フレーム2】に読み込み完了!と表示させ、 【フレーム3】に飛んで初めて動くようにしたいのですが、 いったい、ロード時間が最初に出てこない理由は なにか、アドヴァイスお願いします。。。

    • ベストアンサー
    • Flash

専門家に質問してみよう