Actionscript 3 删除的对象未消失和2025错误,as3
我正在尝试在网格地图上制作一个基于回合的策略游戏。为了移动你的角色,我使用点击检测来查看玩家想要的方向。我使用的代码删除了旧对象,我想,在右边的一个空格中添加了新对象。问题是,当我移除对象时,对象的图像仍保留在其开始的位置,而实际对象重新出现在正确的位置。然后,当我再次尝试时,flash抛出一个错误。这是代码Actionscript 3 删除的对象未消失和2025错误,as3,actionscript-3,flash,Actionscript 3,Flash,我正在尝试在网格地图上制作一个基于回合的策略游戏。为了移动你的角色,我使用点击检测来查看玩家想要的方向。我使用的代码删除了旧对象,我想,在右边的一个空格中添加了新对象。问题是,当我移除对象时,对象的图像仍保留在其开始的位置,而实际对象重新出现在正确的位置。然后,当我再次尝试时,flash抛出一个错误。这是代码 if(s == 0){ sarray[s] = [main, maincharacter, mc, 3] enemyiden = "gwr" }
if(s == 0){
sarray[s] = [main, maincharacter, mc, 3]
enemyiden = "gwr"
}
else if(s == 1){
sarray[s] = [mcaxe, mainaxe, mcaxeman, 3]
enemyiden = "gar"
}
else if(s == 2){
sarray[s] = [mchorse, maincav, mccavalry, 5]
enemyiden = "gcr"
}
for(var g:int = 0; g < tilepositions.xcoords.length; g++){
if(tilepositions.xcoords[g] == Allies[s][0] - 12.5){
break
}
}
for(var h:int = 0; h < tilepositions.ycoords.length; h++){
if(tilepositions.ycoords[h] == Allies[s][1] - 12.5){
break
}
}
if(mouseX < Allies[s][0] && Math.abs(mouseX - Allies[s][0]) < 37.5 && Math.abs(mouseY - Allies[s][1]) < 12.5 ){
trace("test1")
this.removeChild(sarray[s][0])
sarray[s][0] = new Sprite
this.addChild(sarray[s][0])
trace(this.contains(sarray[s][0]))
sarray[s][1] = new sarray[s][2]
sarray[s][0].addChild(sarray[s][1])
sarray[s][0].x = tilepositions.xcoords[g-1]
sarray[s][0].y = tilepositions.ycoords[h]
Allies[s][0] = sarray[s][0].x + 12.5
movecurr[s] += 1
break
}
s是向上计数的for循环变量。任何帮助都将不胜感激。问题在这一行中:this.removeChildsarray[s][0]。错误说明了一切:ArgumentError:Error2025:提供的DisplayObject必须是调用者的子对象,这意味着sarray[s][0]不是调用者的子对象。没有神奇的方法告诉您原因,我们不知道,但是如果您解决了这个问题,问题就会解决:谢谢您的回答。不过,我希望得到更多的帮助。我在某种程度上解决了这个问题,因为错误不再发生,但是,原始对象仍然没有消失。如果更多的资料对你有帮助,我很乐意发布。你需要了解AS3的基本原理。我不能用魔术棒帮助你,尤其是当你有一个需要调试的整个项目时。您只需要删除与添加的对象完全相同的对象。最好在removeChild之前使用contains,如果您认为var i:uint=0有一些剩余的用法,还可以跟踪所有子级;i