测试一个点是否与画布上的一个字符重叠
Testing whether a point overlaps a character on the canvas
我有一个画布,我需要在javascript中绘制文本,然后测试给定点是否与文本重叠。
我想知道这是否可能使用画布(context.fillText(…)),然后进行某种测试(如果(重叠(textobject, {x:12, y:10{})),或者我是否需要在SVG中绘制字符,所以我有坐标,可以从那里排序?
我相信有一些库已经开始为这类事情弹出,但我今天的谷歌技能遇到了麻烦。
我可以想到几种方法来解决这个问题,除非你需要将文本绘制到画布上进行某种类型的像素操作…
一种方法是将文本浮动在canvas元素上(position: absolute;),然后用jQuery测试悬停事件。另一种方法是在canvas元素的文本周围创建一个框,然后检测鼠标何时在这些范围内。
如果您正在寻找最准确的测试,svg将是您的选择。
您也可以尝试一个库,看看他们是否已经创建了这个功能。画架js
更新:作为一个开放网络和omg HTML5的粉丝,我完全忽略了Flash。事实证明,这是我想做的最好的媒介。由于actionscript和JS是如此的相似,逻辑是复制粘贴的工作。
感谢成堆的答案,它最终是一个巨大的问题,所以我在Illustrator中画了我的角色,打开网格,创建了一个网格穿过角色的数组,然后把它变成一个JS数组。我将在完成后发布一个链接。
相关文章:
- 将多个重叠的透明图像保存为一个图像
- 正在检测Html元素是否与另一个Html元件重叠
- Svg文本元素被另一个Svg元素重叠
- 完整日历(议程周视图):标题与一个月重叠的周的格式
- 查找范围数组中的重叠部分,并使用新的分块范围构建一个新数组
- 我可以使用CSS将一个图像的一半与另一个重叠吗
- Div是重叠前一个Div和打破前一个Div的功能
- 确定一个节点是否与另一个节点重叠
- 是否有可能使整个img可点击,即使它通过z-index与另一个元素重叠
- 用JS循环创建的元素与另一个元素重叠
- 淡出/淡出使DIV's堆叠而不是重叠?使用& # 39;绝对# 39;这不是一个解决方案
- 如何让多个重叠的标记在谷歌地图上打开自己的信息窗口,当一个被点击
- 添加一个不重叠的元素
- 测试一个点是否与画布上的一个字符重叠
- 如何检测一个元素是否被另一个元素覆盖/重叠
- 在一个物体中重叠的数字
- 修复一个重叠的html头Javascript错误
- 滑块-幻灯片重叠-两个幻灯片显示在一个帧中
- 如何在我的绘图图像上重叠一个画布圆圈,并设置cordinate和event
- kineticjs当一个形状与另一个形状重叠时停止拖动