Линия продуктов Flex. Набор базовых утилит и библиотек для создания RIA. Работа с MXML. Основы MXML синтаксиса, страница 4

  • Свойства-обработчики (имеются ввиду свойства с именами событий -- прим. МК) 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.