Использование символа \ при задании значения свойства типа String
-
MXML компилятор автоматически экранирует символ \ в MXML, когда встречает его в значении свойства типа String. В этом случае "\" заменяется на "\\". Это необходимо, так как ActionScript компилятор воспринимает как \ только экранированную последовательность, "\\".
Символ перевода строки в значении поля типа String
-
В случае с полем типа String символ новой строки можно вставить двумя способами:
-
Используя последовательность в MXML
-
Используя последовательность "\n" в ActionScript
-
В случае с код нужно использоваться в MXML, типа так:
-
<mx:TextArea width="100%" text="Display Content"/>
-
В случае с ActionScript пример следующий, обратите внимание на привязку данных в MXML:
-
<mx:Script> <![CDATA[ [Bindable] public var myText:String = "Display" + "\n" + "Content"; ]]> </mx:Script> <mx:TextArea width="100%" text="{myText}"/>
Задание массивов примитивов
-
Когда необходимо задать свойство объекта, имеющее тип массива, в MXML, используются вложенные тэги. В данном примере свойство dataProvider содержит массив чисел:
-
<mx:List width="150"> <mx:dataProvider> <mx:Array> <mx:Number>94062</mx:Number> <mx:Number>14850</mx:Number> <mx:Number>53402</mx:Number> </mx:Array> </mx:dataProvider> </mx:List>
-
Тэги <mx:Array> и </mx:Array> вокруг списка элементов массива вообще говоря необязательны. То есть, можно сократить пример вот так:
-
<mx:List width="150"> <mx:dataProvider> <mx:Number>94062</mx:Number> <mx:Number>14850</mx:Number> <mx:Number>53402</mx:Number> </mx:dataProvider> </mx:List> Flex автоматически произведет необходимые преобразования при компиляции и свойству будет присвоен массив.
Присвоение значений полям с пользовательским типом
-
Пользовательские типы MXML также присваиваются в виде вложенного тэга:
-
<mynamespace:MyComponent> <mynamespace:nameOfProperty> <mynamespace:typeOfObject prop1="val1" prop2="val2"/> </mynamespace:nameOfProperty> </mynamespace:MyComponent>
ActionScript класс, представляющий собой объект типа Address. Он является свойством классам PurchaseOrder
-
class Address
-
{
-
public var name:String;
-
public var street:String;
-
public var city:String;
-
public var state:String;
-
public var zip:Number;
-
}
PurchaseOrder
-
import example.Address;
-
class PurchaseOrder {
-
public var shippingAddress:Address;
-
public var quantity:Number;
-
...
-
}
В MXML экземпляр PurchaseOrder определяется
-
<mynamespace:PurchaseOrder quantity="3" xmlns:e="example"> <mynamespace:shippingAddress> <mynamespace:Address name="Fred" street="123 Elm St."/> </mynamespace:shippingAddress> </mynamespace:PurchaseOrder>
-
Если свойство shippingAddress имеет тип Address или его подкласс (например, DomesticAddress), значение можно присваивать следующим образом:
-
<mynamespace:PurchaseOrder quantity="3" xmlns:e="example"> <mynamespace:shippingAddress> <mynamespace:DomesticAddress name="Fred" street="123 Elm St."/> </mynamespace:shippingAddress> </mynamespace:PurchaseOrder>
-
Если свойство явно задано как Object, можно использовать тэг mx:Object
-
class ObjectHolder {
-
public var value:Object
-
}
-
в MXML:
-
<mynamespace:ObjectHolder> <mynamespace:value> <mx:Object foo='bar' /> </mynamespace:value> </mynamespace:ObjectHolder>
пример присвоения свойству типа Object массива в MXML