Ошибка № 2025: предоставленный 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);
}

Вот код. Любая помощь в том, как это исправить, будет ОЧЕНЬ признательна, тем более, что я не большой программист, и я больше художник / иллюстратор.


person Ryu Goomba    schedule 29.04.2016    source источник
comment
Проблема будет в строке removeChild (). Как-то дважды снимаешь кролика. Похоже, что каким-то образом ваш moveAsuka обнаруживает попадание после того, как dropBunny вызывает excluBunz.   -  person Amy Blankenship    schedule 29.04.2016
comment
Что бы я сделал, чтобы этого не произошло? Есть ли у меня как родитель. Убрать ребенка или что-то ближе к концу? если вы хотите видеть, что происходит, когда я играю в игру, у меня есть ссылка twitter.com/ RyuGoomba / status / 726095888402268160   -  person Ryu Goomba    schedule 29.04.2016


Ответы (1)


Просто сделай это:

function eliminatebunz(p) 
{
    if(p)
    {
        p.removeEventListener(Event.ENTER_FRAME, dropBunny);
        if(p.parent)
        {
            removeChild(p);
        }
    }        
}
person BotMaster    schedule 29.04.2016
comment
Боже мой, спасибо вам большое, единственное, что немного напортачило, это добавленные мной пункты, но спасибо, что он работает так, как должен - person Ryu Goomba; 29.04.2016