错误#2025:提供的DisplayObject必须是调用者

时间:2016-04-29 15:53:21

标签: actionscript-3 actionscript removechild displayobject

我需要帮助学校使用Actionscript。这是一个简单的捕捉游戏。 它一直说我的显示对象必须是它应该是的孩子的调用者并且它有点工作但是我不知道如何解决我的兔子对象落入我的点角色的问题并且在给我一个错误时它与点角色碰撞,当它没有被抓住时撞到地板上。孩子应该存在,但我想它并不存在。我不知道该怎么做。评论的东西是我在另一个文件上测试的东西并将其转移到它看看它会做什么。

//Block = Asuka
//Ball = Bunny
//Ballz = Bunz
//Bunny is linked in library
import flash.events.Event;

var intervalBunny = setInterval(addBunny, 1000);

var bunz: Array = [];

function addBunny() {
    var bunny: Bunny = new Bunny();
    bunny.x = Math.ceil(Math.random() * 500);
    bunny.y = -50;
    addChild(bunny);
    bunz.push(bunny);
    bunny.addEventListener(Event.ENTER_FRAME, dropBunny);
}

function dropBunny(e: Event) {
    var b: Bunny = Bunny(e.target);
    b.y += 10;
    if (b.y > 400) {
        eliminatebunz(b);
    }
}

stage.addEventListener(Event.ENTER_FRAME, moveAsuka);

function moveAsuka(e: Event) {
    Asuka.x = mouseX;
    for (var i: int = 0; i < bunz.length; i++) {
        trace(i);
        if (Asuka.hitTestObject(bunz[i])) {
            eliminatebunz(bunz[i]);
            //points
        }
    }
}

function eliminatebunz(p) {

    p.removeEventListener(Event.ENTER_FRAME, dropBunny);
    removeChild(p);
}

这里的代码任何有关如何修复它的帮助都会非常感激,特别是因为我不是一个大编码器而且我更像是一个艺术家/插画家

1 个答案:

答案 0 :(得分:0)

这样做:

function eliminatebunz(p) 
{
    if(p)
    {
        p.removeEventListener(Event.ENTER_FRAME, dropBunny);
        if(p.parent)
        {
            removeChild(p);
        }
    }        
}