2012-05-22 57 views
3

请大家帮帮我:使可点击区域在画布上改变图像

  • 在低于画布我可以分配onmousedown事件=事件来创建可点击区域。我知道如何用无形的DIV做到这一点,但我认为在画布上有一种更优雅的方式,我不知道。

  • 当我点击其中一个区域时,想要将图像名称传递给一个函数,以便它将显示的图像更改为另一个图像,然后将其更改回onmouseup。

如果你给我看一个区域和一个mousedown/mouseup例子,我可以做其余的......谢谢。

<!DOCTYPE HTML> 
<html> 
<head> 
</head> 
<body> 

     <canvas id="myCanvas" width="506" height="319" style="border:1px solid #c3c3c3;"> 
     Your browser does not support the canvas element. 
     </canvas> 

     <script type="text/javascript"> 
     var c=document.getElementById("myCanvas"); 
     var ctx=c.getContext("2d"); 
     var img=new Image(); 
     img.onload = function(){ 
     ctx.drawImage(img,0,0); 
     }; 
     img.src="firstImage.gif"; 
     </script> 

     /////////HERE NEED///////// 
        CREATE CLICKABLE REGION <region> 
        <region> 
        onmousedown=changeCanvasImage(secondImage.gif) //change image on click 
        onmouseup=changeCanvasImage(firstImage.gif) /change it back when done 
     </region> 
</body> 
</html> 

回答

5

canvas元素可以触发事件,但画布中的图形元素不能。要做到这一点,您需要自己实现它,方法是单击position of the mouse on the canvas,然后将值与画布中的某个值相关联,或者使用可用的许多canvas libraries之一来处理您的检测。