当我试图让推土机出现在舞台上时,我在这段代码上遇到了上述错误。它让我发疯,我不知道为什么会这样。我的库中有推土机夹子,似乎是正确定义的。任何帮助将不胜感激。
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.ui.Mouse;
//START SCREEN
var startScreen: MovieClip;
var bulldozer: MovieClip;
startClick.addEventListener(MouseEvent.CLICK, startGame);
function startGame(event: MouseEvent): void {
startScreen.parent.removeChild(startScreen);
startClick.parent.removeChild(startClick);
addChild(bulldozer);
var enemyGenerator: Number = Math.random();
if (enemyGenerator >= 0.8) {
bulldozer.x = stage.x = 150;
bulldozer.y = stage.y = 150;
} else if (enemyGenerator >= 0.6) {
bulldozer.x = stage.x = 250;
bulldozer.y = stage.y = 250;
} else if (enemyGenerator >= 0.4) {
bulldozer.x = stage.x = 350;
bulldozer.y = stage.y = 350;
} else if (enemyGenerator >= 0.2) {
bulldozer.x = stage.x = 400;
bulldozer.y = stage.y = 400;
} else {
bulldozer.x = stage.x = 450;
bulldozer.y = stage.y = 450;
}
startClick.removeEventListener(MouseEvent.CLICK, startGame);
}
答案 0 :(得分:1)
你必须创建一个推土机的实例!
var bulldozer: MovieClip = new MovieClip();
上面的代码将创建一个可从此类中的任何函数访问的类级实例变量。如果你说
public var MovieClip = new MovieClip();
然后您就可以从本课程外部访问它了。冲洗并重复使用startScreen。
null 和 undefined 之间存在差异。这是任何OO语言的基本规则。您的对象推土机(您尝试添加的子项)此时为空,因为它尚未使用new构造。如果未定义,则意味着var startScreen: MovieClip;
丢失。
请查看构造函数和实例变量。
答案 1 :(得分:0)
您有以下问题:
您需要创建一个推土机实例,如上面所述的FlavorScape。
这一行将推土机定义为变量,但该变量为空或“null”:
var bulldozer: MovieClip;
您无法向舞台添加空变量,因此除非您创建如下实例,否则会导致错误(#2007):
var bulldozer: MovieClip = new MovieClip();
第二个错误(#2071)是尝试设置stage的x和y属性的结果。舞台永远不会有x或y属性,所以这样的行:
bulldozer.x = stage.x = 150;
bulldozer.y = stage.y = 150;
应该是
bulldozer.x = 150;
bulldozer.y = 150;