给定一个flex应用程序或模块,您可以按如下方式指定自定义xml命名空间:

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

然后我们可以使用自定义标记引用目录custom / namespace /中的mxml组件。例如,如果我在自定义/命名空间目录中有组件Custom1和Custom2,我可以像这样引用它们:

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

有没有办法将多个目录映射到同一个标签上?也就是说,如果我在自定义/命名空间的子目录中有组件,比如带有组件SubCustom1的custom / namespace / sub,有没有办法修改flex文档,以便自定义标签可以引用SubCustom1?

请注意,我找到的一个解决方法是为每个目录添加一个新标记(例如xmlns:custom.sub =&quot; custom.namespace.sub。*&quot;,然后:

<custom.sub:SubCustom1>

但这个解决方案看起来像是一个kludge。

有帮助吗?

解决方案

要在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