0
votes

I'm making this winterbells kind of game, and it's gives me this error, but only when i hit the first object.

This is the code:

package{
import flash.display.MovieClip;
import flash.events.*;
public class Brandstof extends MovieClip {

    var _root:Object;//Dit symboliseert de hoofd-tijdlijn

    public function Brandstof() {
        addEventListener(Event.ADDED, beginClass);
        addEventListener(Event.ENTER_FRAME, eFrame);
    }

    private function beginClass(e:Event):void{
        _root = MovieClip(root);

        if(_root.brandstofAantal == 1){//Ervoor zorgen dat de brandstoftankjes, als het de eerste is, random op de stage komen
            this.x = Math.random()*525;
            _root.brandstofLaatsteCoord = this.x;
        } else {
            //Om ervoor te zorgen dat de nieuwe bel niet te ver weg is van de eerder, plaats met een afstand van 250px
            this.x = _root.brandstofLaatsteCoord + (Math.random()*500)-250;
            if(this.x > 537.5){//Ervoor zorgen dat de brandstoftonnetjes binnen de stage blijven
                this.x -= 250;
            } else if (this.x < 12.5){
                this.x += 250;
            }
        }
        this.y = _root.brandstofTop;//zorgen dat de y-waarde niet op de stage zit
    }
    private function eFrame(e:Event):void{
        this.y += 3;//Ervoor zorgen dat de brandstoftonnetjes langzaam naar beneden gaan
        if(this.hitTestObject(_root.mcRaket)){//ervoor zorgen dat mcRaket omhoogspringt als ie een object raakt
            _root.characterSpringen = true;
            _root.springSnelheid = _root.springSnelheidLimiet*-1;//springsnelheid resetten

            this.removeEventListener(Event.ENTER_FRAME, eFrame);//de listeners weghalen en van stage verwijderen
            _root.brandstofHolder.removeChild(this);
        }
    }
}
}

This is the error:

ArgumentError: Error #2025: Het opgegeven DisplayObject moet een onderliggend item van de aanroeper zijn. at flash.display::DisplayObjectContainer/removeChild() at Brandstof/eFrame()

I'm kind of a newbie, and i'm following a tutorial.

1
can you translate your error to English?BadFeelingAboutThis
Sure, it basicly means: The supplied DisplayObject must be a child of the caller. AS3user3798321

1 Answers

0
votes

The error is because of this line:

_root.brandstofHolder.removeChild(this);

According to flash player, _root.brandstofHolder is not the parent of this.

A safer way to do this, would be the following:

if(this.parent) this.parent.removeChild(this);

That way this is only removed if it's on the displayList (has a parent) and no matter what you set the parent to you are removing it from the right object.