flash中奇怪的对象属性问题

时间:2012-12-13 20:31:17

标签: actionscript-3 flash object movieclip

我在我的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属性。

令人感到奇怪的是,之前这种方法完全正常。

如果需要任何其他信息,请不要犹豫。

2 个答案:

答案 0 :(得分:0)

必须先登台才能访问舞台实例。

this.addEventListener(Event.ADDED_TO_STAGE,createHero)

答案 1 :(得分:0)

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