0

我在我的 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 属性的对象的错误。

更奇怪的是,这之前工作得非常好。

如果需要任何其他信息,请随时询问。

4

2 回答 2

0

必须在舞台上才能访问舞台实例。

this.addEventListener(Event.ADDED_TO_STAGE,createHero)

于 2012-12-13T21:24:40.040 回答
0

原来其中一张图片已损坏...

于 2013-01-23T16:10:53.087 回答