stopAnimate
This commit is contained in:
parent
46dc678848
commit
1e62599324
@ -476,9 +476,12 @@ core.maps.removeBlockByIds(floorId, ids)
|
||||
core.maps.drawAnimate(name, x, y, callback)
|
||||
播放一段动画,name为动画名(需在全塔属性注册),x和y为坐标(0-12之间),callback可选,为播放完毕的回调函数。
|
||||
播放过程是异步的,如需等待播放完毕请使用insertAction插入一条type:waitAsync事件。
|
||||
此函数将随机返回一个数字id。将 "stopAnimate_"+id 这个flag置为true则可以立刻停止该动画的播放,如:
|
||||
var id = core.maps.drawAnimate("zone", 3, 3);
|
||||
core.setFlag("stopAnimate_"+id, true); // 立刻停止动画的播放
|
||||
此函数将随机返回一个数字id,为此异步动画的唯一标识符。
|
||||
|
||||
|
||||
core.maps.stopAnimate(id, doCallback)
|
||||
立刻停止一个异步动画。
|
||||
id为该动画的唯一标识符(由drawAnimate函数返回),doCallback可选,若为true则会执行该动画所绑定的回调函数。
|
||||
|
||||
|
||||
========== core.ui.XXX 和对话框绘制相关的函数 ==========
|
||||
|
||||
@ -122,10 +122,9 @@ control.prototype.setRequestAnimationFrame = function () {
|
||||
var animateObjs = [];
|
||||
for (var i=0;i<core.status.animateObjs.length;i++) {
|
||||
var obj = core.status.animateObjs[i];
|
||||
if (obj.index == obj.animate.frames.length || core.hasFlag("stopAnimate_"+obj.id)) {
|
||||
if (obj.index == obj.animate.frames.length) {
|
||||
// 绘制完毕
|
||||
delete core.animateFrame.asyncId[obj.id];
|
||||
core.removeFlag("stopAnimate_"+obj.id);
|
||||
// 异步执行回调...
|
||||
(function(callback) {
|
||||
setTimeout(function() {
|
||||
|
||||
@ -900,6 +900,11 @@ core.prototype.drawAnimate = function (name, x, y, callback) {
|
||||
return core.maps.drawAnimate(name, x, y, callback);
|
||||
}
|
||||
|
||||
////// 停止动画 //////
|
||||
core.prototype.stopAnimate = function (id, doCallback) {
|
||||
return core.maps.stopAnimate(id, doCallback);
|
||||
}
|
||||
|
||||
////// 更新领域、夹击、阻击的伤害地图 //////
|
||||
core.prototype.updateCheckBlock = function() {
|
||||
core.control.updateCheckBlock();
|
||||
|
||||
23
libs/maps.js
23
libs/maps.js
@ -1387,6 +1387,29 @@ maps.prototype.drawAnimate = function (name, x, y, callback) {
|
||||
return animateId;
|
||||
}
|
||||
|
||||
////// 停止动画 //////
|
||||
maps.prototype.stopAnimate = function (id, doCallback) {
|
||||
for (var i=0;i<core.status.animateObjs.length;i++) {
|
||||
var obj = core.status.animateObjs[i];
|
||||
if (obj.id == id) {
|
||||
delete core.animateFrame.asyncId[obj.id];
|
||||
if (doCallback) {
|
||||
(function(callback) {
|
||||
setTimeout(function() {
|
||||
if (core.isset(callback))
|
||||
callback();
|
||||
});
|
||||
})(obj.callback);
|
||||
}
|
||||
}
|
||||
core.status.animateObjs.splice(i, 1);
|
||||
if (core.status.animateObjs.length == 0) {
|
||||
core.clearMap('animate');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
maps.prototype.setFloorImage = function (type, loc, floorId, callback) {
|
||||
if (type!='show') type='hide';
|
||||
if (typeof loc[0] == 'number' && typeof loc[1] == 'number')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user