无法在Flex中使用此[“propertyName”]分配类属性值

时间:2010-11-01 03:39:21

标签: flex flash actionscript flex4

给定动态或非动态类,如下所示:

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

有人可以解释发生了什么变化以及如何解决这个问题吗?

3 个答案:

答案 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中为公共属性赋值的标准方法。