Actionscript错误ArgumentError:错误#2025:

时间:2014-07-02 15:22:15

标签: actionscript-3

我正在制作这种冬季花球游戏,它给了我这个错误,但只有当我击中第一个物体时。

这是代码:

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);
        }
    }
}
}

这是错误:

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

我是一个新手,我正在按照教程。

1 个答案:

答案 0 :(得分:0)

错误是因为这一行:

_root.brandstofHolder.removeChild(this);

根据Flash播放器的说法,_root.brandstofHolder不是this的父级。

更安全的方法是:

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

那样this只有当它出现在displayList(有一个父对象)时才被删除,无论你设置父对象是什么,你都要从正确的对象中删除它。