[英]How do I click on an event that uses an object in the javascript canvas?
这是我的脚本代码。
<body onload= "startGame()">
<script>
var Earth;
var Mercury;
var Venus;
function startGame() {
Earth = new component(152, 183, 'earth.png', 800, 75);
Mercury = new component(122,151, 'mercury.png', 300, 400);
Venus = new component(152, 183, 'venus.png', 520, 240);
GameArea.start();
}
var GameArea = {
canvas : document.createElement("canvas"),
start : function() {
this.canvas.width = 1000;
this.canvas.height = 642;
this.context = this.canvas.getContext("2d");
document.body.insertBefore(this.canvas, document.body.childNodes[0]);
this.interval = setInterval(updateGameArea, 20);
},
clear : function() {
this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
}
}
//make game pieces
function component(width, height, color, x, y) {
this.type = "image";
this.image = new Image();
this.image.src = color;
this.width = width; this.height = height;
this.x = x; this.y = y;
this.update = function() {
ctx = GameArea.context;
ctx.drawImage(this.image, this.x, this.y, this.width, this.height);
}
}
function updateGameArea() {
GameArea.clear();
Earth.update();
Mercury.update();
Venus.update();
}
</script>
</body>
该代码是在打开浏览器时启动startGame()函数。 我画画布,并在画布上显示行星。 请参考图片。 这是当JavaScript在运行图像上时。 他们有一个地球,水星,金星。 那个星球都是物体...。如果我认为...
当用户单击“地球”对象时,我想单击事件。但是我不知道该怎么做。...我应该指的是什么? 请给我建议..! 谢谢。
你不能,真的。 在画布上绘制时,实际上是在绘制一个大的位图图像。 您绘制的形状将添加到其中,仅此而已。 它们实际上不是对象。
您有两种选择:
click
事件,获取鼠标坐标,并使用该坐标推断单击了哪个对象。 基本上,您将必须跟踪“行星”在画布上的位置,然后在画布本身上设置事件侦听器。 从那里,您可以获取click事件的坐标,并遍历所有Planets进行测试。
HTML:
<form id="myCanvas" ... >
</form>
获取画布元素:
var Earth = document.getElementById('myCanvas');
要将click事件添加到画布元素,请使用...
Earth.addEventListener('click', function() { }, false);
检查这与上述有关@Brother伍德罗信息例如
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.