*LoadVarsでテキストファイルを読み込む

対象 FLASH MX 2004

(1)LoadVars は 手軽にテキストファイルから変数を取得するのに便利です。

 以下テキストファイルに書かれた変数を読み込む例です。

FLASH データファイル "test.txt"

// LaodVars() 作成
a_lv = new LoadVars();
// 読込み時のイベントを設定
a_lv.onLoad = function (ok) {
	if(ok){
		trace("読込み成功");
		trace("test=" + a_lv.test);
	}else{
		trace("読込み失敗");
	}
}
// 実際に読み込む
a_lv.load("test.txt");
test=test

 データファイルには、変数名=&変数名=&...のように書いておきます。

(2)普通のテキストファイルを読みたい

 しかし、変数名=値&変数名=値&...と書くのではなく、普通にテキストファイルを読みたい場合があります。
 そんなときは、onLoad ではなく、onData イベントを使います。

FLASH データファイル "test.txt"
System.useCodepage = true;//データファイルをSHIFT-JISで読む
// LaodVars() 作成
a_lv = new LoadVars();
// 読込み時のイベントを設定(直接読む)
a_lv.onData = function (src) {
        if(src != undefined){
                trace("読込み成功");
                trace("内容=" + src);
        }else{
                trace("読込み失敗");
        }
}
// 実際に読み込む
a_lv.load("test.txt");
普通のテキストファイル
普通のテキストファイル
普通のテキストファイル

 テキストファイルの文字コードについての考察は、こちら。 
 もし読込みに失敗したときは、引数(上のソースだと、src) に、undefined が返ります。

(3)データファイルを読みたい!

 変数名=値&変数名=値&...と書くのではなく、変数名=値(改行)変数名=値を一行ごとに書く独自データファイルを読み込んでみます。

FLASH データファイル "test.txt"
System.useCodepage = true;
// 改行コード置換用
var CR = String.fromCharCode(13);
var LF = String.fromCharCode(10);
// 置換用関数
function replaceStr(a_str, from_str, to_str) {
        var a_array = a_str.split(from_str);
        return a_array.join(to_str);
}
// 区切り文字までで、文字列を2つに分ける
function split2(a_str, kugiri_str){
        var i = a_str.indexOf(kugiri_str, 0);
        return new Array(a_str.substr(0,i), a_str.substr(i+1, a_str.length - i));
}
// LaodVars() 作成
a_lv = new LoadVars();
// 読込み時のイベントを設定(直接読む)
a_lv.onData = function (src) {
        if(src == undefined){
                trace("読込み失敗");
                return;
        }
        // 改行コードをそろえる
        src = replaceStr(src, CR + LF, CR);
        src = replaceStr(src, LF, CR);
        // 一行ごとにデータを取得
        a_array = src.split(CR);
        for(i in a_array){
                var b_array = split2(a_array[i], "=");
                var key_str = b_array[0];
                var val_str = b_array[1];
                if(key_str.length > 0){ // 読んだ結果を表示
                        trace(key_str + "=" + val_str);
                }
        }
}
// 実際に読み込む
a_lv.load("test.txt");
url=http://www.text2music.com/
name=text2music.com
description=オンラインソフトの配布など

戻る