我在我的 Flash 游戏中遇到了一个相当奇怪的问题。我收到“错误 #1009:无法访问空对象引用的属性或方法”。以下代码块中的错误:
public function createHero()
{
hero = new Object();
hero.mc = gamelevel.hero;
hero.dx = 0.0;
hero.dy = 0.0;
hero.inAir = false;
hero.direction = 1;
hero.animstate = "stand";
hero.walkAnimation = new Array(2, 3, 4, 5, 6, 7, 8);
hero.animstep = 2;
hero.jump = false;
hero.moveLeft = false;
hero.moveRight = false;
hero.jumpSpeed = 0.8;
hero.walkSpeed = 0.15;
hero.width = 64.0;
hero.height = 96.0;
hero.startX = hero.mc.x;
hero.startY = hero.mc.y;
hero.profile = "technology";
hero.ability = "robot";
hero.activePhotoFrame = false;
}
使用调试器,我将错误缩小到“hero.mc = gamelevel.hero;”。我尝试通过使用测试对象来确定 hero.mc 或 gamelevel.hero 是否是罪魁祸首。
testObject = gamelevel; //worked perfectly fine
testObject = gamelevel.hero; //gave the error
testObject.mc = gamelevel; //also gave the error
testObject.mc = gamelevel.hero; //gave the same error as well
我不明白问题是什么。为了澄清,“gamelevel”是包含另一个实例名称为“hero”的movieclip的实例名称
问题不仅限于英雄对象。如果我将其注释掉,我会收到任何其他将 gamelevel.something 分配给 mc 属性的对象的错误。
更奇怪的是,这之前工作得非常好。
如果需要任何其他信息,请随时询问。