AS 3.0中的引用父类函数

时间:2010-03-23 07:07:10

标签: flash actionscript-3 reference

我正在尝试运行主类的功能,但即使使用强制转换它也不起作用。我收到此错误

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();}

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您的RPXMLReader似乎没有parent ...假设RPXMLReader延伸MovieClip(或Sprite或{{1}等等),您需要将其添加为DisplayObject类的子级 - 否则其Main属性将为parent

null

答案 1 :(得分:1)

读取器类不是显示列表的一部分,要在显示列表中添加一些内容,您需要在即将成为父显示对象上调用addChild,并将即将出现的子显示对象作为参数传递。

无论如何,这是尝试在类之间进行通信的一种非常糟糕的方式。你真的应该从RPXMLReader调度一个事件,然后在你的Main类中监听它。