こんにちは。今回はAS2のtipsを2つほど。
Objectをtraceすると[objcct object]みたいになって、中身が見られません。それで、便利ツールがあります。
詳しくは、下記アドレスを参照のこと。情報ありがとうございます。
ObjectDumper.toString()メソッド(FumioNonaka.com)
ObjectDumperでオブジェクトの内容も丸見え。(_level0.CUPPY)
[AS3.0]ObjectDumperを使いたい!~ボクのデバッグ環境(TECH Matari)
あと、もうひとつはCSVを読み込んだときの改行コードについて。
私の端末環境だけによるかもしれないので、CSVを作ったExcelについて書いておくと、
Win XP Office Excel 2007
です。これで、Excel形式のものから別名でCSVを保存しました。
書き出したCSVデータはテキストエディタで開くと改行コードがCR+LFとなっています。
なので、CSVデータをflaにとりこんだあとに、配列などに加工する際には「rn」で区切ればよいと思います。
それで、ここからがポイントで、Excel上で1つのセル内に改行がある場合があります。「Alt + Enter」でできる、セル内改行です。こいつの改行コードは、「rn」じゃなくて、「n」でやるとうまく区切れました。ひょっとすると、最初に一行ずつに切り分けるため一度「rn」で区切ったあとのデータをさらに処理しているためにそうなるのかもしれません。
それから、セル内改行がある場合に書きだされたCSVデータをみると、該当セルは文頭・文末が「”」ではさまれています。なので、セルの文字のみをとりだすときは、
strが該当セルの文字データだとすると
str = str.substr(1, str.length - 2);
とかやっておくとできますね。
最後に、よくわかんない形式でデータをもつCSVローダーです。2次元配列とかで持てよという感じかもしれませんが、この方がなにかと都合がよかったんで。
AS2
class CSVLoader { private var csvObj:Object; public function CSVLoader() { System.useCodepage = true; loadCSV(); } private function loadCSV():Void { var self:CSVLoader= this; var my_lv:LoadVars = new LoadVars(); //CSVファイルへのパス var path:String = "./csv/sample.csv"; //onLoadじゃなくてonDataを使う my_lv.onData = function(src:String) { if (src == undefined) { trace("Error loading content."); } else { self.onCSVLoadComplete(src); } }; my_lv.load(path); } private function onCSVLoadComplete(src:String):Void { var onelineArray:Array; //1行ずつに分けたデータ var selArray:Array; //1行をさらに各セルごとに分けたデータ var tempObj:Object; var i:Number; var len:Number; csvObj = new Object(); onelineArray = src.split("rn"); len = onelineArray.length; for (i = 0; i < len; i++) { selArray = onelineArray[i].toString().split(","); tempObj = new Object(); //ここから各セル情報 tempObj.sel1 = selArray[1]; tempObj.sel2 = selArray[2]; tempObj.sel3 = selArray[3]; //セル1をキーにもち値がtempObjのもの csvObj[selArray[0]] = tempObj; } } }
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ