環境:Flex 3.6
このコードを見てください:
    var arr:Array = new Array()
    var t:Object = {number:"12345", id:"Public"};
    arr[t] = "Hello";
    for (var z:Object in arr)
    {
        if (z is String)
            trace("STRING");
        if (z is Object)
            trace("OBJECT");
        trace("z.number = " + z.number);
    }
出力:
STRING
OBJECT
その後、最後のtrace()呼び出しでクラッシュし、次のエラーが発生します。
ReferenceError: Error #1069: Property number not found on String and there is no default value
オブジェクトはフィールドの名前を保持することになっているのではありませんか?私が間違っているのは何ですか?