我正在尝试运行主类的功能,但即使使用强制转换它也不起作用。我收到此错误
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at rpflash.communication::RPXMLReader/updateplaylist()
at rpflash.communication::RPXMLReader/dataHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::XMLSocket/scanAndSendEvent()
这是主类代码
package{
import flash.display.MovieClip;
import rpflash.communication.RPXMLReader;
public class Main extends MovieClip{
var reader:RPXMLReader = new RPXMLReader();
public function Main(){
trace('Main actionscript loaded');
}
public function test(){
trace('test worked');}
}
}
这是试图调用它的函数:
private function updateplaylist(){
//xml to string
var xmls:String= xml.toXMLString();
trace('playlist updated debug point');
MovieClip(this.parent).test();}
我做错了什么?
答案 0 :(得分:1)
您的RPXMLReader
似乎没有parent
...假设RPXMLReader
延伸MovieClip
(或Sprite
或{{1}等等),您需要将其添加为DisplayObject
类的子级 - 否则其Main
属性将为parent
:
null
答案 1 :(得分:1)
读取器类不是显示列表的一部分,要在显示列表中添加一些内容,您需要在即将成为父显示对象上调用addChild,并将即将出现的子显示对象作为参数传递。
无论如何,这是尝试在类之间进行通信的一种非常糟糕的方式。你真的应该从RPXMLReader调度一个事件,然后在你的Main类中监听它。