メイン コーダーズルーム【スクリプト系】
プログレスローダーの読込状況の表示について | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| miyaryu | Åê¹ÆNo.42972 投稿日時: 2009-7-21 14:34 |
常連 ![]() ![]() 居住地: 投稿: 79
使用環境:
windowsXP,flash CS4 |
プログレスローダーの読込状況の表示について 下記コードのようにLoaderクラスを使い、画像パス(path)をもとにローディング作業を行っています。これにプログレスバーを追加しようと考えており、プログレスバー用のカスタムクラスを作成しました。ローディング作業自体はProgressLoaderクラスにて実行し、ロード状況をProgressLoaderImageクラスに渡しているという状況です。
しかし、ローディング自体はうまくいって読み込まれるものの、肝心なプリローダーが表示されません。 表示リストaddChildへの追加については、ProgressLoaderクラスのコンストラクタ内で行っているのですが、表示されてないもようです。 表示リストへの追加が悪いと重い、numChildrenにて追加状況をデバッグしてみると、追加自体はうまくいっているようです。(1個カウントされます。) 何か注意すべき点を見落としているのでしょうか? package{ import flash.display.*; import flash.events.*; import flash.net.URLRequest; public class ProgressLoader extends MovieClip { public static const LOAD_COMPLETE:String = "load_complete"; private var _loader:Loader; private var _loaderInfo:LoaderInfo; private var _bytesLoaded:Number = 0; private var _bytesTotal:Number = 0; private var progressBar:ProgressLoaderImage; // コンストラクタ: public function ProgressLoader (path:String) { _loader = new Loader ; //ローダーイベント _loaderInfo = _loader.contentLoaderInfo; _loaderInfo.addEventListener (ProgressEvent.PROGRESS,onProgress,false,0,true); _loaderInfo.addEventListener (Event.COMPLETE,onComplete,false,0,true); //プログレスローダーイメージ表示 progressBar = new ProgressLoaderImage(); addChild (progressBar); //同期型エラー処理 try { _loader.load (new URLRequest(path)); } catch (err:Error) { trace ("ドキュメントをロードできません:\n"+err.message); } } //プログレスローダー private function onProgress (e:ProgressEvent):void { var _loadPercent:int = Math.round(e.bytesLoaded / e.bytesTotal * 100); _bytesLoaded = e.bytesLoaded; _bytesTotal = e.bytesTotal; progressBar.onProgressTo (_loadPercent,_bytesLoaded,_bytesTotal); } //ロード完了 private function onComplete (e:Event):void { _loaderInfo.removeEventListener (ProgressEvent.PROGRESS,onProgress); _loaderInfo.removeEventListener (Event.COMPLETE,onComplete); _loaderInfo = null; removeChild (progressBar); progressBar = null; dispatchEvent (new Event(LOAD_COMPLETE)); } //ゲッターアセット(ロードデータをゲット) public function get progressLoader ():Loader { return _loader; } } } |
| ひろゆき | Åê¹ÆNo.42973 投稿日時: 2009-7-21 15:18 |
ちょんまげら ![]() ![]() 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CCSafari 6.1 |
Re: プログレスローダーの読込状況の表示について ProgressLoaderクラスのインスタンス自体がaddChildされていないとかでは?
あるいは、ProgressLoaderImageクラスのインスタンスを生成しても、 コンストラクタ内でvisible = false になっているとか。 いずれにせよ、これだけでは表示されないことはなさそうな感じですが。 また、スクリプトは、[code]と[/code]で囲んで読みやすいようにしておきましょう。
|
| miyaryu | Åê¹ÆNo.42976 投稿日時: 2009-7-21 17:04 |
常連 ![]() ![]() 居住地: 投稿: 79
使用環境:
windowsXP,flash CS4 |
Re: プログレスローダーの読込状況の表示について ひろゆき様、早速の御回答ありがとうございます。
誠に恥ずかしいことなのですが、ProgressLoaderクラスのインスタンス自体を表示リストに追加しておりませんでした。 単純なミスで申し訳ないです。 以後、見直しの徹底を図りたいと思います。 ありがとうございました。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




10.8.5
Flash Professional CS4/CS6/CC
