给定动态或非动态类,如下所示:
package {
public class MyClass {
public var myProperty:String;
public var myBooleanProperty:Boolean;
public function MyClass() {}
}
}
Flex 3允许您为myProperty分配一个值,如下所示:
myClassInstance["myProperty"] = "myValue";
myClassInstance["myBooleanProperty"] = true;
我定期解析XML以获取属性名称及其值,然后使用此技术更新相关类;但是,Flex 4不再允许分配布尔属性。我没有解决方法。
如果跟踪结果:
trace(myClassInstance.myProperty) // Returns "myValue"
trace(myClassInstance.myBooleanProperty) // Returns null
有人可以解释发生了什么变化以及如何解决这个问题吗?
答案 0 :(得分:1)
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="application1_creationCompleteHandler(event)"
>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
var c:MyClass = new MyClass();
c["myBooleanProperty"] = true;
trace(c["myBooleanProperty"]);
}
]]>
</fx:Script>
</s:Application>
使用Flex SDK 4.1输出“true”。 你的代码可能还有其他问题吗?
答案 1 :(得分:0)
您可以改用Dictionary课程。
答案 2 :(得分:0)
您是否只是尝试过这样做?
myClassInstance.myBooleanProperty = true;
这实际上是在AS3中为公共属性赋值的标准方法。