2012-05-27 55 views
1

在我的主應用程序中,我有一個結果事件和一個XMLList,它充滿了我的結果。的XMLList是一個函數的定義之外,像這樣:Adob​​e Flex:從組件MXML中的主應用程序訪問結果事件

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; 

我不明白我在做什麼錯。

回答

2

您需要將testList作爲組件的屬性。

主要 - 您的結果事件和您的自定義組件有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> 
+0

Thankyou的答覆。我嘗試了以下行: '' 我得到錯誤:'無法解析到組件實現' – user1077544

+0

使用組件* you *創建。這只是一個例子。這裏的核心概念是放置導入不會幫助你 - 你需要將你的'XMLList'傳遞給你創建的子組件。將XMLList屬性放入您的子組件中,並從您的主應用程序傳遞該屬性。使用這個例子作爲指導如何做到這一點。 –

+0

我道歉;我從來沒有使用標籤,所以我沒有意識到我應該用我的組件的名稱替換CustomComponent。儘管我現在正在收到新的錯誤,但看起來我正在訪問這些信息,這是我所要求的,所以謝謝! – user1077544