Loaderオブジェクトがロードしたファイル名を取得するメソッドを作りました。
Loaderオブジェクトの、contentLoaderInfo.urlプロパティから解析。
以下 ソースコード
var my_lo:Loader=new Loader();
my_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,loadC);
my_lo.load(new URLRequest("sample.swf"));
function loadC(evt:Event)
{
trace("evt.target.content.parent="+evt.target.content.parent);
var load_lo:Loader=evt.target.content.parent;
//Loaderからロードされたファイル名を取得
var name_str= analyzeFileName(load_lo);
trace("name_str="+name_str);
}
function analyzeFileName(lo_obj:Object):String
{
//オブジェクトのファイル名を取得するメソッド
var name_str:String=lo_obj.contentLoaderInfo.url;
name_str=name_str.slice(name_str.lastIndexOf("/")+1,name_str.length);
return(name_str);
}

2008年06月24日
2007年11月26日
unload () メソッドでLoaderオブジェクトがロードしたswfを消去する。
Loaderオブジェクトがロードしたデータを消去するunload () メソッドについて解説します。
unload メソッドを使うことLoaderがロードしたデータを消去する事ができます。
例題
Loaderがロードしたswfをunload()メソッドを使って消去。
var my_lo:Loader=new Loader();
my_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,loadHandler)
my_lo.load(new URLRequest("sample.swf"))
var unLoad_tm:Timer=new Timer(1000,0);
unLoad_tm.addEventListener(TimerEvent.TIMER,unloadHandler)
addChild(my_lo)
function loadHandler(evt:Event)
{
trace("ロード完了");
trace("my_lo="+my_lo.content)//[object MainTimeline]
unLoad_tm.start();
}
function unloadHandler(evt:Event)
{
trace("my_loのデータを消去します");
my_lo.unload();
trace("my_lo="+my_lo.content)//null
unLoad_tm.stop();
}
Loaderでロードしたデータが不要になったらすぐにunload()メソッドでデータを消去しておく事をお勧めします。
unload メソッドを使うことLoaderがロードしたデータを消去する事ができます。
例題
Loaderがロードしたswfをunload()メソッドを使って消去。
var my_lo:Loader=new Loader();
my_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,loadHandler)
my_lo.load(new URLRequest("sample.swf"))
var unLoad_tm:Timer=new Timer(1000,0);
unLoad_tm.addEventListener(TimerEvent.TIMER,unloadHandler)
addChild(my_lo)
function loadHandler(evt:Event)
{
trace("ロード完了");
trace("my_lo="+my_lo.content)//[object MainTimeline]
unLoad_tm.start();
}
function unloadHandler(evt:Event)
{
trace("my_loのデータを消去します");
my_lo.unload();
trace("my_lo="+my_lo.content)//null
unLoad_tm.stop();
}
Loaderでロードしたデータが不要になったらすぐにunload()メソッドでデータを消去しておく事をお勧めします。
2007年11月16日
swfのラベル名を取得するcurrentLabels プロパティ について
swfのラベル名を取得するcurrentLabels プロパティ について開設します。
currentLabels:Array [read-only]
currentLabelsプロパティはswfのラベル名をすべて取得する事ができます。取得したラベル名は配列で返します。
ロードした外部swfのラベル名にアクセスするには
loader.content.currentLabels;
loaderがロードした外部SWF内のラベル名を配列でまとめて返してくれます。
currentLabels:Array [read-only]
currentLabelsプロパティはswfのラベル名をすべて取得する事ができます。取得したラベル名は配列で返します。
ロードした外部swfのラベル名にアクセスするには
loader.content.currentLabels;
loaderがロードした外部SWF内のラベル名を配列でまとめて返してくれます。
2007年11月15日
ロードした外部SWFのラベル名とラベル名のフレーム番号を取得
ロードした外部SWFのラベル名とラベル名のフレーム番号を取得します。
var ef_lo:Loader=new Loader();
var ef_obj:Object;
ef_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,getHandler)
ef_lo.load(new URLRequest("get.swf"));
function getHandler(evt:Event)
{
ef_obj=ef_lo
var my_arr:Array =ef_obj.content.currentLabels;
trace("my_arr="+my_arr[2].frame)
}
後日詳しく記述します。
var ef_lo:Loader=new Loader();
var ef_obj:Object;
ef_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,getHandler)
ef_lo.load(new URLRequest("get.swf"));
function getHandler(evt:Event)
{
ef_obj=ef_lo
var my_arr:Array =ef_obj.content.currentLabels;
trace("my_arr="+my_arr[2].frame)
}
後日詳しく記述します。
2007年11月01日
現在のswfのラベル名を調べる。
現在のswfのラベル名を調べます。swfのラベル名はFrameLabel
オブジェクトを使用します。FrameLabelオブジェクトには、フレーム番号や定義されたラベル名を参照するプロパティがあります。
定義されたラベル名はFrameLabel.nameプロパティで参照できます。
name:String [read-only]
例題 swfに定義されたラベル名を取得します。
まず、this.currentLabelsメソッドでステージ中のすべてのラベルを取得し配列に格納します。
for文を使いcurrentLabelsで取得した配列のlengthの数だけ処理をループさせます。
for文内でFrameLabelオブジェクトを生成し、ラベル配列のi番目を代入します。ラベル配列が代入されたオブジェクトのnameプロパティを参照します。
FrameLabel.nameプロパティを参照し、ステージのラベル名を参照していきます。ソースコード | Flashゲーム研究所
オブジェクトを使用します。FrameLabelオブジェクトには、フレーム番号や定義されたラベル名を参照するプロパティがあります。
定義されたラベル名はFrameLabel.nameプロパティで参照できます。
name:String [read-only]
例題 swfに定義されたラベル名を取得します。
まず、this.currentLabelsメソッドでステージ中のすべてのラベルを取得し配列に格納します。
for文を使いcurrentLabelsで取得した配列のlengthの数だけ処理をループさせます。
for文内でFrameLabelオブジェクトを生成し、ラベル配列のi番目を代入します。ラベル配列が代入されたオブジェクトのnameプロパティを参照します。
FrameLabel.nameプロパティを参照し、ステージのラベル名を参照していきます。ソースコード | Flashゲーム研究所
2007年10月31日
currentLabelsメソッドでswf内のラベルを配列に格納
currentLabelsメソッドでswf内のラベルを配列に格納します。
currentLabelsメソッドはswfに定義されたラベルを配列に格納する事ができます。
currentLabels:Array [read-only]
例題
現在のswfに定義されたラベル名を配列に格納する。
stop();
trace("this.currentLabels="+this.currentLabels)
これでswfに定義されたラベルがすべて配列に格納されます。ソースコード | Flashゲーム研究所
currentLabelsメソッドはswfに定義されたラベルを配列に格納する事ができます。
currentLabels:Array [read-only]
例題
現在のswfに定義されたラベル名を配列に格納する。
stop();
trace("this.currentLabels="+this.currentLabels)
これでswfに定義されたラベルがすべて配列に格納されます。ソースコード | Flashゲーム研究所
2007年10月30日
ロードが完了した外部SWFのフレーム数を参照する
totalFramesメソッドを使って外部SWFのフレーム数を参照します。
読み込んだSWFのフレーム数を参照しておくとSWFを制御する際に何かと役に立つので覚えておく事をお勧めします。
例題
Loaderで外部SWFをロードします。
ロードが完了したらオブジェクトを生成し、SWFを読み込んだLoaderを代入します。
オブジェクト.content.totalFrames
で外部SWFのフレーム数を出力します。
ソースコード | Flashゲーム研究所
読み込んだSWFのフレーム数を参照しておくとSWFを制御する際に何かと役に立つので覚えておく事をお勧めします。
例題
Loaderで外部SWFをロードします。
ロードが完了したらオブジェクトを生成し、SWFを読み込んだLoaderを代入します。
オブジェクト.content.totalFrames
で外部SWFのフレーム数を出力します。
ソースコード | Flashゲーム研究所
2007年10月22日
配列に格納したswfを複製する
URLLoaderを使って配列に格納したswfをLoaderに複製します。
一つのURLLoaderが順番にswfをロードします。
URLLoaderのデータフォーマとはバイナリデータに変換しておきます。
ロードが完了したらswfが読み込まれたデータを配列に格納して、残りのswfをロードします。
swfをすべて読み込んだらボタンを押して配列に格納された各swfのデータをLoaderにloadbytesメソッドを使って代入します。
もう一度ボタンを押すと次の配列に格納されたswfがロードされます。
以前ロードされていたswfは画面上から消え、次の配列に格納された新しいswfが表示されます。
この処理を応用するとあらかじめ外部swfをすべて一つの配列に格納して、呼び出したいときにいつでも呼び出す事ができると思います。
Loaderで同じような事をやった場合は、複数のswfをロードし配列に格納しても、一つのswfしか配列から取り出せなかったのですが、この処理だと、URLLoader一つだけで、swfのデータの格納、取り出しが行えるので処理を軽くする事ができると思います。
問題はバイナリデータとして格納するため、配列に格納されたswfの検索が難しい事です。
外部swfの処理はこれからも深く研究していくと思います。
ソースコード | Flashゲーム研究所
一つのURLLoaderが順番にswfをロードします。
URLLoaderのデータフォーマとはバイナリデータに変換しておきます。
ロードが完了したらswfが読み込まれたデータを配列に格納して、残りのswfをロードします。
swfをすべて読み込んだらボタンを押して配列に格納された各swfのデータをLoaderにloadbytesメソッドを使って代入します。
もう一度ボタンを押すと次の配列に格納されたswfがロードされます。
以前ロードされていたswfは画面上から消え、次の配列に格納された新しいswfが表示されます。
この処理を応用するとあらかじめ外部swfをすべて一つの配列に格納して、呼び出したいときにいつでも呼び出す事ができると思います。
Loaderで同じような事をやった場合は、複数のswfをロードし配列に格納しても、一つのswfしか配列から取り出せなかったのですが、この処理だと、URLLoader一つだけで、swfのデータの格納、取り出しが行えるので処理を軽くする事ができると思います。
問題はバイナリデータとして格納するため、配列に格納されたswfの検索が難しい事です。
外部swfの処理はこれからも深く研究していくと思います。
ソースコード | Flashゲーム研究所
2007年10月21日
ロードした外部swfを複製
ロードした外部swfをコピーします。
コピー元のSWFのデータを格納したオブジェクトはURLLoader
SWFを複製するオブジェクトはLoaderを使います。
URLLoaderのデータフォーマットをバイナリに設定します。
URLLoaderがswfをロードします。
ロードが完了した後のURLLoaderのdataプロパティに格納されているバイナリデータをLoader.loadBytes(URLLoader.data)の処理を行います。
これでLoaderにURLLoaderがロードしたswfをコピーできます。
Flashゲーム制作では外部swfを使用する機会が多いのでこの外部swfをコピーする処理は使いこなすとかなり役に立つと思います。
ソースコード | Flashゲーム研究所
コピー元のSWFのデータを格納したオブジェクトはURLLoader
SWFを複製するオブジェクトはLoaderを使います。
URLLoaderのデータフォーマットをバイナリに設定します。
URLLoaderがswfをロードします。
ロードが完了した後のURLLoaderのdataプロパティに格納されているバイナリデータをLoader.loadBytes(URLLoader.data)の処理を行います。
これでLoaderにURLLoaderがロードしたswfをコピーできます。
Flashゲーム制作では外部swfを使用する機会が多いのでこの外部swfをコピーする処理は使いこなすとかなり役に立つと思います。
ソースコード | Flashゲーム研究所
2007年08月25日
Loaderオブジェクトのcontentプロパティでロードしたswfの変数を参照する
Loaderオブジェクトのcontenプロパティでロードしたswfの変数を参照する事ができます。
Flashゲームを制作する際は外部swfファイルをロードする処理が多くなります。その際にロード元が
ロードしたswfにプレイヤーのステータスやスコアなどの変数を渡したい時などにLoader.contentは役立つと思います。
あらかじめ、Loader.contentへのパスを変数で定義しておく必要があります。
LoaderがloadをCOMPLETEした時にLoader.content.変数名でアクセスするとswfに変数名が記述されていてもエラーが起こります。
これを防ぐにはあらかじめ、Loader.contentのパスを変数で記述しておく必要があります。
var path:Object=Loader.content;と定義した際にLoaderがloadCOMPLETEした際にpath.変数名でアクセスするとエラーが起きずにロードされた
swfに定義した変数を参照できます。
例題はこちらから
↓
続きを読む
Flashゲームを制作する際は外部swfファイルをロードする処理が多くなります。その際にロード元が
ロードしたswfにプレイヤーのステータスやスコアなどの変数を渡したい時などにLoader.contentは役立つと思います。
あらかじめ、Loader.contentへのパスを変数で定義しておく必要があります。
LoaderがloadをCOMPLETEした時にLoader.content.変数名でアクセスするとswfに変数名が記述されていてもエラーが起こります。
これを防ぐにはあらかじめ、Loader.contentのパスを変数で記述しておく必要があります。
var path:Object=Loader.content;と定義した際にLoaderがloadCOMPLETEした際にpath.変数名でアクセスするとエラーが起きずにロードされた
swfに定義した変数を参照できます。
例題はこちらから
↓
続きを読む
2007年08月17日
loaderオブジェクトがloadしたswfがrootの変数を参照するには
rootにaddChildしたloaderオブジェクトがswfファイルをloadした際にloaderにロードされたswfがrootの変数を参照する方法を解説します。loaderにロードされたswfがrootの変数を参照する処理はFlashゲームを制作する上で使用頻度が高い処理だと思います。
続きを読む
続きを読む






