持续运行功能,需要计算动作

时间:2016-08-29 15:33:38

标签: javascript switch-statement

我正在进行眼动追踪,并且我试图计算用户在屏幕上特定位置查看的次数。问题是当用户正在查看其中一个指定区域时,它将计数直到用户向外看。有没有办法设置超时功能或阻止功能连续计数?

function onGazePoint(gazePoint) {

latestGazePoint = gazePoint;

overwolf.windows.getCurrentWindow(function(result) {
    if (result.status == "success") {
        if (isGazePointWithinWindow(result.window, gazePoint)) {
            document.getElementById("content").style.opacity = "1.0";
            /*var hotspot = ;*/
            var hotspotNum = document.getElementById('content').getAttribute('data-value');
            /*document.getElementById("hotspotnr").innerHTML = hotspotNum; */
            console.log(hotspotNum); 
            var hotspot = 0; 
            switch(hotspotNum) {
                case '1':            
                    document.getElementById("numberOfLooks").innerHTML = maplooks++; 
                    break;
                case '2':
                    document.getElementById("numberOfLooks").innerHTML = hotspotNum; 
                    break;
                case '3':
                    document.getElementById("numberOfLooks").innerHTML = hotspotNum; 
                    break;
                case '4':
                    document.getElementById("numberOfLooks").innerHTML = hotspotNum; 
                    break;
                default:
                    console.log(new Date().getTime(), hotspotNum); 
            }
        } 
        else {
            document.getElementById("content").style.opacity = "0.4";               
        };
    }
});

}

1 个答案:

答案 0 :(得分:1)

要解决计数问题,必须使用布尔变量作为信号量。例如,您将其值设置为false,并且用户第一次在该区域中查找您将值设置为true并计数1.然后,直到标志值为true,您将停止计数,当用户停止查看此区域时,您将重置标志为假。