メイン コーダーズルーム【スクリプト系】 外部swf読み込みで無応答 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト | Åê¹ÆNo.7236 投稿日時: 2004-5-12 14:33 |
外部swf読み込みで無応答 初めて投稿させていただきます。
ボタン押下で外部swfファイルをロードし、 ロード完了までNowLoadingの表示をしたいと思っています。 フレームレートは12fpsで、外部swfファイルのサイズは20MB程です。 外部swfのロードはMovieClipLoader.loadClipを使用し、 MovieClipLoader.onLoadStartでNowLoading用のムービークリップを表示。 MovieClipLoader.onLoadProgressでロード状況を更新。 MovieClipLoader.onLoadCompleteでNowLoading用のムービークリップを非表示しています。 動作させたい環境は、ローカル、Web、ネットワーク共有からの実行の3つなのですが、 ローカル、ネットワーク共有からの実行、Web(キャッシュ有り)では、 MovieClipLoader.onLoadStartからMovieClipLoader.onLoadCompleteまで 無応答状態になってしまいます。(描画がされない。ロードはできています。) ローカル、Web(キャッシュ有り)の場合は、無応答時間が2?3秒ぐらいなのですが、 ネットワーク共有からの実行の場合は、無応答時間が長すぎて、 「ムービー内のスクリプトが原因でMacromedia Flash Playerの実行速度が遅くなってます。 このまま続けると応答しなくなります。」というメッセージが表示されてしまいます。 Web(キャッシュなし)の場合は正常にNowLoading表示されていました。 あと、ローカル、Web、ネットワーク共有からの実行ともに、 MovieClipLoader.onLoadProgressは2800回ほど呼ばれていました。 また、無応答になる場合は、 MovieClipLoader.onLoadStartからMovieClipLoader.onLoadCompleteまでに onEnterFrameは1度も呼ばれていませんでした。(だから描画されないと思うのですが。。。) なぜ、このような状態になってしまうのでしょうか? お力を貸してください。よろしくお願いしますm(_ _)m ↓↓↓↓ 以下ソースです。 ↓↓↓↓ stop(); ////////////////////////////////////////////////////////////////////////////// // 初期化 ////////////////////////////////////////////////////////////////////////////// mcl = new MovieClipLoader(); //ムービークリップローダー作成 myListener = new Object(); // リスナーオブジェクト作成 //** mcLoading : NowLoading用のムービークリップ。ステージ上に配置してあります。 **// this.mcLoading._visible = false; // NowLoadingを非表示にする ////////////////////////////////////////////////////////////////////////////// // リスナーオブジェクトのメソッド定義 ////////////////////////////////////////////////////////////////////////////// // onLoadStart myListener.onLoadStart = function( target_mc ) { // NowLoadingを表示する mcLoading.txtPercent.text = 0; // mcLoading.txtPercentはロード状況を%で表示するテキストフィールドです。 mcLoading.mcBar._xscale = 0; // mcLoading.mcBarはロード状況を表すバーです。 mcLoading._visible = true; } // onLoadProgress myListener.onLoadProgress = function( target_mc, loadedBytes, totalBytes ) { // %を求めて、表示 iPercent = Math.round( ( loadedBytes / totalBytes ) * 100 ); mcLoading.txtPercent.text = iPercent; mcLoading.mcBar._xscale = iPercent; } // onLoadComplete myListener.onLoadComplete = function( target_mc ) { // NowLoadingを非表示にする mcLoading._visible = false; } ////////////////////////////////////////////////////////////////////////////// // ムービークリップローダーにリスナーオブジェクトを設定 ////////////////////////////////////////////////////////////////////////////// mcl.addListener( myListener ); /////////////////////////////////////////////////////////////////////////////// // ボタンイベント /////////////////////////////////////////////////////////////////////////////// this.btnTest.onRelease = function() { //** mcContents : 外部swfロード用のムービークリップ。ステージ上に配置してあります。 **// // 外部swf用ムービークリップアンロード mcl.unloadClip( mcContents ); // 外部swfロード mcl.loadClip( "hoge.swf", mcContents ); } 以上です。 |
|
野中文雄 | Åê¹ÆNo.7238 投稿日時: 2004-5-12 15:01 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 外部swf読み込みで無応答 「MovieClipLoader.onLoadStartからMovieClipLoader.onLoadCompleteまで無応答状態」というのは、MovieClip.onLoadProgressイベントが発生しないということでしょうか? ローカルでは発生しないという問題が確認されています(他に[Flash’s New MovieClipLoader Class]参照)。
引用: kz-wingさんは書きました: |
ゲスト | Åê¹ÆNo.7239 投稿日時: 2004-5-12 15:11 |
Re: 外部swf読み込みで無応答 レスありがとうございます。
MovieClipLoader.onLoadProgressをカウントして表示させてみたところ、 2800回ほど呼ばれていました。(回数はどうでもいいかもしれないですが。。。) ローカル、Web、ネットワーク共有からの実行ともにMovieClipLoader.onLoadProgressは呼ばれていました。 よろしくお願いしますm(_ _)m |
|
ゲスト | Åê¹ÆNo.7241 投稿日時: 2004-5-12 15:34 |
Re: 外部swf読み込みで無応答 追記します。
デバッガを通すと、MovieClipLoader.onLoadProgressは呼ばれませんでした。 どういうことなんでしょう?? |
|
ゲスト | Åê¹ÆNo.7277 投稿日時: 2004-5-14 10:29 |
Re: 外部swf読み込みで無応答 ローカル、ネットワーク共有からの実行で、
MovieClipLoader.onLoadStartからMovieClipLoader.onLoadCompleteまで 描画がされないため、 setInterval関数を用いて強制描画(あまりしたくないのですが。。。)してみようと思い、以下のように修正してみましたが、描画されませんでした。 タイマ関数(myTimer)の呼出回数をカウントしてみましたが、呼ばれていませんでした。 やり方がおかしいのでしょうか? それともMovieClipLoader.onLoadStartからMovieClipLoader.onLoadCompleteまでは何もできないのでしょうか? どうかお力を貸してください。 引用:
引用:
引用:
引用:
|
|
野中文雄 | Åê¹ÆNo.7283 投稿日時: 2004-5-14 12:15 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 外部swf読み込みで無応答 先に回答いたしましたとおり、何を問題とされているのかわかりかねます。
いつ何の「描画がされない」のでしょう? プログレスバーのアニメーションですか? それとも、setInterval()に指定したコールバック関数(myTimer())が、呼出されないことを問題とされているのですか? 引用: kz-wingさんは書きました: |
ゲスト | Åê¹ÆNo.7286 投稿日時: 2004-5-14 13:32 |
Re: 外部swf読み込みで無応答 野中様、問題点がわかりにくくて申し訳ございません。m(_ _)m
問題点は、 MovieClipLoader.onLoadStartからMovieClipLoader.onLoadCompleteまで の間で描画が更新されないということです。 引用:
MovieClipLoader.onLoadStartからMovieClipLoader.onLoadCompleteまでの間で、 プログレスバーのアニメーションも含めてムービー全体が描画されません。 正確にはブラウザ自体(IE6.0 SP1)が止まってしまいます。 (なので無応答という表現をさせていただきました)。 setInterval()を用いた事に関しましては、なんとか描画させようと思い、試してみたことを書かせていただきました。 その結果をみて、MovieClipLoader.onLoadStartからMovieClipLoader.onLoadCompleteまでの間は何も制御できないのかな?と思いました。 引用:
まだわかりにくい点があるかもしれませんが、よろしくお願いしますm(_ _)m |
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |