我在画布上有一个动画,其中有一些图像(使用drawImage()
绘制)。为了简单起见,假设只有两个图像。这些图像遵循人造三维空间中的圆形路径,以便有时一个图像与另一个图像重叠,而其他时候第二个图像与第一个图像重叠。这些图像也随着从观看者“更近”或“更远”移动而缩放。确定在画布上绘制的图像的尺寸以及鼠标位于图像上时的尺寸
每个这些图像是用下面的(简化的)代码的对象:
function slide_object() {
this.x = 0.0; // x = position along path (in radians)
this.xpos = 0.0; // x position on canvas
this.ypos = 0.0; // y position on canvas
this.scale = 0.0;
this.name = ""; // a string to be displayed when slide is moused over
this.imgx = 0.0; // width of original image
this.imgy = 0.0; // height of original image
this.init = function (abspath, startx, name) { // startx = path offset (in radians)
this.name = name;
this.x = (startx % (Math.PI * 2));
var slide_image = new Image();
slide_image.src = abspath;
this.img = slide_image;
calcObjPositions(0, this); // calculate's the image's position, then draws it
};
this.getDims = function() { // called by calcObjPositions when animation is started
this.imgx = this.img.width/2;
this.imgy = this.img.height/2;
}
}
这些对象中的每一个存储在数组中称为slides
。
为了适当地重叠图像,drawObjs
函数首先在排序的slides[i].scale
顺序slides
阵列从最小到最大,然后绘制图像开始slides[0]
。
在$(document).ready()
我运行一个init
功能,除其他事项外,将一个事件侦听到画布:
canvas = document.getElementById(canvas_id);
canvas.addEventListener('mousemove', mouse_handler, false);
这个处理器的目的是,以确定鼠标和鼠标是否已经结束其中一张幻灯片(它将通过jQuery修改页面上的<div>
)。
这是我的问题 - 我试图找出如何确定鼠标在任何给定时间结束。从本质上讲,我需要的代码填写以下逻辑(在mouse_handler()
功能最有可能的):
// if (mouse is over a slide) {
// slideName = get .name of moused-over slide;
// } else {
// slideName = "";
// }
// $("#slideName").html(slideName);
有什么想法?