【发布时间】:2012-08-22 22:24:20
【问题描述】:
我想在 html5 画布上下文中使用精灵。
我想用鼠标拖动它..所以显示区域在拖动鼠标时会发生变化。
它应该看起来像一个宽度为 21 和高度为 90 的窗口,其中只有一部分精灵可见。当我向下或向上拖动精灵时,我希望可见部分发生变化。
我认为我可以使用 drawImage (slice) 方法来做到这一点,但它并没有按照我想要的方式工作......
你能帮帮我吗?
<html>
<head>
<script type="text/javascript">
var y = 30;
var canvas;
var context;
var imageHours;
function clearClock(context) {
context.clearRect(0, 0, 300, 500);
}
function init(){
canvas = document.getElementById("uhr");
context = canvas.getContext("2d");
imageHours = new Image();
imageHours.src = "07.png";
context.drawImage(imageHours, 0, y, 21, 90, 50, 50, 21, 90);
var down = false;
canvas.addEventListener('mousedown', function(event) { down = true; }, false);
canvas.addEventListener('mouseup', function() { down = false; }, false);
canvas.addEventListener('mousemove', function(event){
if(down){
if(event.layerY > 50 && event.layerY < 140){
y = event.layerY;
}
clearClock(context);
context.drawImage(imageHours, 0, y, 21, 90, 50, 50, 21, 90);
}
}, false);
}
</script>
</head>
<body onload="init();">
<canvas id="uhr" height="500px" width="300px"/>
</body>
</html>
精灵:
编辑:我在我的 mainPost 中添加了一条评论。我之所以要这样做是因为..我不想为此使用库..因为我想学习这样的东西...使用库对我的学习没有帮助...
【问题讨论】:
-
下次可以考虑做一个fiddle,那样马上调试会更方便。
-
But it doesn't work how I want.嗯,你想要怎么样? -
现在当我使用 drawImage 方法时,它的作用如下:当我向上滑动鼠标时,列表向上滑动,当我用鼠标向下滑动时,数字变大,这是我不想要的。 .我只是想从上到下或以其他方式拖动数字...就像一个微调器,我抓住一个位置,然后从那里拖动它..
标签: javascript html canvas