2012-10-17 23 views
1

我想找出一種方法來增加基於事件的數組索引(例如在命中區域上單擊鼠標左鍵)。下面的代碼將所有內容都設置爲零,並在鼠標單擊時將適當的索引短暫地更改爲1,但一旦釋放鼠標便將其更改爲0。我想要發生的是每次索引值遞增,然後存儲其當前值而不是切換到0.最後,數組應該是混合數字。任何人都可以提供和協助?我在Quartz Composer環境中工作,但仍在JavaScript補丁中。事件的Javascript增量索引

function (__structure out) main (__structure Pos, __boolean Left, __number X, 
      __number Y, __number W, __number H, __number ShiftX, __number ShiftY) { 

    if (!_testMode) { 
     len = Pos.length; 
     Hits = new Array() 
      for (i = 0; i < len; i++) { 
       Hits[i] = 0 
      } 
      for (j = 0; j < len; j++) { 
       if (Pos[j][1] >= (X-(W/2)) && Pos[j][1] <= (X +(W/2)) && 
        Pos[j][0] >= (Y-(H/2)) && Pos[j][0] <= (Y +(H/2)) && Left) { 
       Hits[j]++ 
       } 
      } 

    result = new Object(); 
    result.out = Hits; 
    return result; 
    } 
} 
+1

向我們展示您註冊事件的代碼。 –

回答

1

我不知道Quartz Composer,但我確實看到你的代碼有什麼問題。每次發生此事件時,都確實將陣列中的所有值都設置爲0.

因此,您應該從方法中取出以下幾行代碼並放入更全局的作用域中(在當前類中或者在真正的全球範圍內)。

Hits = new Array() 
for (i=0;i<len;i++){ 
    Hits[i] = 0 
} 

所以Hits應該是一個非本地陣列,並且每個Hits[i]0的初始化應該做一次;在執行的開始。