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

Posted

技术标签:

【中文标题】在 Flex 中,如何在 MXML 应用程序文件和 MXML 组件文件之间来回传递 var 对象【英文标题】:In Flex how would you pass a var object back and forth between an MXML application file and MXML component file 【发布时间】:2013-04-25 14:16:31 【问题描述】:

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

目前我们的应用程序结构类似于网页的布局。应用程序文件包含主要外观和布局(页眉容器、正文容器和页脚容器)。

我还有其他包含应用程序内容的 mxml 组件文件(标题组件类、page1 等)。但是,这些页面将需要处理我将要接收的数据。

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

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

但是我对如何执行此操作有点困惑,因为在我自己搜索示例时,它的范围包括创建事件、创建一个全局的 actionscript 文件,以及人们建议在我的应用程序中使用可绑定的公共 var。所以有点混乱。我不是在寻找一个完整的解决方案,我只是在寻找一些基本的东西,我可以处理和玩弄,然后在我很好地理解它之后实施到这个应用程序中。

【问题讨论】:

这有帮助吗? flextras.com/blog/index.cfm/2013/2/1/… 确实如此。我会研究它并尝试从中获得一个例子。谢谢。 【参考方案1】:

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)"/>

【讨论】:

尽量具体回答。 ;) 哪部分对你有帮助?随意引用你认为合适的相关段落。 抱歉,@Reboog711 的更改较晚。我一直忙于这个项目,但我希望这是我能解释我所做的事情的 KISS。

以上是关于在 Flex 中,如何在 MXML 应用程序文件和 MXML 组件文件之间来回传递 var 对象的主要内容,如果未能解决你的问题,请参考以下文章

通过从 flex 中的另一个 mxml 文件访问组件来使组件不可见

如何将自定义类导入 Flex 中的 mxml 文件? (动作脚本 3)

如何在 flex-edited 中从另一个 mxml 组件调用 mxml 组件

从 Flex - mxml(动作脚本)迁移到另一种技术

Flex 组件和 main.mxml 通信

Adobe Flex4 mxml 架构