2012-01-01 55 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

相关问题