Есть ли способ сопоставить тег в flex с компонентами в нескольких каталогах? - PullRequest
2 голосов
/ 04 марта 2009

Для данного гибкого приложения или модуля вы можете указать пользовательское пространство имен xml следующим образом:

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="custom.namespace.*">

Затем мы можем ссылаться на компоненты mxml в каталоге custom / namespace /, используя пользовательский тег. Например, если у меня есть компоненты Custom1 и Custom2 в каталоге custom / namespace, я могу ссылаться на них так:

<custom:Custom1/>
<custom:Custom2/>

Есть ли способ отобразить несколько каталогов на один тег? То есть, если у меня есть компоненты в подкаталоге custom / namespace, например custom / namespace / sub с компонентом SubCustom1, есть ли способ изменить документ flex, чтобы пользовательский тег мог ссылаться на SubCustom1?

Обратите внимание, что одним из обходных путей, который я нашел, было добавление нового тега для каждого каталога (например, xmlns: custom.sub = "custom.namespace.sub. *", А затем:

<custom.sub:SubCustom1>

Это решение похоже на кучу.

Ответы [ 2 ]

2 голосов
/ 05 марта 2009

Чтобы создать собственное пространство имен в flex, вам нужно

1) Создайте пользовательский файл манифеста: например,

<?xml version="1.0" encoding="utf-8" ?>
<componentPackage>

    <component id="Accordion" class="mx.containers.Accordion"/>
    ....

2) Добавьте в файл flex-compiler.xml нечто похожее на следующее:

<compiler>
    ...
      <namespaces>
         <!-- Specify a URI to associate with a manifest of components for use as MXML -->
         <!-- elements.                                                                -->
         <namespace>
            <uri>http://mycustomnamespace.com</uri>
            <manifest>custom-manifest.xml</manifest>
         </namespace>
      </namespaces>
</compiler>

Более подробное объяснение вы можете прочитать здесь .

На этот вопрос также ответили здесь .

0 голосов
/ 04 марта 2009

Именование следует непосредственно из спецификации XML для пространств имен. Если вы хотите изменить custom для ссылки на подкаталог, измените объявление пространства имен:

xmlns:custom="custom.namespace.*"

до

xmlns:custom="custom.namespace.sub.*"
...