クラスのプロパティを列挙する方法

ActionScript3.0で、クラスのプロパティを列挙したい。

「列挙するなら配列でやってよ」ってことなんでしょうが(苦笑)

public class Hoge
{
    public var a:String;
    public var b:String;
    public function Hoge ()
    {
    }
}

var hoge:Hoge = new Hoge();
hoge.a = "foo";
hoge.b = "bar";
for (var key:String in hoge) {
    trace(key + ":" + hoge[key]);
}

上記コードだと1つもトレースが出ません。



なんかアレだなと思うのですが、toObject()みたいなメソッドで変換してあげれば何とかなります。
他にいい方法ないですかね...

public class Hoge
{
    public var a:String;
    public var b:String;
    public function Hoge ()
    {
    }

    /**
     * Objectに変換
     */
    public function toObject():Object {
      return {
        a:a,
        b:b
        };
    }
}

var hoge:Hoge = new Hoge();
hoge.a = "foo";
hoge.b = "bar";
for (var key:String in hoge.toObject()) {
    trace(key + ":" + hoge[key]);
}