canvas的事件只能监听在canvas标签上,而不嗯那个想其他dom元素那样,所以针对canvas里面的图形监听事件是比较麻烦的。
通过isPointInPath(x,y); 这个方法用于判断某一点的坐标是否在最新绘制的图形内。用法如下:
oC.onmousedown = function(ev){
var ev = ev || window.event;
var x = ev.clientX - oC.offsetLeft;
var y = ev.clientY - oC.offsetTop; if( oGC.isPointInPath(x,y) ){
alert(123);
}
};
不过这个方法只能判断某点是不是在最新绘制的图形内,所以每次判断,都是要判断的图形重绘。
有一个好用的canvas库,http://jcscript.com/
里面提供了很多方法绘图和事件操作。例如:
jc.start('c1',true); jc.circle(100,100,50,'#ff0000',1).click(function(){
alert(123);
});
jc.start('c1');