環境: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
オブジェクトはフィールドの名前を保持することになっているのではありませんか?私が間違っているのは何ですか?