2012-01-09 51 views
0

我按照嚮導創建一個http服務來連接到一個php腳本。該腳本從數據庫中提取一些隨機記錄。在flex中訪問lastResult 4

標籤的定義是:

<s:Label id="label2" x="556" y="136" width="75" height="71" 
     creationComplete="label2_creationCompleteHandler(event)" 
     text="{GetQstResult2.lastResult}"/> 

protected function label2_creationCompleteHandler(event:FlexEvent):void 
     { 
      GetQstResult2.token = qst.GetQst(); 
     } 

結果被格式化與向​​導到一個數組,但我不知道如何訪問該值。現在,當我運行該應用程序時,它顯示[對象問題]。

* EDIT1:

<qst:Qst id="qst" 
      fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" 
      showBusyCursor="true"/> 
    <s:CallResponder id="GetQstResult2"/> 

回答

0

你看[對象問題]究其原因很可能是因爲您的lastResult是一個問題對象的實例,但該對象並沒有實現一個toString()方法,因此它使用在其對象層次結構中定義的默認toString()方法 - 很可能是Object類。

您可以在Question類中定義toString()方法。或者,您可以在與遠程調用相關的結果處理程序中設置標籤的文本。我更喜歡第二種方法。在結果處理程序中,執行如下操作:

var myQuestionInstance : Question = event.result as Question; 
label2.text = myQuestionInstance.someStringPropertyOnQuestion; 
+0

我不明白它在哪裏放置代碼。我可以說我有一個名爲valueObjects和數據Qst服務的包:GetQst():具有類型字符串鍵的問題。我怎樣才能訪問這些? – 2012-01-09 17:22:45

+0

「放置代碼的位置」將代碼放入遠程服務的結果處理程序中。由於您沒有爲您的遠程服務提供代碼,或者告訴我們它是什麼類型的;很難給你更具體的細節。 – JeffryHouser 2012-01-09 17:34:10

+0

是的,在哪裏把代碼,因爲我沒有一個結果處理程序,放在? – 2012-01-09 17:40:10