【问题标题】:Javascript increment index on eventJavascript增加事件索引
【发布时间】:2012-10-17 19:46:07
【问题描述】:

我正在尝试找出一种方法来根据事件(例如鼠标左键单击点击区域)来增加数组的索引。下面的代码将所有内容设置为零,并在单击鼠标时将相应的索引短暂更改为 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;
    }   
}

【问题讨论】:

  • 向我们展示您注册活动的代码。

标签: javascript arrays indexing increment quartz-composer


【解决方案1】:

我不知道 Quartz Composer,但我确实知道您的代码有什么问题。每次触发此事件时,您确实将数组中的所有值设置回 0。

因此,您应该将以下代码行从您的方法中取出并进入更全局的范围(在当前类或真正的全局范围中)。

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

所以Hits应该是一个非本地数组,每个Hits[i]0的初始化应该只做一次;在执行开始时。

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 2017-12-07
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多