可点击的行星

时间:2013-09-16 13:44:35

标签: javascript mouse onmousedown

我试图让行星在点击时发出警告信息。 问题是,在我测试的过程中,onmousedown仅适用于画布。 行星代码:

var planets = [];
for (var b=0;b<3;b++) {
planets.push(planet(0,360,Math.random()*600,Math.random()*600));
}

function planet(I,shiips,xpos,ypos){
I = I||{};
I.ships = shiips;
I.x=xpos;
I.y=ypos;
return I;
}

点击检测代码;测试行星物体和图像

update = function(){
planetImage.onmousedown=function(){alert("works!")};
planets[0].onmousedown=function(){alert("works!")};
}
setInterval(update,100);

我使用画布绘制图像,如果那个hhelps。 我发现以下代码给出了鼠标位置,但它对我不起作用:

(function() {
    var mousePos;

    window.onmousemove = handleMouseMove;
    setInterval(getMousePosition, 100); // setInterval repeats every X ms

    function handleMouseMove(event) {
        event = event || window.event; // IE-ism
        mousePos = {
            x: event.clientX,
            y: event.clientY
        };
    }

    function getMousePosition() {
        var pos = mousePos;
        if (!pos) {
            // We haven't seen any movement yet
        }
        else {
            // Use pos.x and pox.y
        }
    }
})();

我试图保持简单,我不喜欢jquery或任何复杂的东西。 再一次:问题是onmousedown只适用于canvas对象,即

canvas.onmousedown=function(){alert("works!")};

1 个答案:

答案 0 :(得分:0)

我现在使用此代码了解它:

update = function(){
canvas.onmousedown=function(){
var e = window.event;
var posX = e.clientX;
var posY = e.clientY;
alert("X position: "+ posX + " Y position: " + posY);
};
setInterval(update,100);