事件:停止全部动画
This commit is contained in:
parent
c38bc1a203
commit
02fd7f2f2a
@ -1806,9 +1806,9 @@ showFloorImage: fn(loc?: [number]|[[number]], floorId?: string, callback?: fn())
|
|||||||
stairExists: fn(x: number, y: number, floorId?: string) -> bool
|
stairExists: fn(x: number, y: number, floorId?: string) -> bool
|
||||||
某个点是否存在楼梯
|
某个点是否存在楼梯
|
||||||
|
|
||||||
stopAnimate: fn(id: number, doCallback?: bool)
|
stopAnimate: fn(id?: number, doCallback?: bool)
|
||||||
立刻停止一个动画播放
|
立刻停止一个动画播放
|
||||||
id: 播放动画的编号,即drawAnimate或drawHeroAnimate的返回值
|
id: 播放动画的编号,即drawAnimate或drawHeroAnimate的返回值;不填视为停止所有动画
|
||||||
doCallback: 是否执行该动画的回调函数
|
doCallback: 是否执行该动画的回调函数
|
||||||
|
|
||||||
terrainExists: fn(x: number, y: number, id?: string, floorId?: string) -> bool
|
terrainExists: fn(x: number, y: number, id?: string, floorId?: string) -> bool
|
||||||
|
|||||||
@ -3081,8 +3081,8 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
|
|||||||
"!type": "fn(name: string, callback?: fn()) -> number"
|
"!type": "fn(name: string, callback?: fn()) -> number"
|
||||||
},
|
},
|
||||||
"stopAnimate": {
|
"stopAnimate": {
|
||||||
"!doc": "立刻停止一个动画播放<br/>id: 播放动画的编号,即drawAnimate或drawHeroAnimate的返回值<br/>doCallback: 是否执行该动画的回调函数",
|
"!doc": "立刻停止一个动画播放<br/>id: 播放动画的编号,即drawAnimate或drawHeroAnimate的返回值;不填视为所有动画br/>doCallback: 是否执行该动画的回调函数",
|
||||||
"!type": "fn(id: number, doCallback?: bool)"
|
"!type": "fn(id?: number, doCallback?: bool)"
|
||||||
},
|
},
|
||||||
"getPlayingAnimates": {
|
"getPlayingAnimates": {
|
||||||
"!doc": "获得当前正在播放的所有(指定)动画的id列表<br/>name: 动画名;不填代表返回全部正在播放的动画<br/>返回值: 一个数组,每一项为一个正在播放的动画;可用core.stopAnimate停止播放。",
|
"!doc": "获得当前正在播放的所有(指定)动画的id列表<br/>name: 动画名;不填代表返回全部正在播放的动画<br/>返回值: 一个数组,每一项为一个正在播放的动画;可用core.stopAnimate停止播放。",
|
||||||
|
|||||||
@ -869,6 +869,7 @@ action
|
|||||||
| unfollow_s
|
| unfollow_s
|
||||||
| animate_s
|
| animate_s
|
||||||
| animate_1_s
|
| animate_1_s
|
||||||
|
| stopAnimate_s
|
||||||
| vibrate_s
|
| vibrate_s
|
||||||
| showImage_s
|
| showImage_s
|
||||||
| showImage_1_s
|
| showImage_1_s
|
||||||
@ -2081,6 +2082,17 @@ var code = '{"type": "animate", "name": "'+EvalString_0+'", "loc": "hero"'+Bool_
|
|||||||
return code;
|
return code;
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
stopAnimate_s
|
||||||
|
: '停止所有动画' Newline
|
||||||
|
|
||||||
|
/* stopAnimate_s
|
||||||
|
tooltip : stopAnimate:停止所有动画
|
||||||
|
helpUrl : /_docs/#/instruction
|
||||||
|
colour : this.soundColor
|
||||||
|
var code = '{"type": "stopAnimate"},\n';
|
||||||
|
return code;
|
||||||
|
*/;
|
||||||
|
|
||||||
setViewport_s
|
setViewport_s
|
||||||
: '设置视角' '左上角坐标' 'x' PosString? ',' 'y' PosString? '移动方式' MoveMode_List '动画时间' Int '不等待执行完毕' Bool Newline
|
: '设置视角' '左上角坐标' 'x' PosString? ',' 'y' PosString? '移动方式' MoveMode_List '动画时间' Int '不等待执行完毕' Bool Newline
|
||||||
|
|
||||||
|
|||||||
@ -559,6 +559,9 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
data.name,data.loc[0],data.loc[1],data.alignWindow||false,data.async||false,this.next]);
|
data.name,data.loc[0],data.loc[1],data.alignWindow||false,data.async||false,this.next]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "stopAnimate": // 停止所有动画
|
||||||
|
this.next = MotaActionBlocks['stopAnimate_s'].xmlText([this.next]);
|
||||||
|
break;
|
||||||
case "setViewport": // 设置视角
|
case "setViewport": // 设置视角
|
||||||
if (data.dxy) {
|
if (data.dxy) {
|
||||||
this.next = MotaActionBlocks['setViewport_1_s'].xmlText([
|
this.next = MotaActionBlocks['setViewport_1_s'].xmlText([
|
||||||
|
|||||||
@ -199,6 +199,7 @@ editor_blocklyconfig=(function(){
|
|||||||
MotaActionBlocks['vibrate_s'].xmlText(),
|
MotaActionBlocks['vibrate_s'].xmlText(),
|
||||||
MotaActionBlocks['animate_s'].xmlText(),
|
MotaActionBlocks['animate_s'].xmlText(),
|
||||||
MotaActionBlocks['animate_1_s'].xmlText(),
|
MotaActionBlocks['animate_1_s'].xmlText(),
|
||||||
|
MotaActionBlocks['stopAnimate_s'].xmlText(),
|
||||||
MotaActionBlocks['setViewport_s'].xmlText(),
|
MotaActionBlocks['setViewport_s'].xmlText(),
|
||||||
MotaActionBlocks['setViewport_1_s'].xmlText(),
|
MotaActionBlocks['setViewport_1_s'].xmlText(),
|
||||||
MotaActionBlocks['lockViewport_s'].xmlText(),
|
MotaActionBlocks['lockViewport_s'].xmlText(),
|
||||||
|
|||||||
@ -1528,6 +1528,11 @@ events.prototype._action_animate = function (data, x, y, prefix) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
events.prototype._action_stopAnimate = function (data, x, y, prefix) {
|
||||||
|
core.stopAnimate();
|
||||||
|
core.doAction();
|
||||||
|
}
|
||||||
|
|
||||||
events.prototype._action_setViewport = function (data, x, y, prefix) {
|
events.prototype._action_setViewport = function (data, x, y, prefix) {
|
||||||
if (data.dxy != null) {
|
if (data.dxy != null) {
|
||||||
data.loc = [core.bigmap.offsetX / 32 + (core.calValue(data.dxy[0], prefix) || 0), core.bigmap.offsetY / 32 + (core.calValue(data.dxy[1], prefix) || 0)];
|
data.loc = [core.bigmap.offsetX / 32 + (core.calValue(data.dxy[0], prefix) || 0), core.bigmap.offsetY / 32 + (core.calValue(data.dxy[1], prefix) || 0)];
|
||||||
@ -3467,16 +3472,16 @@ events.prototype.setVolume = function (value, time, callback) {
|
|||||||
time /= Math.max(core.status.replay.speed, 1);
|
time /= Math.max(core.status.replay.speed, 1);
|
||||||
var per_time = 10, step = 0, steps = parseInt(time / per_time);
|
var per_time = 10, step = 0, steps = parseInt(time / per_time);
|
||||||
if (steps <= 0) steps = 1;
|
if (steps <= 0) steps = 1;
|
||||||
var fade = setInterval(function () {
|
var animate = setInterval(function () {
|
||||||
step++;
|
step++;
|
||||||
set(currVolume + (value - currVolume) * step / steps);
|
set(currVolume + (value - currVolume) * step / steps);
|
||||||
if (step >= steps) {
|
if (step >= steps) {
|
||||||
delete core.animateFrame.asyncId[fade];
|
delete core.animateFrame.asyncId[animate];
|
||||||
clearInterval(fade);
|
clearInterval(animate);
|
||||||
if (callback) callback();
|
if (callback) callback();
|
||||||
}
|
}
|
||||||
}, per_time);
|
}, per_time);
|
||||||
core.animateFrame.asyncId[fade] = true;
|
core.animateFrame.asyncId[animate] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
////// 画面震动 //////
|
////// 画面震动 //////
|
||||||
|
|||||||
@ -3034,7 +3034,7 @@ maps.prototype._drawAnimateFrame = function (name, animate, centerX, centerY, in
|
|||||||
maps.prototype.stopAnimate = function (id, doCallback) {
|
maps.prototype.stopAnimate = function (id, doCallback) {
|
||||||
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.id == id) {
|
if (id == null || obj.id == id) {
|
||||||
if (doCallback) {
|
if (doCallback) {
|
||||||
(function (callback) {
|
(function (callback) {
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
@ -3044,7 +3044,7 @@ maps.prototype.stopAnimate = function (id, doCallback) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
core.status.animateObjs = core.status.animateObjs.filter(function (x) { return x.id != id });
|
core.status.animateObjs = core.status.animateObjs.filter(function (x) { return id != null && x.id != id });
|
||||||
if (core.status.animateObjs.length == 0)
|
if (core.status.animateObjs.length == 0)
|
||||||
core.clearMap('animate');
|
core.clearMap('animate');
|
||||||
}
|
}
|
||||||
|
|||||||
2
runtime.d.ts
vendored
2
runtime.d.ts
vendored
@ -1778,7 +1778,7 @@ declare class maps {
|
|||||||
* @param id 播放动画的编号,即drawAnimate或drawHeroAnimate返回值
|
* @param id 播放动画的编号,即drawAnimate或drawHeroAnimate返回值
|
||||||
* @param doCallback 是否执行该动画的回调函数
|
* @param doCallback 是否执行该动画的回调函数
|
||||||
*/
|
*/
|
||||||
stopAnimate(id: number, doCallback?: boolean): void
|
stopAnimate(id?: number, doCallback?: boolean): void
|
||||||
|
|
||||||
/** 获得当前正在播放的所有(指定)动画的id列表 */
|
/** 获得当前正在播放的所有(指定)动画的id列表 */
|
||||||
getPlayingAnimates(name?: string) : Array<number>
|
getPlayingAnimates(name?: string) : Array<number>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user