Flex 4中的Object对象用<fx:Object/>来声明,而AS3中的Object用new Object或{}来实例化。他们本质上是一样的,但也有细微不同。
- 在Flex 4中,Object对象的属性值中有小于号、双引号和&,必须使用其相应的XML字符实体,比如:用"代替双引号。而在AS3中,Object对象的属性值会忽略字符实体,可以直接使用这些特殊字符;
- 在Flex 4中,Object对象的属性值会忽略\r
、\t等转义字符;而在AS3中,却允许属性值使用这些转义字符; - 在Flex 4中,属性值如果是 十六进制色彩或以数字+ d(D)结尾,会自动转换为相应的数字;AS3中的Object的属性值没有这个问题。注意这一点是我最近才发现的的。看下面代码:
<s:ButtonBar> <s:ArrayList> <fx:Object label="5D" value="5d"/> <fx:Object label="#99D" value="#99d"/> </s:ArrayList> </s:ButtonBar>
按钮栏的两个按钮都会自动转换为相应的数字,这都不是我们想要的。所以在开发中,如果使用Flex Object达不到要求,请改用AS3 Object。