1

イベント (ヒット領域でのマウスの左クリックなど) に基づいて配列のインデックスをインクリメントする方法を見つけようとしています。以下のコードは、すべてをゼロに設定し、マウスがクリックされている間は適切なインデックスを一時的に 1 に変更しますが、マウスが離されると 0 に戻ります。私がしたいのは、インデックス値がインクリメントされるたびに、0 に切り替えるのではなく、現在の値を格納することです。最終的に、配列は混合数になるはずです。誰でも提供および支援できますか? 私は Quartz Composer 環境で作業していますが、まだ 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;
    }   
}
4

1 に答える 1

1

Quartz Composer についてはわかりませんが、コードの何が問題なのかはわかります。このイベントが発生するたびに、実際には配列内のすべての値を 0 に戻します。

したがって、次のコード行をメソッドから取り出して、よりグローバルなスコープ (現在のクラスまたは実際のグローバル スコープ) に移動する必要があります。

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

そのHitsため、非ローカル配列にする必要があり、各Hits[i]toの初期化は01 回だけ行う必要があります。実行の開始時。

于 2012-10-17T19:52:18.850 に答える