Domanda

Data un'applicazione o un modulo flessibile, è possibile specificare uno spazio dei nomi XML personalizzato come segue:

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

Possiamo quindi fare riferimento ai componenti mxml nella directory custom / namespace / usando il tag personalizzato. Ad esempio, se ho i componenti Custom1 e Custom2 nella directory custom / namespace, posso fare riferimento ad essi in questo modo:

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

C'è un modo per mappare più directory sullo stesso tag? Cioè, se ho componenti in una sottodirectory di custom / namespace, come custom / namespace / sub con il componente SubCustom1, c'è un modo per modificare il documento flessibile in modo che il tag personalizzato possa fare riferimento a SubCustom1?

Nota che una soluzione alternativa che ho trovato è stata l'aggiunta di un nuovo tag per ogni directory (ad esempio xmlns: custom.sub = " custom.namespace.sub. * " ;, e quindi:

<custom.sub:SubCustom1>

Questa soluzione sembra però un kludge.

È stato utile?

Soluzione

Per creare uno spazio dei nomi personalizzato in flex è necessario

1) Crea un file manifest personalizzato: ad esempio

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

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

2) Aggiungi qualcosa di simile al seguente al tuo file 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>

Puoi leggere una spiegazione più dettagliata qui .

A questa domanda è stata anche data risposta qui .

Altri suggerimenti

La denominazione segue direttamente dalla specifica XML per gli spazi dei nomi. Se vuoi cambiare personalizzato per fare riferimento alla sottodirectory cambia la dichiarazione dello spazio dei nomi:

xmlns:custom="custom.namespace.*"

a

xmlns:custom="custom.namespace.sub.*"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top