我创建了一个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中使用组件;但你的想法是对的。