2011-08-16 14 views
1

私はActionScript 3ローダーをビルドしています。これは、外部スクリプトのFlashロードの進行状況を表示します。中にトリガActionScript 3 contentloaderinfoとは何ですか?

this.SWFLoader = new Loader(); 
this.SWFLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, trackProgress); 
this.SWFLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); 
this.SWFLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); 

あなたが見ることができるように、私は3人のイベントリスナーを持って、それぞれ異なるイベントのリスニングのために:ここでは完璧に動作します私のコードのスニペットがあるが、私は私がそれを必要とする理由には少し混乱していますロードプロセス。上記のスニペットに関しては

は、ここで私はわからないのだものです:

  1. contentloaderinfoオブジェクトとは何ですか?
  2. contentloaderinfoオブジェクトにはどのようなプロパティが含まれていますか?
  3. なぜ私はthis.SWFLoader.addEventListener()を使用できませんか?
  4. contentloaderinfoはいつ適切に使用しますか?

これは私がかなり混乱している話題であり、私はそれについてよく分かりません。クラッシュリストの質問に申し訳ありません。私はすべての良い答えに報います。

ありがとうございます。

答えて

5

ロードを行うためにLoaderクラスを作成します。contentLoaderInfoは、読み込まれているものに関する基本情報を追跡するオブジェクトです。そのプロパティの一部はbytesLoaded,bytesTotal,url,loaderURLおよびapplicationDomainです。最も一般的に使用されているものは、bytesLoadedbytesTotalです。これは、ロードされているものの便利なパーセンテージを提供します。これらは、ProgressEvent.PROGRESSが呼び出されるたびに更新され、プリローダーからわずかなグラフィカル要素しか残しません。

contentLoaderInfoオブジェクトには、ロードプロセスがいつ開始され、更新され、終了し、そして/または失敗するかを知るためにサブスクライブできる他の便利なイベントもあります。あなたがはるかに詳細を取得するためにAS3のマニュアルを訪問することができ

:紛らわしい十分 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#contentLoaderInfo

をあなたがここにそのプロパティとメソッドを見ることができるように、contentLoaderInfoは、LoaderInfoオブジェクトです: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/LoaderInfo.html

することができます」 SWFLoaderはそのイベントを発生させないため、this.SWFLoader.addEventListener()を使用します。その代わりに、はるかに読み込みに優しい子ども(contentLoaderInfo)がそうします。それゆえ、コードはそれと同じように動作します。

利用可能な方法やプロパティを利用する必要がある場合は、contentLoaderInfoを使用することが適切です。それは疑わしい答えのように聞こえるかもしれませんが、それは本当です。通常は、今のように、ロード部門で何が起こっているのかをユーザーに把握させる、ステージ上の要素を更新する関数を記述します。

+0

優秀な回答Matt !!!あなたの詳細な答えをありがとう! –

+0

Loaderを拡張して、これらのイベントをリスンして再ディスパッチさせることもできます。あなたが拡張クラスを使用する場合は、それを直接聞くことができ、Demeterの法則が示唆している方が良いでしょう。 –

関連する問題