FlashやFlexのクラスオブジェクトArray, ArrayCollection1, ObjectやXMLの中身を最深層まで走査しモニターに表示するAdobe AIRアプリケーションです。 中身を確認したいオブジェクトを送信専用クラス(SimpleLogger.as、またはSimpleLoggerMx.as)の引数に渡すだけでモニターに中身が表示されます。
図1 SimpleLoggerの仕組み。
別ウィンドウでモニタリングするFlash開発用ツールとしてはすでにいくつかありますので、これらとの違いを述べます。
Object, Array, ArrayCollection1, XML, TextField, String, etc. が扱えます。
以下のAIRアプリケーション(コンソール)とActionScriptライブラリ(クライアント)の二つが必要です。
AIRアプリケーション(コンソール)
下記ボタンよりAIRアプリケーションの自動インストールを行ってください。 自動インストールできない場合はこちらより手動でインストールを行ってください。 (手動インストールは別途Adobe AIR Runtimeが必要です)
以下の二種類のクラスファイルが含まれています。
import com.borealkiss.SimpleLogger; var ary:Array = ["This","is","a","nested","array", {platform:"Flex", flash_player:"9"}, ["This","is","a",{R:"Rich",I:"Internet",A:"Application"}]]; SimpleLogger.trace(ary);と書いて実行すると、モニターに以下のように中身が表示されます(SimpleLoggerクラスオブジェクトはnewによって実体化する必要はありません)。
[0] => "This" [1] => "is" [2] => "a" [3] => "nested" [4] => "array" [5] => [flash_player] => "9" [5] => [platform] => "Flex" [6] => [0] => "This" [6] => [1] => "is" [6] => [2] => "a" [6] => [3] => [A] => "Application" [6] => [3] => [I] => "Internet" [6] => [3] => [R] => "Rich"Objectの場合も同様で
import com.borealkiss.SimpleLogger; var obj:Object = { first:"This", second:"is", third:{one:"a",two:"nested",three:"Object"}}; SimpleLogger.trace(obj);上記を実行した場合、モニターには以下のように表示されます。
[third] => [two] => "nested" [third] => [three] => "Object" [third] => [one] => "a" [second] => "is" [first] => "This"
XMLオブジェクトも同様の送信方法で解析可能で、モニターには各ノード名がツリー状に表示されます(一番上の画像参照)。 attributeの解析は最新バージョンリリース日現在のところ対応していません。
import com.borealkiss.SimpleLogger; //Example of XML object var xml:XML = <users>...</users>; SimpleLogger.trace(xml);
ArrayCollectionはmxパッケージ対応のSimpleLoggerMx.asでモニタリング可能です (SimpleLogger.asでは解析できません)。
import com.borealkiss.SimpleLoggerMx; var ac:ArrayCollection = new ArrayCollection([ {name:"Martin Foo",age:25}, {name:"Joe Bar",age:15}, {name:"John Baz",age:23}]); SimpleLoggerMx.trace(ac);上記実行結果のモニター内容。
[0] => [age] => "25" [0] => [name] => "Martin Foo" [1] => [age] => "15" [1] => [name] => "Joe Bar" [2] => [age] => "23" [2] => [name] => "John Baz"
1 ArrayCollectionはmxパッケージ対応のSimpleLoggerMx.asで解析可能です。SimmpleLogger.asは対応していません。