- 2010
- 12/16
AS3.0復習19【Loader,URLLoader】
Category : AS/Flash, Web Tagged : 勉強
外部ファイル(画像、動画、xmlなど)の読み込みには、LoaderやURLLoaderクラスを使用する。
読み込むファイルやデータの情報 (URL)は、URLRequestクラスを使用してLoaderやURLLoaderクラスに渡す必要がある。
Loaderクラス
JPG、GIF、PNGなどの画像データ、SWFなどの動画データを読み込む場合
外部ファイル読み込みの流れ
- 読み込むファイルのURLデータを、URLRequestクラスでLoaderクラスに渡す
- ファイルを表示させるためのaddEventListenerを、LoaderのプロパティcontentLoaderInfoに登録する
- contentLoaderInfoから、イベントを発行する
イベントリスナーは、Loaderクラスが持つcontentLoaderInfoプロパティに登録する。
//Loaderクラスの初期化
var myLoader = new Loader();
//外部ファイルloadImage.pngをURLRequestクラスで読み込む
var myRequest = new URLRequest("loadImage.png");
//変数myLoaderに変数myRequestを読み込む
myLoader.load(myRequest);
var myButton:button = new button;
myButton.x = stage.width/2;
myButton.y = stage.height/2;
myButton.buttonMode = true;
stage.addChild(myButton);
function imageLoad (e:MouseEvent) {
//ステージに変数myLoaderを配置
stage.addChild(myLoader);
parent.removeChild(myButton);
}
myButton.addEventListener (MouseEvent.CLICK, imageLoad);
クリックで外部データの画像が読み込まれます。
This movie requires Flash Player 9
URLLoaderクラス
xmlなど、主にテキストデータを読み込む場合
外部ファイル読み込みの流れ
- 読み込むファイルのURLデータを、URLRequestクラスでURLLoaderクラスに渡す
- 読み込んだURLデータのフォーマット(dataFormat)を、URLLoaderDataFormatクラスなどで指定する
- ファイルを表示させるためのaddEventListenerを、URLLoaderクラスに登録する
- URLLoaderから、イベントを発行する
下記の様な内容の、xmlを読み込む場合
<?xml version="1.0" encoding="UTF-8"?> <data> <item name="A"><![CDATA[おはようございます!]]></item> <item name="B"><![CDATA[こんにちわ!]]></item> <item name="C"><![CDATA[こんばんわ!]]></item> </data>
//URLLoaderクラスの初期化
var urlLoader = new URLLoader();
//URLのデータフォーマットを指定
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
//URLRequestクラスで外部ファイルを読み込み
var urlRequest = new URLRequest("loadXML.xml");
//変数myLoaderに変数myRequestを読み込む
urlLoader.load(urlRequest);
//読み込み完了イベントの受け取り
function loadComplete (e) {
var textData = e.target.data;
//読み込んだxmlを解析
//xmlオブジェクトを作成
var xml = new XML(textData);
//itemノードのname属性を取得
for each(var itemXML in xml.item){
trace("name:"+itemXML.@name);
trace("text:"+itemXML.text());
}
}
urlLoader.addEventListener(Event.COMPLETE, loadComplete);
出力結果は
name:A
text:おはようございます!
name:B
text:こんにちわ!
name:C
text:こんばんわ!
ノード(タグ)を取得するための記述は、文法を覚えるしかないと思われます。
変数名.@タグ名
変数名.text();




