Adobe Flex:从组件MXML中的主应用程序访问结果事件

时间:2012-05-27 19:31:00

标签: flex mxml xmllist

在我的主应用程序中,我有一个结果事件和XMLList,其中包含我的结果。 XMLList是在如下函数之外定义的:

public var testList:XMLList = new XMLList();

但是在我的结果处理程序中,它会使用结果中的数据进行填充,并且工作正常。我需要创建一个包含List的外部组件MXML文件,但是从该组件文件中我无法从主应用程序访问testList。

我在每个文件中都包含xmlns:local="*",我的组件文件也有以下导入:

import mx.collections.XMLListCollection;
import mx.controls.Alert;
import mx.core.Application;
import mx.events.FlexEvent;
import mx.rpc.events.ResultEvent;

我不明白我做错了什么。

1 个答案:

答案 0 :(得分:2)

您需要将testList作为组件的属性传递。

Main - 您拥有结果事件中的testList和自定义组件。将testList传递给您在组件中定义的属性,例如data

<?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"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               xmlns:local="*">

    <fx:Script>
        <![CDATA[
            [Bindable]
            public var testList:XMLList = new XMLList();
        ]]>
    </fx:Script>

    <local:CustomComponent data="{testList}" />

</s:Application>

CustomComponent - 从您创建的组件中,从属性访问testList,例如data中的<?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Script> <![CDATA[ [Bindable] public var data:XMLList; ]]> </fx:Script> <s:List dataProvider="{new XMLListCollection(data)}" /> </s:Group>

{{1}}