Есть ли способ сопоставить гибкий тег с компонентами в нескольких каталогах?

StackOverflow https://stackoverflow.com/questions/609092

Вопрос

Для гибкого приложения или модуля вы можете указать собственное пространство имен 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, есть ли способ изменить гибкий документ, чтобы пользовательский тег мог ссылаться на SubCustom1?

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

<custom.sub:SubCustom1>

Однако это решение выглядит как клудж.

Это было полезно?

Решение

Чтобы создать собственное пространство имен в 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>

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

На этот вопрос тоже был дан ответ здесь.

Другие советы

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

xmlns:custom="custom.namespace.*"

к

xmlns:custom="custom.namespace.sub.*"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top