错误 #1009,即使在删除事件侦听器之后

error #1009, even after removing event listeners

在我制作的飞鸟游戏中,我之前遇到了error #1009的问题。我在帧之间切换时通过 removeEventListeners 解决了一些问题,但仍然存在一些问题。Here's my file.。请帮忙。 问题出现在 slideobstposirange 函数中。代码在这里:

slideobstposi 函数:

var start = false;
stage.addEventListener(Event.ENTER_FRAME, slide);
stage.addEventListener(Event.ENTER_FRAME, obstposi);

function slide(event: Event) {
    if (dead != true) {
        p1.x -= 5;
        p2.x -= 5;
        p3.x -= 5;
        p4.x -= 5;
        p5.x -= 5;
        p6.x -= 5;
        p7.x -= 5;
        p8.x -= 5;
        scorein1.x -= 5;
        scorein2.x -= 5;
        scorein3.x -= 5;
        scorein4.x -= 5;
    }
    if (flappy.hitTestObject(p1)) {
        dead = true;
    } else if (flappy.hitTestObject(p2)) {
        dead = true;
    } else if (flappy.hitTestObject(p3)) {
        dead = true;
    } else if (flappy.hitTestObject(p4)) {
        dead = true;
    } else if (flappy.hitTestObject(p5)) {
        dead = true;
    } else if (flappy.hitTestObject(p6)) {
        dead = true;
    } else if (flappy.hitTestObject(p7)) {
        dead = true;
    } else if (flappy.hitTestObject(p8)) {
        dead = true;
    }
}
function obstposi(event: Event) {

    if (flappy.hitTestObject(scorein4)) {
        scorein1.x = 702.3;
        p1.x = 650;
        p2.x = 650;
        p1.y = Math.ceil(Math.random() * 300) + 305;
        p2.y = p1.y - 335;

        start = true;
    } else if (flappy.hitTestObject(scorein1) && start == true) {
        scorein2.x = 702.3;
        p3.x = 650;
        p4.x = 650;
        p4.y = Math.ceil(Math.random() * -300) + 305;
        p3.y = p4.y - 335;

    } else if (flappy.hitTestObject(scorein2) && start == true) {
        scorein3.x = 702.3;
        p5.x = 650;
        p6.x = 650;
        p6.y = Math.ceil(Math.random() * -300) + 305;
        p5.y = p6.y - 335;

    } else if (flappy.hitTestObject(scorein3) && start == true) {
        scorein4.x = 702.3;
        p7.x = 650;
        p8.x = 650;
        p8.y = Math.ceil(Math.random() * -300) + 305;
        p7.y = p8.y - 335;

    }
} 

range函数:

stage.addEventListener(Event.ENTER_FRAME, range);

function range(event: Event) {
    if (limit.hitTestObject(flappy)) {
        flappy.x -= 2.5;
    }
    else if (wall.hitTestObject(flappy)) {
        flappy.y += 20;
    }
}

您的代码的问题在于,即使 flappyground 等对象不存在于您的场景中,您仍使该功能起作用。因此,在开始之前,您可以添加 if(flappy != null) 以使您的代码仅在 flappy 出现在舞台上时才有效。