我在我的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”是一个movieclip的实例名称,其中包含另一个实例名称为“hero”的movieclip
问题不仅限于英雄对象。如果我将其注释掉,我会将任何其他对象的gamelevel.something分配给mc属性。
令人感到奇怪的是,之前这种方法完全正常。
如果需要任何其他信息,请不要犹豫。
答案 0 :(得分:0)
必须先登台才能访问舞台实例。
this.addEventListener(Event.ADDED_TO_STAGE,createHero)
答案 1 :(得分:0)
原来其中一张图片已损坏......