给定一个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 =“custom.namespace.sub。*”,然后:
<custom.sub:SubCustom1>
但这个解决方案看起来像是一个kludge。
答案 0 :(得分: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>
您可以阅读更详细的解释here。
此问题也得到了解答here。
答案 1 :(得分:0)
命名直接遵循命名空间的XML规范。如果要更改custom
以引用子目录,请更改名称空间声明:
xmlns:custom="custom.namespace.*"
到
xmlns:custom="custom.namespace.sub.*"