2

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

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

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

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

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

请注意,我发现的一种解决方法是为每个目录添加一个新标签(例如 xmlns:custom.sub="custom.namespace.sub.*",然后:

<custom.sub:SubCustom1>

不过,这个解决方案似乎是一个杂项。

4

2 回答 2

2

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

您可以在此处阅读更详细的说明。

这个问题也在这里得到了回答。

于 2009-03-04T21:35:02.543 回答
0

命名直接遵循命名空间的 XML 规范。如果要更改custom引用子目录更改命名空间声明:

xmlns:custom="custom.namespace.*"

xmlns:custom="custom.namespace.sub.*"
于 2009-03-04T05:19:20.343 回答