在Flex中,如何在MXML应用程序文件和MXML组件文件之间来回传递var对象

时间:2013-05-01 14:58:50

标签: xml flash flex actionscript mxml

我有一个Flex应用程序我正在与一个团队合作。这是一个简单的旅行社,我们的数据从URL中提取并存储在XML对象中。

目前,我们的应用程序结构与布局类似于网页。使用应用程序文件保持主要外观和布局(标题容器,主体容器和页脚容器)。

我有其他mxml组件文件,其中包含应用程序的内容(标题组件类,页面1等)。但是这些页面需要操纵我将要接受的数据。

基本思想是在构建数据后在应用程序中加载数据,并将原始xml列表的副本传递给用户当前所在的任何页面,以便在使用Flex XML对象类查询其搜索参数时修改副本。基本上开始大(所有度假点)和更具体(从指定的参数中选择几个)。

我正在考虑使用字符串(即.toXMLString)传递副本,并在每个页面中使用修改后的XML字符串创建另一个XML对象,但不确定如何传递该字符串对象。

然而,我对如何执行此操作感到有点困惑,因为在我自己搜索示例时,它包括创建事件,创建一个全局的actionscript文件,以及人们建议在我的应用程序中使用可绑定的public var。所以这有点令人困惑。我不是在寻找一个完整的解决方案,只是一些基本的东西,我可以继续使用,然后在我对它有一个很好的理解后实现到这个应用程序。

1 个答案:

答案 0 :(得分:0)

Reboog711发布的示例正是我所寻找的。我能够实现一个示例并将我想要的功能添加到我的应用程序中。

编辑:无法在2天之前将其标记为答案。

编辑#2:我通过使用元数据并为参数中的每个MXML文件定义事件来解决它。

我在我的组件MXML中定义了这些:

MXML组件文件:

<fx:Metadata>
    [Event(name="customEvent", type="flash.events.Event")]
</fx:Metadata>

然后定义一个var对象来接受该MXML组件中的对象和方法:

public var someObject:Object = new Object();
public function setObject(objectRef:Object):void{
    xmlList = new XML(xmlString);
}

然后,当您使用组件时,在MXML应用程序文件中,您可以执行以下操作来调用您的活动:

<[Package]:[Component Name] id="id" includeIn="[State]" passXML="id.someObject(passedObject)"/>
相关问题