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)
|
core.maps.drawAnimate(name, x, y, callback)
|
||||||
播放一段动画,name为动画名(需在全塔属性注册),x和y为坐标(0-12之间),callback可选,为播放完毕的回调函数。
|
播放一段动画,name为动画名(需在全塔属性注册),x和y为坐标(0-12之间),callback可选,为播放完毕的回调函数。
|
||||||
播放过程是异步的,如需等待播放完毕请使用insertAction插入一条type:waitAsync事件。
|
播放过程是异步的,如需等待播放完毕请使用insertAction插入一条type:waitAsync事件。
|
||||||
此函数将随机返回一个数字id。将 "stopAnimate_"+id 这个flag置为true则可以立刻停止该动画的播放,如:
|
此函数将随机返回一个数字id,为此异步动画的唯一标识符。
|
||||||
var id = core.maps.drawAnimate("zone", 3, 3);
|
|
||||||
core.setFlag("stopAnimate_"+id, true); // 立刻停止动画的播放
|
|
||||||
|
core.maps.stopAnimate(id, doCallback)
|
||||||
|
立刻停止一个异步动画。
|
||||||
|
id为该动画的唯一标识符(由drawAnimate函数返回),doCallback可选,若为true则会执行该动画所绑定的回调函数。
|
||||||
|
|
||||||
|
|
||||||
========== core.ui.XXX 和对话框绘制相关的函数 ==========
|
========== core.ui.XXX 和对话框绘制相关的函数 ==========
|
||||||
|
|||||||
@ -122,10 +122,9 @@ control.prototype.setRequestAnimationFrame = function () {
|
|||||||
var animateObjs = [];
|
var animateObjs = [];
|
||||||
for (var i=0;i<core.status.animateObjs.length;i++) {
|
for (var i=0;i<core.status.animateObjs.length;i++) {
|
||||||
var obj = core.status.animateObjs[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];
|
delete core.animateFrame.asyncId[obj.id];
|
||||||
core.removeFlag("stopAnimate_"+obj.id);
|
|
||||||
// 异步执行回调...
|
// 异步执行回调...
|
||||||
(function(callback) {
|
(function(callback) {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
|
|||||||
@ -900,6 +900,11 @@ core.prototype.drawAnimate = function (name, x, y, callback) {
|
|||||||
return core.maps.drawAnimate(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.prototype.updateCheckBlock = function() {
|
||||||
core.control.updateCheckBlock();
|
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;
|
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) {
|
maps.prototype.setFloorImage = function (type, loc, floorId, callback) {
|
||||||
if (type!='show') type='hide';
|
if (type!='show') type='hide';
|
||||||
if (typeof loc[0] == 'number' && typeof loc[1] == 'number')
|
if (typeof loc[0] == 'number' && typeof loc[1] == 'number')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user