From 5bb31cd4155ecb6ce5d10f6d4c722d6253cbad98 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Tue, 27 Nov 2018 13:07:42 +0800 Subject: [PATCH] moveImage async --- libs/events.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libs/events.js b/libs/events.js index 5dd7fa0d..f8f105aa 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1480,27 +1480,31 @@ events.prototype.moveImage = function (image, from, to, time, keep, callback) { core.setAlpha('data', 1); core.setOpacity('data', 1); - if (keep) core.clearMap('image'); + var width = image.width, height = image.height; // core.status.replay.animate=true; var fromX = core.calValue(from[0]), fromY = core.calValue(from[1]), toX = core.calValue(to[0]), toY = core.calValue(to[1]); - var step = 0; + + if (keep) core.clearMap('image', fromX, fromY, width, height); + + var step = 0, preX = fromX, preY = fromY; var per_time = 10, steps = parseInt(time / per_time); var drawImage = function () { - core.clearMap('data'); - var nowX = parseInt(fromX + (toX-fromX)*step/steps); - var nowY = parseInt(fromY + (toY-fromY)*step/steps); - core.canvas.data.drawImage(image, nowX, nowY); + preX = parseInt(fromX + (toX-fromX)*step/steps); + preY = parseInt(fromY + (toY-fromY)*step/steps); + core.canvas.data.drawImage(image, preX, preY); } drawImage(); var animate = setInterval(function () { + core.clearMap('data', preX, preY, width, height); step++; - drawImage(); - if (step>=steps) { + if (step <= steps) + drawImage(); + else { clearInterval(animate); - core.clearMap('data'); + // score.clearMap('data'); // core.status.replay.animate=false; if (keep) core.canvas.image.drawImage(image, toX, toY); if (core.isset(callback)) callback();