如何将Flex库中的mxml组件包含到不同的Flex项目中



我创建了一个Flex Library项目,其中包含一个带有一个组件(一个按钮(的.MXML文件。它在myLibrary.views包中被称为Button.mxml。

然后我创建了一个不同的Flex Mobile项目,我想在其中包含库项目中的按钮。此项目引用以前创建的库。

我找不到如何实现这一目标的答案。

我能把它加成mxml的成分吗?

   <?xml version="1.0" encoding="utf-8"?>
  <         s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           applicationDPI="240">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
    <![CDATA[
        import myPackage.views.Button; // this is the package containing Button.mxml
    ]]>
</fx:Script>
 <myPackage.Views.Button id="myButton" /> // is this possbile somehow ???
     </s:Application>

谢谢!

首先确保将其他项目添加到库路径中。您可以通过将生成的SWC添加到libs文件夹或将其添加到库路径来实现这一点。如果两个项目都在同一个Flash Builder工作区中,您可以使用库选项卡上的"添加项目"按钮

接下来,要在MXML中使用新的Button文件,必须在顶级MXML标记中导入命名空间;像这样的东西:

 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:myPackage="myPackage.views.*"
               applicationDPI="240">

语法与Flex为自己的包所做的非常相似。除了您可能还没有完成创建名称空间URL的过程,所以您使用了包名称。在大多数情况下,不创建名称空间URL是可以的——这比它的价值更令人头疼。

然后你可以像这样使用你的自定义按钮:

<myPackage:Button id="myButton" />

这遵循与其他Flex组件相同的语法;即CCD_ 1。

不能基于ActionScript中的导入语句在MXML中使用组件;但你的想法是对的。

最新更新