1

我创建了一个 Flex 库项目,其中包含一个带有一个组件(一个按钮)的 .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>

谢谢!

4

1 回答 1

3

首先确保将另一个项目添加到您的库路径中。您可以通过将生成的 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 组件相同的语法;这是namespace:ComponentName

您不能基于 ActionScript 中的导入语句在 MXML 中使用组件;但你有正确的想法。

于 2013-02-25T19:56:48.907 回答