我正在嘗試進行視頻測驗,當您單擊它時,會向數組中添加值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