From be2696c4062ac2bb02b8105304ea082a5c2f3165 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Sun, 25 Feb 2018 12:31:13 +0800 Subject: [PATCH] Fix SetInterval Bug --- libs/core.js | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/libs/core.js b/libs/core.js index 9e08155b..f4fb69c5 100644 --- a/libs/core.js +++ b/libs/core.js @@ -19,7 +19,6 @@ function core() { 'turnHeroTimeout': null, } this.interval = { - 'heroMoveTriggerInterval': null, 'heroMoveInterval': null, "tipAnimate": null, 'openDoorAnimate': null, @@ -801,7 +800,6 @@ core.prototype.startGame = function (hard, callback) { core.resetStatus(core.firstData.hero, hard, core.firstData.floorId, null, core.initStatus.maps); core.changeFloor(core.status.floorId, null, core.firstData.hero.loc, null, function() { - //core.setHeroMoveTriggerInterval(); if (core.isset(callback)) callback(); }); @@ -1153,7 +1151,6 @@ core.prototype.keyUp = function(keyCode) { core.resetStatus(core.firstData.hero, hard, core.firstData.floorId, null, core.initStatus.maps); core.events.setInitData(hard); core.changeFloor(core.status.floorId, null, core.firstData.hero.loc, null, function() { - //core.setHeroMoveTriggerInterval(); core.startReplay(route); }); }, function () { @@ -2045,17 +2042,17 @@ core.prototype.moveHero = function (direction, callback) { if (!core.isset(callback)) { // 如果不存在回调函数,则使用heroMoveTrigger core.status.heroStop = false; core.status.automaticRoute.moveDirectly = false; - if (core.interval.heroMoveTriggerInterval==null) { - core.moveAction(); - core.interval.heroMoveTriggerInterval = setInterval(function () { - if (!core.status.heroStop) { - core.moveAction(); - } - else { - core.stopHero(); - } - }, 50) + + var doAction = function () { + if (!core.status.heroStop) { + core.moveAction(); + setTimeout(doAction, 50); + } + else { + core.stopHero(); + } } + doAction(); } else { // 否则,只向某个方向移动一步,然后调用callback core.moveAction(function () { @@ -2163,9 +2160,6 @@ core.prototype.waitHeroToStop = function(callback) { ////// 停止勇士的移动状态 ////// core.prototype.stopHero = function () { core.status.heroStop = true; - core.status.automaticRoute.moveDirectly = false; - clearInterval(core.interval.heroMoveTriggerInterval); - core.interval.heroMoveTriggerInterval=null; } ////// 绘制勇士 ////// @@ -4451,7 +4445,6 @@ core.prototype.doSL = function (id, type) { core.resetStatus(core.firstData.hero, data.hard, core.firstData.floorId, null, core.initStatus.maps); core.events.setInitData(data.hard); core.changeFloor(core.status.floorId, null, core.firstData.hero.loc, null, function() { - //core.setHeroMoveTriggerInterval(); core.startReplay(core.decodeRoute(data.route)); }); } @@ -4777,7 +4770,6 @@ core.prototype.loadData = function (data, callback) { core.events.afterLoadData(data); core.changeFloor(data.floorId, null, data.hero.loc, 0, function() { - //core.setHeroMoveTriggerInterval(); if (core.isset(callback)) callback(); }); }