我创建了一个Flex库项目,其中包含一个带有一个componnent(一个按钮)的.MXML文件。 它在myLibrary.views包中名为Button.mxml。
然后我创建了一个不同的Flex Mobile项目,其中我想要包含我的库项目中的按钮。 该项目引用先前创建的库。
我无法找到如何实现这一目标的答案。
我可以像mxml componnent一样添加吗?
<?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>
谢谢!
答案 0 :(得分: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中基于import语句在MXML中使用Component;但你有正确的想法。