2009-03-04 6 views
2

Compte tenu d'une application Flex ou d'un module, vous pouvez spécifier un espace de noms XML personnalisé comme suit:Existe-t-il un moyen de mapper un tag en flex aux composants de plusieurs répertoires?

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

On peut alors se référer aux composants MXML dans le répertoire custom/espace/en utilisant la balise personnalisée. Par exemple, si j'ai les composants Custom1 et Custom2 dans le répertoire custom/espace de noms, je peux les consulter comme ceci:

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

Est-il possible de mapper plusieurs répertoires sur le même tag? Autrement dit, si j'ai des composants dans un sous-répertoire de custom/namespace, comme custom/namespace/sub avec le composant SubCustom1, existe-t-il un moyen de modifier le document flex pour que le tag custom puisse faire référence à SubCustom1?

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

<custom.sub:SubCustom1> 

Cette solution semble . comme une bidouille, mais

Répondre

2

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

1) Créer un fichier personnalisée manifeste: par exemple

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

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

2) Ajouter quelque chose de similaire à ce qui suit à 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 here.

Cette question a également été répondu here.

0

la dénomination découle directement de la spécification XML pour les espaces de noms Si vous voulez changer custom pour désigner le sous-répertoire modifier la déclaration d'espace de noms:.

xmlns:custom="custom.namespace.*" 

à

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

Nous vous remercions de votre réponse, mais je vous demande s'il existe un moyen de mapper des composants des deux répertoires, ou deux répertoires différents (pas nécessairement imbriqués), pas s'il y a un moyen de passer de l'un à l'autre. – mweiss