外部swf内のMovieclipの総フレーム数を取得する //AS3
画像更新が必要なコンテンツでは、今まではFlashを開かずに更新ができるように1枚1枚画像を追加し、それらを紐づけるXMLも持たせて・・・という作りを多用してきましたが、最近、画像の多さ=ファイルの多さはネットワークを介して読込みにいくという行為1つ1つにhtmlのヘッダやらなんやらのいろいろなトラフィックが発生するので、ファイルサイズ以上にストレスになる気がしています。
ということで、画像たちは1つの外部swf内に入れ、クラスとして書き出しておくことで、メインのflashからnewで使うようにしています。
その際に、同じ形状のものは1つのmovieclipとして、フレームで入れ込んで使っています。
言葉で書くといまいちわかりにくいですが、今後のコピペのために、ActionScriptを下に書いておきます。
※スクリプトに間違いがあったので、修正しました。(2010.12.2)
Actionscript3==========
ということで、画像たちは1つの外部swf内に入れ、クラスとして書き出しておくことで、メインのflashからnewで使うようにしています。
その際に、同じ形状のものは1つのmovieclipとして、フレームで入れ込んで使っています。
言葉で書くといまいちわかりにくいですが、今後のコピペのために、ActionScriptを下に書いておきます。
※スクリプトに間違いがあったので、修正しました。(2010.12.2)
Actionscript3==========
var fileLoader:Loader;
var classA:Class;
var classB:Class;
function loadFiles (){
fileLoader:Loader = new Loader();
var my_file = "files.swf";
var myRequest:URLRequest = new URLRequest(my_file);
fileLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawFiles);
fileLoader.load(myRequest);
}
function drawFiles(event:Event):void {
classA = fileLoader.contentLoaderInfo.applicationDomain.getDefinition("movieclipA") as Class;
classB = fileLoader.contentLoaderInfo.applicationDomain.getDefinition("movieclipB") as Class;
}
function checkTotalmobiles(){
var a_mc = new classA();
trace("totalFrames="+a_mc.totalFrames);
//addchildは不要
}