旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

AS3用に変数をダンプする関数

2007年10月26日

traceが素Objectのプロパティ一覧を出してくれない!
ので、ActionScript3用に変数を再帰的にダンプする関数(を持ったクラス)を書いた。
PHPで言うvar_dumpみたいなのをイメージ。

[ソース]
(後日場所が変わるかもしれないので、その場合はこの辺から探して下さい)

使用例、こういう風に使うと

var obj:Object = {x:1, y: "aaa", z: {foo: [1,2,3], bar: {a: 11, b: null, c: true}}};
D.dump(obj);

traceにより以下のような出力がなされます

(object)`[object Object]`
"z"=(object)`[object Object]`
"bar"=(object)`[object Object]`
"b"=(object)`null`
"c"=(boolean)`true`
"a"=(number)`11`
"foo"=(object)`[object Array]`
[0]=(number)`1`
[1]=(number)`2`
[2]=(number)`3`
"x"=(number)`1`
"y"=(string)`aaa`

なんで “z” -> “x” -> “y” とか “b” -> “c” -> “a” の順なのかはわかりませぬ。今度調べます。

ちなみに、for … in がインスタンスに対して動的に設定されたプロパティのみを拾ってきて、クラスに定義されているものは拾わないというのが、JSよりもわかり易くて良いと思いました。