在我的主应用程序中,我有一个结果事件和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;
我不明白我做错了什么。
答案 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}}