読者です 読者をやめる 読者になる 読者になる

Flash制作講座フラッシュ制作講習

FLASH制作からActionScriptによるFlashコンテンツ制作のためのフラッシュ制作講座

AS3.0でローディングバー

ActionScript2でこれまでローディングバー(boading bar)を使っていましたが、
AcstionScrip3でローディングバーを制作しました。

仕組みは変わらないのですが、AS3特有の表示オブジェクトやイベントリスナー、クラスなどにも慣れ親しみたいと考えたからです。

実際のソース
=====================================================

stop();
var info:LoaderInfo = root.loaderInfo;
root.addEventListener(Event.ENTER_FRAME,EnterFrameFunc);
function EnterFrameFunc(event){
this.lm.lbm.width = Math.floor(info.bytesLoaded/info.bytesTotal*100);
if(info.bytesLoaded == info.bytesTotal){
root.removeEventListener(Event.ENTER_FRAME,EnterFrameFunc);
this.gotoAndPlay(2);
}
}

=====================================================

基本的にはAS2のときの変わりません。クラス名が違ったり、イベントリスナーを入れているだけです。

一番頭を悩ませたのはMCに対して"_root"指定ができないことです。AS3ではstageやrootと表記するみたいですが、その指定方法では同じようにエラーを起こします。

絶対パスの指定ができず。相対指定this.〜としています。


ところが、ちょっと調べたら判明しました。

Object(root).lm.lbm.width = Math.floor(info.bytesLoaded/info.bytesTotal*100);



『Object(root)』


だそうです。いきなりAS3のオブジェクトを叩きこまれたわけであります。


まだまだ不明なことが多いので、あとで「あぁ、そうなんだ」と理解できることも多いのではないかと期待に胸を膨らませております。