Question

Étant donné une application ou un module flex, vous pouvez spécifier un espace de nom XML personnalisé comme suit:

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

Nous pouvons ensuite faire référence aux composants mxml dans le répertoire custom / namespace / en utilisant la balise custom. Par exemple, si j'ai les composants Custom1 et Custom2 dans le répertoire custom / namespace, je peux les utiliser comme suit:

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

Existe-t-il un moyen de mapper plusieurs répertoires sur la même balise? Autrement dit, si j'ai des composants dans un sous-répertoire de custom / namespace, tel que custom / namespace / sub avec le composant SubCustom1, existe-t-il un moyen de modifier le document flex afin que la balise personnalisée puisse faire référence à SubCustom1?

Notez qu'une solution de contournement que j'ai trouvée consistait à ajouter une nouvelle balise à chaque répertoire (par exemple, xmlns: custom.sub = "custom.namespace.sub. *", puis:

<custom.sub:SubCustom1>

Cependant, cette solution semble être un kludge.

Était-ce utile?

La solution

Pour créer un espace de nom personnalisé dans flex, vous devez

1) Créez un fichier manifeste personnalisé, par exemple

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

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

2) Ajoutez quelque chose de similaire au suivant dans votre fichier 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>

Vous pouvez lire une explication plus détaillée ici .

Cette question a également été répondue ici .

Autres conseils

La dénomination découle directement de la spécification XML pour les espaces de nom. Si vous souhaitez modifier custom pour faire référence au sous-répertoire, modifiez la déclaration d'espace de noms:

xmlns:custom="custom.namespace.*"

à

xmlns:custom="custom.namespace.sub.*"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top