Flex对象 vs AS3对象

Flex 4中的Object对象用<fx:Object/>来声明,而AS3中的Object用new Object或{}来实例化。他们本质上是一样的,但也有细微不同。

  1. 在Flex 4中,Object对象的属性值中有小于号、双引号和&,必须使用其相应的XML字符实体,比如:用&quot;代替双引号。而在AS3中,Object对象的属性值会忽略字符实体,可以直接使用这些特殊字符;
  2. 在Flex 4中,Object对象的属性值会忽略\r
    、\t等转义字符;而在AS3中,却允许属性值使用这些转义字符;
  3. 在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。

发表评论