【发布时间】:2015-04-29 20:17:08
【问题描述】:
假设我这样做了:
- 保存画布并应用变换,比如
A - 在点
(x, y)绘制一个形状(矩形等),给它一个id,"pointer-#{itoa}" - (随机重复,这样我们会得到一堆保存的画布状态)
- 恢复画布状态
- 随机重复
现在有一个点击事件,我想找出被点击的那个形状的 ID。有什么工具可以做到这一点吗?
我想提一下,我正在尝试实现基于 Canvas(项目名称 Quamolit)的 HTML 子集,以更好地支持过渡。并且在一些变换之后找出点击了哪个元素成为一个大问题。
同时,我试图让 Quamolit 中的每个元素都以一些标量(translateX、translateY、旋转、缩放)来描述,以使它们易于插值。
【问题讨论】:
-
@KenFyrstenberg 我认为“事件系统”是指框架正在处理点击的整个事情,而困难的部分是在转换之后,我几乎无法找出点击的像素属于哪个对象。 Eventor 好像是 EventEmitter 什么的?
-
是的,有很多库可以帮助跟踪和“移动”画布上的单个绘图。请记住,画布上的单个绘图不能真正移动。所发生的情况是画布被清除,并且绘图被重新绘制到新的所需位置。由于 SO 并不意味着作为库推荐的来源,您可以通过谷歌搜索找到许多好的画布库:“html 画布库”。
-
@markE 我想要的库是“react-canvas”。不幸的是,它还不支持转换。我发现fabric.js 确实会拖拽移动。我稍后会研究。