错误#1009:在收听舞台as3上的按钮时

时间:2014-07-20 21:00:33

标签: actionscript-3 flash

我正在使用as3开发游戏。这是我第一次使用flash和as3。 我的问题是我在舞台上有一个“callBasket”按钮,它是一个名为“CallMethod”的类的实例,我的代码如下:

public class SweetBasket extends Basket{

    var basketButtonSweet:BasketButtonSweet = new BasketButtonSweet;

    public function SweetBasket() {

    }

    override protected function clickButton (event:MouseEvent):void{
        stage.addChild(basketButtonSweet);
        basketButtonSweet.x = 547;
        basketButtonSweet.y = 162;
        basket = "sweet";
        call = stage.getChildByName("callBasket") as CallMethod;

        call.addEventListener(MouseEvent.CLICK, onClick);// here is my problem

    }



    protected function onClick(event:MouseEvent):void{
        clicked = true;
        trace(clicked);
    }

这是我的篮子比赛,虽然我认为不重要。

public class Basket extends SimpleButton{

    var basketButton:BasketButton;
    var basket:String;
    var call:CallMethod;
    public var clicked:Boolean = new Boolean(false);


    public function Basket() {

        addEventListener(MouseEvent.CLICK, clickButton);

    }



    protected function clickButton (event:MouseEvent):void{


    }

使用addEventListener给我一个错误

  

TypeError:错误#1009:无法访问空对象引用的属性或方法。     在OOPGame :: SweetBasket / clickButton()

知道为什么会发生这种错误,我做错了什么?

2 个答案:

答案 0 :(得分:0)

它看起来像callBasket"在舞台上不存在(/被放置在其他地方但不在舞台上直接)。为确保它确实存在,请在" call = stage.getChildByName(" callBasket")之后添加一条跟踪作为CallMethod;"跟踪("呼叫存在:" +呼叫);跟踪状态是什么?

答案 1 :(得分:0)

看起来元素根本没有被添加到舞台上。检查添加名称为“callBasket”的元素的代码片段。还要检查“callBasket”是CallMethod类的实例(或它的继承者)。