代码之家  ›  专栏  ›  技术社区  ›  mweiss

有没有一种方法可以将flex中的标记映射到多个目录中的组件?

  •  2
  • mweiss  · 技术社区  · 16 年前

    给定一个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/>
    

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

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

    <custom.sub:SubCustom1>
    

    不过,这个解决方案似乎是一个蹩脚的选择。

    2 回复  |  直到 9 年前
        1
  •  2
  •   mweiss    16 年前

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

        2
  •  0
  •   dirkgently    16 年前

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

    xmlns:custom="custom.namespace.*"
    

    xmlns:custom="custom.namespace.sub.*"