Actionscript 3 删除的对象未消失和2025错误,as3

Actionscript 3 删除的对象未消失和2025错误,as3,actionscript-3,flash,Actionscript 3,Flash,我正在尝试在网格地图上制作一个基于回合的策略游戏。为了移动你的角色,我使用点击检测来查看玩家想要的方向。我使用的代码删除了旧对象,我想,在右边的一个空格中添加了新对象。问题是,当我移除对象时,对象的图像仍保留在其开始的位置,而实际对象重新出现在正确的位置。然后,当我再次尝试时,flash抛出一个错误。这是代码 if(s == 0){ sarray[s] = [main, maincharacter, mc, 3] enemyiden = "gwr" }

我正在尝试在网格地图上制作一个基于回合的策略游戏。为了移动你的角色,我使用点击检测来查看玩家想要的方向。我使用的代码删除了旧对象,我想,在右边的一个空格中添加了新对象。问题是,当我移除对象时,对象的图像仍保留在其开始的位置,而实际对象重新出现在正确的位置。然后,当我再次尝试时,flash抛出一个错误。这是代码

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