我正在使用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()
知道为什么会发生这种错误,我做错了什么?
答案 0 :(得分:0)
它看起来像callBasket"在舞台上不存在(/被放置在其他地方但不在舞台上直接)。为确保它确实存在,请在" call = stage.getChildByName(" callBasket")之后添加一条跟踪作为CallMethod;"跟踪("呼叫存在:" +呼叫);跟踪状态是什么?
答案 1 :(得分:0)
看起来元素根本没有被添加到舞台上。检查添加名称为“callBasket”的元素的代码片段。还要检查“callBasket”是CallMethod类的实例(或它的继承者)。