如何在Actionscript 3中检查一组布尔值是否都是真的?

时间:2014-07-19 06:52:48

标签: arrays actionscript-3 flash boolean

嗯,技术上不是所有的布尔人。我有一个数组(ArrayMain),它将一个播放器和一堆其他的动画片段存储在一个数组中,我还有另一个布尔数组(这对应于ArrayMain,叫做ArrayDeadCheck)我需要检查。

我的播放器是数组中的第一个,因此它占用ArrayMain [0]并且在ArrayDeadCheck中将始终为false(它永远不会死)。我需要遍历ArrayDeadCheck的其余部分(这可能会有所不同,因为我的敌人数量从一个级别到另一个级别可能会发生变化,因此ArrayMain的长度可能会有所不同)。所以我需要做这样的事情?:

for (var i:int=1; i < ArrayMain.length; i++)
{ 
    //Code/condition?? that does this: 
    //if all of the Booleans in ArrayMain from 1 to n are true

    if (Insert condition here)

    {

    //trigger another Boolean called EndGame to end the game

    EndGame = true;

    }
}

很抱歉,如果这是一个重复的问题(我看到了一个类似的问题,但那是在Java中,请转换AS3?)或者如果它的格式很奇怪,那么这是我的第一个问题。请帮忙!!非常感谢你,如果有人能够提供帮助的话:)。

2 个答案:

答案 0 :(得分:2)

如果您要做的就是检查数组中是否有false,您可以在表单中使用indexOf函数:

if(ArrayMain.indexOf(false) == -1)
{
    //all true
}
else 
{
    //there is at least on false values
}

这就是全部:)

P.S。 ArrayMain是变量名称的不良选择,它适合类名

答案 1 :(得分:0)

var alive:bool = true;
for (var i:int=1; i < ArrayMain.length; i++)
{ 
  if ( ArrayDeadCheck[i] )
     continue; // the loop will skip over the rest of the code to the next position

   alive = false;
   break; // stops the loop
}
if (alive) // this means all elements in the array were true.
   // do whatever is needed.

基本上这段代码只是在求助(alive)处变量,在循环结束时检查一个布尔值。 将检查所有数组元素,只要其中一个元素不为真,数组就会被破坏。

- 您可能需要稍微修改一下代码。我以前从未在Acgtionscript中编码。

Go to this site,然后向下滚动到“中断并继续”