抱歉我的英文不好,
Hello guys ^ _ ^,我是新手尝试使用createjs和Flash CC。
我在Flash CC(html5 Canvas)中使用简单的hitTest函数创建应用程序,但看起来似乎无法正常工作。画布上有两个对象(一个movieclip类型对象)(我将它放在名为&#34的数组上; arrTmbl"),当我尝试鼠标悬停在它上面时,控制台日志总是显示" Not Hit& #34;,这是我的代码:
var arrTmbl = ['tmbl0', 'tmbl1'];
var update = true;
stage.enableMouseOver(10);
stage.addEventListener("tick", f_tick);
function f_tick() {
if (update) {
update = false;
stage.update();
}
}
for (var i in arrTmbl) {
this[arrTmbl[i]].addEventListener("mouseover", function (e) {
var pt = e.currentTarget.globalToLocal(stage.mouseX, stage.mouseY);
if (e.currentTarget.hitTest(pt.x, pt.y)) {
console.log("Hit");
} else {
console.log("Not Hit");
}
});
this[arrTmbl[i]].addEventListener("pressmove", function (evt) {
evt.currentTarget.x = evt.stageX;
evt.currentTarget.y = evt.stageY;
update = true;
});
this[arrTmbl[i]].addEventListener("pressup", function (jvt) {
jvt.currentTarget.gotoAndPlay("hit");
});
}
感谢您的帮助,
答案 0 :(得分:0)
在这种情况下没有理由做hitTest
。 mouseover
监听器完全是多余的。您可以将逻辑简化为:
for (var i in arrTmbl) {
this[arrTmbl[i]].addEventListener("mouseover", function (e) {
console.log("Hit");
});
}
mouseover
事件仅在currentTarget
的匹配测试已返回true时触发。