Больше не может назначать значения свойств класса, используя это ["propertyName"] во Flex - PullRequest
0 голосов
/ 01 ноября 2010

При наличии динамического или нединамического класса, подобного следующему:

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 ]

1 голос
/ 01 ноября 2010
<?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>

Выводит "true" с помощью Flex SDK 4.1.Возможно, в вашем коде что-то не так?

0 голосов
/ 01 ноября 2010

Вы просто пытались это сделать?

  myClassInstance.myBooleanProperty = true;

На самом деле это стандартный способ присвоения значения общедоступному свойству в AS3.

0 голосов
/ 01 ноября 2010

Вместо этого вы можете использовать Словарь класс.

...