我正在尝试为学校项目制作真正简单的游戏,而且我是ActionScript 3的新手。我刚学会了如何通过代码将对象作为子对象调用到场景中,但是我在移除它们时遇到了问题。删除实际上有效,但会出现错误,如
"ArgumentError: Error #2025:
at flash.display::DisplayObjectContainer/removeChild()
at breathe_bw_fla::MainTimeline/bulletSpeeder()"
我创建了两个子弹对象,一个朝左,另一个朝右。它们显示了枪在现场的位置。它们向左或向右移动,我想在它们离开现场后将它们移除,并且当角色第二次射击时它们将被再次调用。
function shoot(event:KeyboardEvent) {
if(event.keyCode == 32 && shootCooldown > 48 && rightOrLeftDown == true && ammo > 0) {
ammo -= 1;
shootCooldown = 0;
if(rightDown == true){
addChild(bulletGoingRight);
bulletGoingRight.x = character.x+character.width/2;
bulletGoingRight.y = character.y;
stage.addEventListener(Event.ENTER_FRAME, bulletSpeeder);
}
if(leftDown == true){
addChild(bulletGoingLeft);
bulletGoingLeft.x = character.x-character.width/2;
bulletGoingLeft.y = character.y;
stage.addEventListener(Event.ENTER_FRAME, bulletSpeeder);
}
}
}
function bulletSpeeder(Event){
if(bulletGoingLeft.x > -10){
bulletGoingLeft.x -= 10;
}
if(bulletGoingLeft.x <= -10){
removeChild(bulletGoingLeft);
}
if(bulletGoingRight.x < 760){
bulletGoingRight.x += 10;
}
if(bulletGoingRight.x >= 760){
removeChild(bulletGoingRight);
}
}
答案 0 :(得分:0)
有关寻找答案的人的更多信息。错误#2025是
The supplied DisplayObject must be a child of the caller.
来自http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/runtimeErrors.html
基本上你是想删除一个没有父对象的对象,或者是另一个对象的子对象。
让对象自行删除的简单方法是:
if( this.parent != null )
this.parent.removeChild( this );
或
if( obj.parent != null )
obj.parent.removeChild( obj );
如果你没有使用课程