【发布时间】:2015-09-05 08:43:48
【问题描述】:
我正在尝试使用 JS 绘制和移动图像。
这段代码一直有效,直到 moveImage 函数什么都不做。谁能帮我解决这个问题?
我相信如果我将图像放在 html 中,我可以移动它,但如果可能的话,我希望让脚本代码代替它。
function init() {
var x = 1, y = 1;
var context = document.getElementById("Vehicle").getContext("2d");
var img = new Image();
img.onload = function () { context.drawImage(img, x, y, 24, 20); }
img.src = "images/Image.png";
//move
function moveImage(imgX, imgY) {
img.style.left = imgX + "px";
img.style.top = imgY + 'px';
}
setInterval(function () {
var FPS = 60;
x++;
y++;
if (x > 1000) { x = 1; }
if (y > 1000) { y = 1; }
moveImage(x, y);
}, 1000/FPS);
};
我的猜测是 img.style.left/right 要么不正确,要么我没有正确指向 img。
如果没有办法做到这一点,有没有办法让我删除(不仅仅是隐藏)图像,以便我可以在新位置重新绘制它?
【问题讨论】:
-
你能提供一个小提琴吗?
-
你打电话给
init()了吗? -
尝试在初始化代码中设置
img.style.position = 'absolute',AFAIKleft和right仅在position是absolute或fixed时适用。 -
为什么图片会移动?它在屏幕上不存在,您已经绘制了它的 副本,但它不会更新,只是因为您移动了一个不相关的元素。每次更改图像时,您都需要重新绘制
标签: javascript image canvas move