1

在我的主应用程序中,我有一个结果事件和一个XMLList,其中填充了我的结果。XMLList 在函数之外定义,如下所示:

public var testList:XMLList = new XMLList();

但是在我的结果处理程序中,它填充了来自结果的数据,并且工作正常。我需要创建一个包含列表的外部组件 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;

我不明白我做错了什么。

4

1 回答 1

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>
于 2012-05-27T20:13:14.290 回答