- ベストアンサー
Flash IE6でプログレスバーが表示されない
IE6上で表示させるFlashを作成しているのですが、 最初にプログレスバーを作成し、コンテンツをロードした後でメインの画面を表示させようとしています。 ところがFirefoxではうまく表示されるのですが、 IE6,7で行うと最初のプログレスバー等の画像が一切表示されず、 いきなりメインの画面から始まってしまいます。 コードはAS3で以下のようになっています。 1フレーム目: 何も記述せず 2フレーム目: var percentNo:int; var bInfo:LoaderInfo= root.loaderInfo; percentNo = Math.ceil(bInfo.bytesLoaded /bInfo.bytesTotal * 100); //画面のテキストフィールドに%を表示 percent_text.text = ""+percentNo + "%"; //フレーム遷移 if(percentNo >=100){ gotoAndPlay(3); //メインフレームへ }else{ gotoAndPlay(1); //1フレームからループ } 環境は ・Flash CS3 ・Flash Player9 です。 何か解決方法をご存知の方がいらっしゃればご教授の程をよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
stop(); var bInfo :LoaderInfo = root.loaderInfo; bar.scaleX = 0; bInfo.addEventListener(ProgressEvent.PROGRESS , loop); function loop(e :ProgressEvent) :void { var percentNo :Number = info.bytesLoaded / info.bytesTotal; bar.scaleX = percentNo * 1; } bInfo.addEventListener(Event.COMPLETE , done); function done(e :Event) :void { gotoAndPlay(3); } ※ [bar]はプログレスバーです。
その他の回答 (3)
- ryo2501
- ベストアンサー率46% (15/32)
申し訳ありません。下記に誤りがありましたので修正させて頂きます。 var percentNo :Number = info.bytesLoaded / info.bytesTotal; ↓ var percentNo :Number = bInfo.bytesLoaded / bInfo.bytesTotal; です。失礼しました。
- ryo2501
- ベストアンサー率46% (15/32)
ソースの内容はこれだけですか? 省略していませんか?
お礼
ご返答ありがとうございます。 ソースの内容ですが、遷移関連の部分だけを抜き出していました。 他に問題があるかもしれないですね。申し訳ありません。 以下がプログレスバー部分の全ソースになります。 import flash.display.*; import flash.events.*; import flash.text.*; import flash.text.TextField; import flash.display.DisplayObjectContainer; import flash.net.URLLoader; loadCheck(); //ロードされた%を調べる処理============================== function loadCheck():void{ var percentNo:int; var bInfo:LoaderInfo= root.loaderInfo; percentNo = Math.ceil(bInfo.bytesLoaded /bInfo.bytesTotal * 100); //フォント設定--------------------- var perFont:Font = new Font1(); var perFormat:TextFormat = new TextFormat(); perFormat.font = perFont.fontName; perFormat.size = 24; perFormat.color = 0x666666; percent_text.defaultTextFormat = perFormat; percent_text.embedFonts = true; //%表示--------------------------- percent_text.text = ""+percentNo + "%"; if(percentNo >=100){ gotoAndPlay(3); }else{ gotoAndPlay(1); } } 以上です。 自分としては問題ないかと思っているんですが、何分初心者なもので・・・。 ご指摘あればよろしくお願いします。
- suzuko
- ベストアンサー率38% (1112/2922)
>IE6,7で行うと最初のプログレスバー等の画像が一切表示されず、 いきなりメインの画面から始まってしまいます。 プラウザの問題ではなく、動作環境の影響で瞬時に表示されているだけでは? 他の動作環境のPCで見てみてはいかがでしょうか?
補足
早速のご返答ありがとうございます。 仕事場にある他のPCで確認してみても結果は同じでした。 瞬時に表示されているのかとも思いましたがメインの画面に遷移するまで間が空いていますし、 プログレスバーが表示されてない間はFlashの画像が表示される領域の左上のところに、 Webで画像が読み込めてないときに出るマーク(なんていうマークなんだろう?)が出ているので画像が取得できていないかと思われます。 Flashが読み込めないならその後のメイン画面も表示されないはずなんですがそちらは問題なく表示できていて・・・。 以上の状況によりブラウザによるものなのかと思ったのですがいかがでしょうか?
お礼
返答が遅れて申し訳ございません。 どうやら自分の知らない間に別の人間が表示部分を壊していたらしく、 そちらを直すと表示されるようになりました・・・。 きちんとローカルで検証しきった後に質問をするべきでした。 お手数をおかけしました。 ですが、非常に参考になるコードを教えて頂きありがとうございます! 自分の煩雑なソースがずいぶんとすっきりしているのでびっくりしました。 まだまだ奥が深いですね。