【发布时间】:2014-06-27 20:23:42
【问题描述】:
我为 MovieClip 创建了一个类,为玩家 (char) 创建硬币以供拾取。假设该课程所做的只是添加分数和硬币收集变量,然后从舞台上移除一枚硬币。但是当我使用gotoAndStop(#); 更改框架时,控制台垃圾邮件
ErrorType:错误 #1009:无法访问空对象引用的属性或方法。"
硬币类:
public class coin extends MovieClip{
var char:MovieClip;
var MainTimeLine = MovieClip(root);
public function coin() {
// constructor code
this.addEventListener(Event.ENTER_FRAME,update);
}
function update(event:Event):void{
if(MainTimeLine.currentFrame!=5){
char=MovieClip(root).char;
if(this.hitTestObject(char)){
this.removeEventListener(Event.ENTER_FRAME,update);
parent.removeChild(this);
MainTimeLine.score++;
MainTimeLine.coinscollected++;
}
}
}
}
【问题讨论】:
-
只是代码可读性最佳实践的提示。 CLASSES 使用大写首字母,实例/变量名使用小写首字母。所以在你的情况下,
coin应该是Coin和MainTimeLine应该是mainTimeLine。它还有助于在 stackoverflow 上突出显示代码 -
您可以修复此错误或使用 try/catch 语句忽略它(真的不好的做法)。此外,如果您将变量名大写,玩家可能会感到困惑。
-
硬币有动画吗?在这种情况下,您还应该在删除之前执行函数
stop()。另外,这个错误在哪一行?此外,您应该将var char:MovieClip更改为var char,这样它就不会为空。 (请记住,所有函数和变量都应该是驼峰式的。)
标签: class actionscript-3