2012-01-01 46 views
0

我正在嘗試將生成的XML(xmlResult)添加到舞臺上的文本框中。我曾嘗試使用MovieClip(root)。[instancename] .text = .....但它沒有工作 - null對象引用?有什麼建議麼?謝謝!自定義類中的訪問舞臺對象(文本框)

package { 

public class ChatHistory extends MovieClip { 

    public function ChatHistory() 
    { 
     //constructor 
    } 
    public function getChatText() { 
      var loader:URLLoader = new URLLoader(); 
      loader.addEventListener(Event.COMPLETE, requestComplete); 
      var requestURL:URLRequest = new URLRequest("http://localhost:80/chathistory.xml"); 
      requestURL.method = URLRequestMethod.GET; 
      loader.load(requestURL); 
    } 

    private function requestComplete(event:Event):void { 
     try { 
     var xmlResult:XML = new XML(event.target.data); 
     trace(xmlResult); 
     } catch (e:TypeError) { 
      trace(e.message); 
     } 
    } 
} 
}  
+0

你嘗試過什麼樣的例子我不清楚,確保名稱是一個字符串:'MovieClip(root)。[「instancename」]。text' – Kapep 2012-01-01 22:39:08

+0

我只是使用[instancename]作爲佔位符 - 在我使用的代碼中:MovieClip (RO ot).textBox.text = ... – Jonathan 2012-01-01 23:36:54

+0

好的,我沒有注意到額外的點,所以我認爲它是數組訪問運算符。你可以嘗試使用你的動畫片段的'stage'屬性,但是在許多情況下,這種問題是由於使用錯誤的名字或試圖訪問對象而產生的,因爲當它們只是舞臺的子項時,它們就是舞臺的屬性。 – Kapep 2012-01-01 23:46:35

回答

0

我想這和它的工作,這也許可以啓發你:

import flash.text.TextField; 
import ik_fla.MainTimeline; 

TextField(MainTimeline(stage.getChildAt(0)).getChildByName('myTxt')).text = "weeee"; 

,或者您可以通過使用Object投,而不是避免imports

Object(Object(stage.getChildAt(0)).getChildByName('myTxt')).text = "weeee"; 
+0

這裏可能有點厚,但是這需要什麼進口? – Jonathan 2012-01-02 19:47:55

+0

我會在上一篇文章中更新導入語句。 – Fabricio 2012-01-03 11:46:44

+0

謝謝!似乎工作! – Jonathan 2012-01-03 12:02:09