ActionScriptのデバッグの定番にtrace()があるのだが、あまりに不便。配列くらいは表示できるけど、オブジェクトの中身は理解できず、
[object Object]
と、表示されてしまう。いちいちfor inでやるのも面倒すぎる。
…と、悩んでいたら、なんと、ObjectDumperという超便利な関数があるではないですか。いままでの苦労はいったいなんだったのかと。
…しかし、実はObjectDumperは、AS2.0のみ対応で、AS.0には該当する関数がなかった。AS3にはそれが無いということ。もうね、アホかと。今の時代にtrace一本で、デバッグしろのかと。
せっかく、AS2.0にはObjectDumperという便利なものがあるのだから、AS3.0でも使いたいじゃないですか。そこで、ObjectDumperのソースがあれば、使えるかなーと思って探すと、
C:\Users\(ユーザ名)\AppData\Local\Adobe\Flash CS3\ja\Configuration\Classes\mx\data\binding\ObjectDumper.as
にあった!(↑Win Vista/Flash CSの場合です)
そこで単純にAS3.0のソース中に、
import mx.data.binding.ObjectDumper;
と書いてみたが、エラーとワーニングが出まくる。そりゃそうか。AS2.0と3.0ではシンタックスもだいぶ違うしね。
しかし、なんとしても使いたいので、このソースを自分のところのパッケージのフォルダにコピーして、(例 com.ironhearts.utils.ObjectDumper)、AS3.0でコンパイルが通るよう、ちくちくとソースを修正して対応。
ObjectDumperの出力はJSONぽいので、応用が利きそう。
ObjectDumper.toString(オブジェクト)は、タイプが面倒なので、自分パッケージ用にショートカット用関数というか、ラッパーを作った。
>>>>>続きを読む
Popularity: 18% [?]


