-
Свойства-обработчики (имеются ввиду свойства с именами событий -- прим. МК) MXML тэгов позволяет легко и удобно определять обработчики событий для компонентов. Свойство соответствует методу addEventListener() в ActionScript.
-
Свойства-обработчики в ActionScript классах задаются с помощью метатэга [Event], а не ActionScript переменных. Подробнее см. статью Использование метатэгов в пользовательских классах в Creating and Extending Flex 2 Components.
-
Например, обработчик события creationComplete в MXML задается следующим образом:
-
<mx:TextArea id="myText" creationComplete="creationCompleteHandler()"/> Данный MXML код эквивалентен следующему ActionScript коду:
-
myText.addEventListener("creationComplete", creationCompleteHandler);
Указание значений, являющихся URL
-
Некоторые MXML тэги, например <mx:Script>, имеют свойство, принимающее в качестве значения URL внешнего файла. Например, с помощью тэга <mx:Script> можно использовать внешний ActionScript файл с кодом вместо секции CDATA в теле самого тэга <mx:Script>.
-
Абсолютные, типа:
-
<mx:Style source="http://www.somesite.com/mystyles.css">
-
Пути относительно директории Java контейнера, в котором исполняются Flex приложения, типа:
-
<mx:HTTPService url="@ContextRoot()/directory/myfile.xml"/>
-
Тот же пункт, только записанный иначе:
-
<mx:Script source="/myscript.as"/>
-
Просто относительный путь, относительно пути к текущему MXML файлу:
-
<mx:Script source="../myscript.as"/>
Задание в качестве значения регулярного выражения
-
Регулярные выражения в MXML задаются в знакомом формате:
-
"/pattern/flags" Между слэшами содержится регулярное выражение, после второго слэша, если нужно, указываются специальные флаги, например, чувствительность к регистру. Например, свойство regExpression MXML компонента RegExp. Вот пример декларативного задания регулярного выражения в MXML:
-
<mynamespace:MyComponent regExpression="/\Wcat/gi"/>
-
Либо с помощью вложенных тэгов:
-
<mynamespace:MyComponent> <mynamespace:regExpression>/\Wcat/gi</mynamespace:regExpression> </mynamespace:MyComponent> Флаги задавать не обязательно:
-
<mynamespace:MyComponent regExpression="/\Wcat/"/>
Директивы компилятора
-
Следующие директивы компилятора не соответствуют ActionScript объектам или свойствам. Первая заглавная буква в их названиях обязательна:
-
<mx:Binding>
-
<mx:Component>
-
<mx:Metadata>
-
<mx:Model>
-
<mx:Script>
-
<mx:Style>
-
<mx:XML>
-
<mx:XMLList>
-
Следующие метатэги пишутся полностью строчными буквами:
-
<mx:operation>
-
<mx:request>
-
<mx:method>
-
<mx:arguments>
Синтаксис MXML
-
MXML синтаксис, помимо соответствия XML синтаксису, можно описать рядом простых ограничений:
-
Свойство id не является обязательным ни для одного тэга .
-
Свойство id не может быть у корневого тэга MXML документа.
-
Булевы свойства могут иметь только два значения, true и false.
-
Тэг <mx:Binding> требует наличия двух свойств, source и destination.
-
Тэг <mx:Binding> не может иметь свойства id.
-
Тэг <mx:WebService> требует задания свойства wsdl либо serviceName, но не обоих.
-
Тэг <mx:RemoteObject> требует задания свойства source либо named, но не допускает использование обоих одновременно.
-
Тэг <mx:HTTPService> требует наличия одного из свойств url либо serviceName, но не обоих.
-
Тэг <mx:operation> требует наличия аттрибута name, при этом дублирование значений этого аттрибута у разных экземпляров тэга не допускается (значение аттрибута должно быть уникально).
-
Тэг <mx:operation> не может иметь аттрибут id.
-
Тэг <mx:method> требует наличия аттрибута name, при этом дублирование значений этого аттрибута у разных экземпляров тэга не допускается (значение аттрибута должно быть уникально).
-
Тэг <mx:method> не может иметь аттрибут id.