我正在进行眼动追踪,并且我试图计算用户在屏幕上特定位置查看的次数。问题是当用户正在查看其中一个指定区域时,它将计数直到用户向外看。有没有办法设置超时功能或阻止功能连续计数?
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";
};
}
});
}
答案 0 :(得分:1)
要解决计数问题,必须使用布尔变量作为信号量。例如,您将其值设置为false,并且用户第一次在该区域中查找您将值设置为true并计数1.然后,直到标志值为true,您将停止计数,当用户停止查看此区域时,您将重置标志为假。