Видимо что-то индусы намудрили в новых версиях языка, потому что перестал работать привычный парсинг XML.
Собственно, есть класс

Код AS3:
package {
[Bindable]
[Table( name="ShopChar" )]
public class CharData {
[Id]
public var id: int;
[Column( name="code" )]
public var code: int;
[Column( name="armor" )]
public var armor: Number = 0;
[Column( name="health" )]
public var health: int = 0;
[Column( name="power" )]
public var power: int = 0;
[Column( name="speed" )]
public var speed:Number = 0;
[Column( name="taken" )]
public var taken: Boolean = false;
[Column( name="healthLevel" )]
public var healthLevel: int = 1;
[Column( name="armorLevel" )]
public var armorLevel: int = 1;
[Column( name="powerLevel" )]
public var powerLevel: int = 1;
[Column( name="speedLevel" )]
public var speedLevel: int = 1;
[Column( name="isBought" )]
public var isBought:Boolean = false;
public function get totalLevel():int {
return healthLevel + armorLevel + powerLevel + speedLevel;
}
public function set totalLevel(value:int):void {}
public function CharData() {}
public function toString():String {
return "[class CharData, code = " + code +
", armor " + armor,
", health " + health,
", power " + power,
", speed " + speed,
", id = " + id + "]";
}
}
}
Для того, чтобы его можно было записать в объектно реляционную карту, нужно получить его свойства через descrybeType
Сразу оговорюсь, что для работы этого добра в FD, нужно сначала зайти в Project - Properties - Compiler Options - Additional Compiler Options и добавить туда строку
Цитата:
-keep-as3-metadata+=Table,Id,Column
|
А теперь мне нужно получить название таблицы. Обычно прокатывал такой способ

Код AS3:
var xml:XML = describeType(new CharData());
var table:String = StringUtil.trim(xml.metadata.(@name == "Table").arg.(@key == "name").@value);
В новом AIR эта конструкция сразу падает (в рантайме, естественно) с ошибкой
Цитата:
[Fault] exception, information=ReferenceError: Error #1065: Variable name is not defined.
|
Уже всю голову сломал как это заставить работать. Мне нужно получить атрибут, у которого name = Table
Вот сам XML
Цитата:
<type name="CharData" base="Object" isDynamic="false" isFinal="false" isStatic="false">
<extendsClass type="Object"/>
<extendsClass type="function Function() {}"/>
<extendsClass type="function Function() {}"/>
<implementsInterface type="flash.events::IEventDispatcher"/>
<implementsInterface type="function Function() {}"/>
<implementsInterface type="function Function() {}"/>
<accessor name="isBought" access="readwrite" type="Boolean" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="isBought"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="1010"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="1010"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="armorLevel" access="readwrite" type="int" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="armorLevel"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="808"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="808"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="powerLevel" access="readwrite" type="int" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="powerLevel"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="876"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="876"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="healthLevel" access="readwrite" type="int" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="healthLevel"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="739"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="739"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="code" access="readwrite" type="int" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="code"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="231"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="231"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="id" access="readwrite" type="int" declaredBy="CharData">
<metadata name="Id">
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="180"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="180"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="power" access="readwrite" type="int" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="power"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="405"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="405"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="speed" access="readwrite" type="Number" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="speed"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="463"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="463"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="health" access="readwrite" type="int" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="health"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="346"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="346"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="armor" access="readwrite" type="Number" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="armor"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="284"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="284"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="totalLevel" access="readwrite" type="int" declaredBy="CharData">
<metadata name="__go_to_definition_help">
<arg key="pos" value="1063"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="1173"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="speedLevel" access="readwrite" type="int" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="speedLevel"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="944"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="944"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="taken" access="readwrite" type="Boolean" declaredBy="CharData">
<metadata name="Column">
<arg key="name" value="taken"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="667"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="667"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</accessor>
<accessor name="undefined" access="undefined" type="undefined" declaredBy="undefined" uri="undefined"/>
<accessor name="undefined" access="undefined" type="undefined" declaredBy="undefined" uri="undefined"/>
<method name="removeEventListener" declaredBy="CharData" returnType="void">
<parameter index="1" type="String" optional="false"/>
<parameter index="2" type="Function" optional="false"/>
<parameter index="3" type="Boolean" optional="true"/>
<parameter index="remove1" type="undefined" optional="undefined"/>
<parameter index="save1" type="undefined" optional="undefined"/>
</method>
<method name="dispatchEvent" declaredBy="CharData" returnType="Boolean">
<parameter index="1" type="flash.events::Event" optional="false"/>
<parameter index="remove1" type="undefined" optional="undefined"/>
<parameter index="save1" type="undefined" optional="undefined"/>
</method>
<method name="addEventListener" declaredBy="CharData" returnType="void">
<parameter index="1" type="String" optional="false"/>
<parameter index="2" type="Function" optional="false"/>
<parameter index="3" type="Boolean" optional="true"/>
<parameter index="4" type="int" optional="true"/>
<parameter index="5" type="Boolean" optional="true"/>
<parameter index="remove1" type="undefined" optional="undefined"/>
<parameter index="save1" type="undefined" optional="undefined"/>
</method>
<method name="hasEventListener" declaredBy="CharData" returnType="Boolean">
<parameter index="1" type="String" optional="false"/>
<parameter index="remove1" type="undefined" optional="undefined"/>
<parameter index="save1" type="undefined" optional="undefined"/>
</method>
<method name="willTrigger" declaredBy="CharData" returnType="Boolean">
<parameter index="1" type="String" optional="false"/>
<parameter index="remove1" type="undefined" optional="undefined"/>
<parameter index="save1" type="undefined" optional="undefined"/>
</method>
<method name="toString" declaredBy="CharData" returnType="String">
<parameter index="remove1" type="undefined" optional="undefined"/>
<parameter index="save1" type="undefined" optional="undefined"/>
<metadata name="__go_to_definition_help">
<arg key="pos" value="1259"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</method>
<method name="undefined" declaredBy="undefined" returnType="undefined" uri="undefined"/>
<method name="undefined" declaredBy="undefined" returnType="undefined" uri="undefined"/>
<metadata name="Bindable">
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="Table">
<arg key="name" value="ShopChar"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_definition_help">
<arg key="pos" value="143"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="__go_to_ctor_definition_help">
<arg key="pos" value="1226"/>
<arg key="undefined" value="undefined"/>
<arg key="undefined" value="undefined"/>
</metadata>
<metadata name="undefined"/>
<metadata name="undefined"/>
</type>
|
Как ни пытался, не получается получить атрибут по имени.