您的位置:首页 > 其它

canvas isPointInPath

2015-08-22 17:05 183 查看
由于isPointInPath方法仅判断当前上下文环境中的路径,所以当Canvas里已经绘制了多个图形时,仅能以最后一个图形的上下文环境来判断事件。例如,如果我们最后画的是右腿,那么我们只能判断是否点击了右腿,而不能判断身体的其他部分——右腿最后画。 这种问题的解决方法是:当点击事件发生时,重绘所有图形,每绘制一个就使用isPointInPath方法,判断事件坐标是否在该图形覆盖范围内。


isPointInPath只对当前路径有效!测试了这两个fillRect()和strokeRect()方法不支持   

bezierCurveTo 支持的
Lineto 部分浏览器 支持 部分浏览器 不支持

也就是说你不能画了10条路径后突然跑去判断点是不是在第1条路径之中.

为什么要这样呢?因为canvas中路径是不能保存的,不能像一个变量那样保留起来供后面再用.这样一来你想要重现这个路径的话,惟一的办法就是:按照之前的值,之前的函数,重新画一遍.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: