Напильник для Flex: mx_internal

Адобовцы довольно часто используют namespace mx_internal для внутреннего общения между компонентами. Но и нам, иногда, полезно поиспользовать этот namespace. Например, нам нужно в Button.label отобразить html-текст.

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”vertical”>
    1. <mx:Button id=”helloB” label=”Hello World!”/>
    1. <mx:creationComplete>
      1. <![CDATA[
      1. helloB.getTextField().htmlText = “<u><i>H</i>ello World!</u>”;
      1. // если бы мы не применили бы namespace то можно было бы написать так:
      1. // helloB.mx_internal::getTextField().htmlText = “<u><i>H</i>ello World!</u>”;
      1. ]]>
    1. </mx:creationComplete>
    1. <mx:Script>
      1. <![CDATA[
      2. import mx.core.mx_internal; // импотируем namespace
      1. use namespace mx_internal; // применяем его
      1. ]]>
    1. </mx:Script>
  3. </mx:Application>

Но это нужно использовать крайне осторожно, т.к. очень легко поламать компонентину (т.к. запуск подобного метода выбивается из цикла жизни компонента) или просто при следующем обновлении компонент просто переопределит то, что Вы задали в значение, которое было до использования метода.

Залиште свій коментар