article

AS3 メモ(3) 内部データのloadingについて

  • 2008年6月12日

AS3の場合。私的メモです。

内部、外部の違い&共通点について

外部ファイルの場合と何が違うのか、リファレンスを呼んでいると下記のようなことが書いてありました

  • ロードされる側の表示オブジェクトからアクセス → loaderInfoプロパティ
  • ロードする側のloaderオブジェクトからアクセス → contentLoaderInfoプロパティ

つまり、内部データを読み込むということは、ロードされる側のメインタイムライン(表示オブジェクト)からアクセスするということ。loaderInfoプロパティから得られるロード情報オブジェクトLoaderInfoクラスのインスタンスである。

また、外部データの場合も、loaderオブジェクトのcontentLoaderInfoプロパティで得られるロード情報オブジェクトは、LoaderInfoクラスのインスタンスである。

よって、ロード情報オブジェクト(LoaderInfoクラスインスタンス)を使う点が共通しているので、外部データを読み込む時と同じような書き方が出来るはず!

内部データのloading 例

下記を flaファイルの第一フレームに記述

stop();
var loadInfo:LoaderInfo = this.loaderInfo;
loadInfo.addEventListener(ProgressEvent.PROGRESS, nowloading);
loadInfo.addEventListener(Event.COMPLETE, onloaded);
function nowloading(event:ProgressEvent):void{
        var per:uint = Math.floor(event.target.bytesLoaded / event.target.bytesTotal * 100);
        trace(per);
};
function onloaded(event:Event):void {
        trace("読み込み完了");
        nextFrame();
};

上記で無事にローディングできました! LoaderInfoクラスインスタンスbytesLoadedプロパティbytesTotalプロパティを用いることで、計算が出来ます。

また、下記では、Event.ENTER_FRAME を用いたやり方が紹介されています。こういうふうにも出来るんですね。

トラックバック

http://web.dimension-maker.info/cgi-bin/mt/webdimensionmaker/144

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

 

画像の中に見える文字を入力してください。