我正在尝试进行视频测验,当您单击它时,会向数组中添加值1。数组大小上升到[9],我试图从数组中读取数据,如果[0]和[9]之间的数组中存在1的值,它会将1加到计数器中。AS3 - 检查数组的结果并将其添加到计数器中
我有它只是在数组中的第一个值,所以我知道它的工作,但我不知道如何使它从所有阵列的读,以检查1.
值继承人我的代码到目前为止:
if (clickTimes[0] == 1)
{
counter2++;
}
我正在尝试进行视频测验,当您单击它时,会向数组中添加值1。数组大小上升到[9],我试图从数组中读取数据,如果[0]和[9]之间的数组中存在1的值,它会将1加到计数器中。AS3 - 检查数组的结果并将其添加到计数器中
我有它只是在数组中的第一个值,所以我知道它的工作,但我不知道如何使它从所有阵列的读,以检查1.
值继承人我的代码到目前为止:
if (clickTimes[0] == 1)
{
counter2++;
}
如何使用循环?
for (var i:int = 0; i < clickTimes.length; ++i)
{
if (clickTimes[i] == 1)
counter2++;
}
这将递增counter2
,对于具有为1的值,则clickTimes
阵列中的每个元件。
更好的是,使用for each...in
循环。它与普通的for
循环没有什么不同,但它确实提供了一些共同的糖。
for each (var i:int in clickTimes)
{
if (i == 1)
{
counter2++;
}
}
对于它的美丽......
counter2 = clickTimes.join('').replace(/0/g, '').length;
它把所有的值在一个字符串,删除零和计数留下的字符。
var clickTimes:Array = [1,1,1,0,0,0,1,1,0] // 5 1's and 4 0's
var counter2:int = 0
clickTimes.forEach(function(obj:*){
if (obj == 1){
counter2++;
}
})
trace(counter2) // traces 5
谢谢,我最终使用了它,它效果很棒! – jjhilly 2013-04-24 15:46:58
您不需要if
。就在下面:
var clickTimes:Array = [1,1,1,0,0,0,1,1,0] // 5 1's and 4 0's
var counter2:int = 0;
for each (var i:int in clickTimes)
{
counter2 += i;
}
trace(counter2); //5
感谢您的快速反应,这种工作对于刚刚1点击,但似乎并没有被工作了超过1 我在一个动态文本框输出计数器2是否有帮助。 – jjhilly 2013-04-24 14:16:12
@jjhilly那么你是否试图增加'counter2'如果至少有一次点击? – David 2013-04-24 14:19:05
@david在第1帧中有一个视频带有错误,如果您通过在正确的时间点击来确定这些视频,它会将数值1添加到数组中,则有10个错误需要识别。在下一帧显示结果,所以我试图从数组中读取,然后将计分添加到计数器,以便我可以在动态文本框中将其输出为字符串。 – jjhilly 2013-04-24 14:21:43