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

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

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

AS3.0外部テキスト読み込み


ActionScript3.0で外部テキストファイルの読み込み方法です。


ActionScript2.0では外部テキストファイルの読み込みにLoadVarsクラスが使用できましたが、
AS3.0ではflash.net.URLLoaderクラスを使用します。


URLLoaderクラスを使用するには、flash.netパッケージからURLLoaderとURLRequest、URLVariables、flash.events.Eventのインポートが必要になります。


また、LoadVarsインスタンスは表示オブジェクトに対して、URLLoaderは非表示オブジェクトになります。
ですのでAS2.0ではファイルのURLをLoadメソッドに渡すだけでしたが、AS3.0で外部ファイルを読み込む場合flash.net.URLRequestインスタンスを作成、指定する必要があるようです。

外部ファイル読み込み処理は通常、対象ファイルのロード待ちに対して処理が行われますが、URLLoaderインスタンスの場合は、Event.COMPLETEイベントが読み込み完了時に発生するので、そのイベントリスナーを登録する必要がありようです。

URLLoaderインスタンスは外部テキストの内容をURLLoader.dataプロパティに格納します。
flash.net.URLVariablesクラスは読み込んだ値を変換するためのクラスで、
URLVariablesインスタンス生成のとき、外部ファイルから読込んだテキスト値を引数に設定すると、自動でコンストラクタがデコードをしてくれます。

URLVariablesインスタンス格納された変数値の取出しは、LoadVarsインスタンスと同じ方法になります。




//必要クラスのインポート
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.events.Event;

//URLLoaderとURLRequestインスタンス生成
var uLoader:URLLoader = new URLLoader();
var uRequest:URLRequest = new URLRequest("sample.txt");

//ロード完了発生時のイベントリスナー処理
uLoader.addEventListener(Event.COMPLETE, onComplete);

//外部テキストファイル読み込み
uLoader.load(uRequest);

//関数部分
function onComplete (eventC:Event) {
var u_str:String = eventC.target.data
var uVars:URLVariables = new URLVariables(u_str);
for (var q_str:String in uVars){
trace([q_str, uVars[q_str]]);
}
}

ちなみにCGIやPerlPHP等でサーバー側とのデータ連携、変数の読み込みにもURLLoaderクラスが使用されます。SWFファイルや画像ファイルの読み込みにはLoaderクラスが使用できます。


テキスト内容をすてべテキストエリアに読み込む場合です。

var rurl:URLRequest = new URLRequest("input.txt");
var tloader:URLLoader = new URLLoader();
tloader.dataFormat = URLLoaderDataFormat.TEXT;
System.useCodePage = true;
tloader.load(rurl);
tloader.addEventListener(Event.COMPLETE,outputtext);
function outputtext(event:Event):void {
mq.txtArea.text = tloader.data;
}