Actionscript 3 如何从数组中删除元素,从stage中删除子元素

Actionscript 3 如何从数组中删除元素,从stage中删除子元素,actionscript-3,Actionscript 3,因此,我目前正在尝试从阵列“僵尸部落”中删除一个元素,并从舞台上删除子元素。我的目标结果是,一个作为阵列一部分的电影剪辑被随机播放,当播放结束时,帧变为gameover帧。 这是我的代码: 大循环的一部分: for each (var zom:Betherino in zombie_horde) { var frame = zom.currentFrame trace(frame) if(frame == zom.lastframe) { updatearray()

因此,我目前正在尝试从阵列“僵尸部落”中删除一个元素,并从舞台上删除子元素。我的目标结果是,一个作为阵列一部分的电影剪辑被随机播放,当播放结束时,帧变为gameover帧。 这是我的代码:

大循环的一部分:

for each (var zom:Betherino in zombie_horde)

{
var frame = zom.currentFrame
trace(frame)
if(frame == zom.lastframe)
    {
        updatearray()
    }
    else{
    zom.gotoAndStop(frame+1)
    }
职能:

function updatearray()
{

zombie_horde.splice();

trace('spliced')
}


function removeBetherino()
{

stage.removeChild(Betherino)
}
这就是我目前所拥有的。我想知道我应该如何继续处理这种情况,即从阵列和舞台上删除电影剪辑(作为链接“Betherino”)

抱歉,我对堆栈溢出还是新手:(
我还没有准备好改变画面的部分,任何关于想法的建议都会很好!

要“从阵列和舞台上移除元素,然后进入游戏画面”,有三个步骤:


  • 从数组中删除该元素
  • 从阶段中移除元素
  • 跳转到画面上方的游戏
最后一个问题,我认为最好留给你。你的问题中没有与gameover帧相关的代码,所以我不能帮你

然而,其他因素

for each (var zom:Betherino in zombie_horde){
    var frame = zom.currentFrame
    trace(frame)
    if(frame == zom.lastframe)
    {
        updatearray()
    }
    else{
        zom.gotoAndStop(frame+1)
    }
}
你检查了僵尸部落中的每一个僵尸,如果它在最后一帧,你试着移除它

这意味着这些僵尸只是通过动画播放然后消失。听起来很奇怪。这真的是你想要的代码吗

接下来,您可以使用
updatearray
从阵列中移除僵尸。但是您可以通过
zombie\u horde.splice()执行此操作
。这不起作用。如果查看,您将看到它需要2个以上的参数:
startIndex:int,deleteCount:uint,….values
。也就是说,第一个参数是开始删除的起始索引,第二个参数指定要删除的数量,之后的任何参数都会添加回列表中

zombie_horde.splice(zombie_horde.indexOf(zom), 1);
当内联时,将执行您想要的操作

至于从stage中删除元素,您需要传递一个对象。
stage.removeChild(Betherino)
不是正确的方法,而是内联使用
stage.removeChild(zom)
。这使得此函数:

for each (var zom:Betherino in zombie_horde){
    var frame = zom.currentFrame
    trace(frame)
    if(frame == zom.lastframe)
    {
        zombie_horde.splice(zombie_horde.indexOf(zom), 1);
        stage.removeChild(zom);
        //go to gameover frame and exit for loop
    }
    else{
        zom.gotoAndStop(frame+1)
    }
}

“转到游戏结束帧”注释仍需替换为相关代码。

我不清楚您的问题。您希望它不仅从阵列和舞台上删除元素…还需要转到gameover框架…并且是随机选择的?嗯?从阵列和舞台上删除元素,然后转到gameover框架。谢谢!但是由于某种原因,在我得到的输出中,ArgumentError#2025:提供的DisplayObject必须是调用方的子对象。@Pita这意味着
zom
不在舞台上。哦,我正试图从舞台上删除betherino的电影剪辑。你做错了太多事情,需要仔细查看文档。好的,对不起,我真的是新手对这个编程的事情。