【发布时间】:2013-11-06 08:19:50
【问题描述】:
我正在尝试开发可以在画布中呈现图像和文本的程序。我试图处理画布中的图像点击,但它适用于可调整的图像。
我的问题:您知道处理点击画布中图像可见部分(非透明部分)的解决方案或框架吗?
如果有人熟悉的话,我正在寻找 ActionScript hitTestObject 函数的 javascript 实现。
这是带有可调整命中文本的简单算法:http://jsfiddle.net/V92Gn/298/
var hitted = e.clientX >= position.x &&
e.clientX <= position.x + logoImg.width &&
e.clientY >= position.y &&
e.clientY <= position.y + logoImg.height;
【问题讨论】:
-
请分享您目前尝试过的代码。小提琴会很棒。您可以通过抓取一个像素来测试图像的透明度并比较其 alpha 值。但这里 CORS 将适用。
-
对于 CORS,Ken 的意思是跨域资源共享。如果您从其他域下载图像,则适用。
-
jsfiddle.net/V92Gn/301 - 红色匹配,由于 CORS,在小提琴中不可能透明。 p.s. Fiddle 应该托管更多图像进行测试...
-
如果画布中的图像来自其他域,为什么 CORS 不允许使用 getImageData。浏览器中此安全规则的原因是什么?
标签: javascript canvas hittest