• 締切済み

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%になった状態でストップして再生しません。 何が足りないのでしょうか? アドバイスお願いします!

みんなの回答

  • 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