Existe uma maneira de mapear uma tag em flex para componentes em vários diretórios?
-
03-07-2019 - |
Pergunta
Dada uma aplicação Flex ou módulo, você pode especificar um namespace XML personalizado da seguinte forma:
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="custom.namespace.*">
Podemos então se referem a componentes MXML no diretório custom / namespace / usando a tag personalizada. Por exemplo, se eu tiver os componentes Custom1 e Custom2 no diretório custom / namespace, eu possa consultá-las assim:
<custom:Custom1/>
<custom:Custom2/>
Existe uma maneira de mapear vários diretórios na mesma tag? Isto é, se eu tiver componentes em um subdiretório do costume / namespace, como custom / namespace / sub com SubCustom1 componente, há uma maneira de modificar o documento flexível de modo a tag personalizada pode se referir a SubCustom1?
Note que uma solução que eu encontrei foi a de adicionar uma nova etiqueta para cada diretório (por exemplo xmlns: "custom.namespace.sub *" custom.sub =, e depois:
<custom.sub:SubCustom1>
Esta solução parece ser um truque, no entanto.
Solução
Para criar um espaço para nome personalizado em flex você precisa
1) Criar um arquivo de manifesto personalizado:. Por exemplo
<?xml version="1.0" encoding="utf-8" ?>
<componentPackage>
<component id="Accordion" class="mx.containers.Accordion"/>
....
2) Adicionar algo semelhante ao seguinte ao seu arquivo 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>
Você pode ler uma explicação mais detalhada aqui .
Esta questão também foi respondida aqui .
Outras dicas
A nomeação segue diretamente a partir da especificação XML para namespaces. Se você quer mudar custom
para se referir à mudança subdiretório a declaração de namespace:
xmlns:custom="custom.namespace.*"
para
xmlns:custom="custom.namespace.sub.*"