我在制作这个冬铃游戏,它给了我这个错误,但只有当我击中第一个物体时。
这是代码:
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 moet,onderliggend项目van de aanroeper zijn。flash.display::DisplayObjectContainer/removeChild() at Brandstof/eFrame()
我是个新手,我在学习一个教程。
发布于 2014-07-02 16:43:42
错误是因为这一行:
_root.brandstofHolder.removeChild(this);根据flash播放器,_root.brandstofHolder不是this的父级。
这样做的一个更安全的方法是:
if(this.parent) this.parent.removeChild(this);这样,只有在this位于displayList (有父对象)的情况下才会删除它,并且无论您将父对象设置为什么,都要将其从正确的对象中删除。
https://stackoverflow.com/questions/24535036
复制相似问题