Add px & py to onclick & longclick
This commit is contained in:
parent
b5d7f3e0de
commit
0b9e6ad0fd
@ -184,13 +184,13 @@ keyDownCtrl: fn() -> bool
|
|||||||
keyUp: fn(keyCode: number, altKey?: bool, fromReplay?: bool)
|
keyUp: fn(keyCode: number, altKey?: bool, fromReplay?: bool)
|
||||||
根据放开键的code来执行一系列操作
|
根据放开键的code来执行一系列操作
|
||||||
|
|
||||||
longClick: fn(x: number, y: number, fromEvent?: bool)
|
longClick: fn(x: number, y: number, px: number, py: number, fromEvent?: bool)
|
||||||
长按
|
长按
|
||||||
|
|
||||||
onStatusBarClick: fn(e?: Event)
|
onStatusBarClick: fn(e?: Event)
|
||||||
点击自绘状态栏时
|
点击自绘状态栏时
|
||||||
|
|
||||||
onclick: fn(x: number, y: number, stepPostfix?: ?)
|
onclick: fn(x: number, y: number, px: number, py: number, stepPostfix?: [?])
|
||||||
具体点击屏幕上(x,y)点时,执行的操作
|
具体点击屏幕上(x,y)点时,执行的操作
|
||||||
|
|
||||||
ondown: fn(loc: {x: number, y: number, size: number})
|
ondown: fn(loc: {x: number, y: number, size: number})
|
||||||
|
|||||||
@ -2981,7 +2981,7 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
|
|||||||
},
|
},
|
||||||
"longClick": {
|
"longClick": {
|
||||||
"!doc": "长按",
|
"!doc": "长按",
|
||||||
"!type": "fn(x: number, y: number, fromEvent?: bool)"
|
"!type": "fn(x: number, y: number, px: number, py: number, fromEvent?: bool)"
|
||||||
},
|
},
|
||||||
"unregisterAction": {
|
"unregisterAction": {
|
||||||
"!doc": "注销一个用户交互行为",
|
"!doc": "注销一个用户交互行为",
|
||||||
@ -2993,7 +2993,7 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
|
|||||||
},
|
},
|
||||||
"onclick": {
|
"onclick": {
|
||||||
"!doc": "具体点击屏幕上(x,y)点时,执行的操作",
|
"!doc": "具体点击屏幕上(x,y)点时,执行的操作",
|
||||||
"!type": "fn(x: number, y: number, stepPostfix?: ?)"
|
"!type": "fn(x: number, y: number, px: number, py: number, stepPostfix?: [?])"
|
||||||
},
|
},
|
||||||
"doRegisteredAction": {
|
"doRegisteredAction": {
|
||||||
"!doc": "执行一个用户交互行为",
|
"!doc": "执行一个用户交互行为",
|
||||||
|
|||||||
117
libs/actions.js
117
libs/actions.js
@ -460,31 +460,14 @@ actions.prototype.ondown = function (loc) {
|
|||||||
actions.prototype._sys_ondown_lockControl = function (x, y, px, py) {
|
actions.prototype._sys_ondown_lockControl = function (x, y, px, py) {
|
||||||
if (core.status.played && !core.status.lockControl) return false;
|
if (core.status.played && !core.status.lockControl) return false;
|
||||||
|
|
||||||
// --- wait事件也要提供px和py
|
core.actions.onclick(x, y, px, py, []);
|
||||||
if (core.status.event.id == 'action' && core.status.event.data.type == 'wait') {
|
|
||||||
clearTimeout(core.status.event.interval);
|
|
||||||
var timeout = Math.max(0, core.status.event.timeout - new Date().getTime()) || 0;
|
|
||||||
delete core.status.event.timeout;
|
|
||||||
core.setFlag('type', 1);
|
|
||||||
core.setFlag('x', x);
|
|
||||||
core.setFlag('y', y);
|
|
||||||
core.setFlag('px', px);
|
|
||||||
core.setFlag('py', py);
|
|
||||||
core.setFlag('timeout', timeout);
|
|
||||||
core.status.route.push("input:" + (1e8 * timeout + 1000000 + 1000 * px + py));
|
|
||||||
core.events.__action_wait_afterGet(core.status.event.data.current);
|
|
||||||
core.doAction();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
core.actions.onclick(x, y, []);
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- 长按判定
|
// --- 长按判定
|
||||||
if (core.timeout.onDownTimeout == null) {
|
if (core.timeout.onDownTimeout == null) {
|
||||||
core.timeout.onDownTimeout = setTimeout(function () {
|
core.timeout.onDownTimeout = setTimeout(function () {
|
||||||
if (core.interval.onDownInterval == null) {
|
if (core.interval.onDownInterval == null) {
|
||||||
core.interval.onDownInterval = setInterval(function () {
|
core.interval.onDownInterval = setInterval(function () {
|
||||||
if (!core.actions.longClick(x, y, true)) {
|
if (!core.actions.longClick(x, y, px, py, true)) {
|
||||||
clearInterval(core.interval.onDownInterval);
|
clearInterval(core.interval.onDownInterval);
|
||||||
core.interval.onDownInterval = null;
|
core.interval.onDownInterval = null;
|
||||||
}
|
}
|
||||||
@ -599,11 +582,11 @@ actions.prototype._sys_onup = function () {
|
|||||||
|
|
||||||
// 长按
|
// 长按
|
||||||
if (!core.status.lockControl && stepPostfix.length == 0 && core.status.downTime != null && new Date() - core.status.downTime >= 1000) {
|
if (!core.status.lockControl && stepPostfix.length == 0 && core.status.downTime != null && new Date() - core.status.downTime >= 1000) {
|
||||||
core.actions.longClick(posx, posy);
|
core.actions.longClick(posx, posy, 32 * posx + 16, 32 * posy + 16);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//posx,posy是寻路的目标点,stepPostfix是后续的移动
|
//posx,posy是寻路的目标点,stepPostfix是后续的移动
|
||||||
core.actions.onclick(posx, posy, stepPostfix);
|
core.actions.onclick(posx, posy, 32 * posx + 16, 32 * posy + 16, stepPostfix);
|
||||||
}
|
}
|
||||||
core.status.downTime = null;
|
core.status.downTime = null;
|
||||||
return true;
|
return true;
|
||||||
@ -632,94 +615,94 @@ actions.prototype._getClickLoc = function (x, y) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
////// 具体点击屏幕上(x,y)点时,执行的操作 //////
|
////// 具体点击屏幕上(x,y)点时,执行的操作 //////
|
||||||
actions.prototype.onclick = function (x, y, stepPostfix) {
|
actions.prototype.onclick = function (x, y, px, py, stepPostfix) {
|
||||||
// console.log("Click: (" + x + "," + y + ")");
|
// console.log("Click: (" + x + "," + y + ")");
|
||||||
return this.doRegisteredAction('onclick', x, y, stepPostfix || []);
|
return this.doRegisteredAction('onclick', x, y, px, py, stepPostfix || []);
|
||||||
}
|
}
|
||||||
|
|
||||||
actions.prototype._sys_onclick_lockControl = function (x, y) {
|
actions.prototype._sys_onclick_lockControl = function (x, y, px, py) {
|
||||||
if (!core.status.lockControl) return false;
|
if (!core.status.lockControl) return false;
|
||||||
switch (core.status.event.id) {
|
switch (core.status.event.id) {
|
||||||
case 'centerFly':
|
case 'centerFly':
|
||||||
this._clickCenterFly(x, y);
|
this._clickCenterFly(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'book':
|
case 'book':
|
||||||
this._clickBook(x, y);
|
this._clickBook(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'book-detail':
|
case 'book-detail':
|
||||||
this._clickBookDetail(x, y);
|
this._clickBookDetail(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'fly':
|
case 'fly':
|
||||||
this._clickFly(x, y);
|
this._clickFly(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'viewMaps':
|
case 'viewMaps':
|
||||||
this._clickViewMaps(x, y);
|
this._clickViewMaps(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'switchs':
|
case 'switchs':
|
||||||
this._clickSwitchs(x, y);
|
this._clickSwitchs(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'switchs-sounds':
|
case 'switchs-sounds':
|
||||||
this._clickSwitchs_sounds(x, y);
|
this._clickSwitchs_sounds(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'switchs-display':
|
case 'switchs-display':
|
||||||
this._clickSwitchs_display(x, y);
|
this._clickSwitchs_display(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'switchs-action':
|
case 'switchs-action':
|
||||||
this._clickSwitchs_action(x, y);
|
this._clickSwitchs_action(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'settings':
|
case 'settings':
|
||||||
this._clickSettings(x, y);
|
this._clickSettings(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'selectShop':
|
case 'selectShop':
|
||||||
this._clickQuickShop(x, y);
|
this._clickQuickShop(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'equipbox':
|
case 'equipbox':
|
||||||
this._clickEquipbox(x, y);
|
this._clickEquipbox(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'toolbox':
|
case 'toolbox':
|
||||||
this._clickToolbox(x, y);
|
this._clickToolbox(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'save':
|
case 'save':
|
||||||
case 'load':
|
case 'load':
|
||||||
case 'replayLoad':
|
case 'replayLoad':
|
||||||
case 'replayRemain':
|
case 'replayRemain':
|
||||||
this._clickSL(x, y);
|
this._clickSL(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'confirmBox':
|
case 'confirmBox':
|
||||||
this._clickConfirmBox(x, y);
|
this._clickConfirmBox(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'keyBoard':
|
case 'keyBoard':
|
||||||
this._clickKeyBoard(x, y);
|
this._clickKeyBoard(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'action':
|
case 'action':
|
||||||
this._clickAction(x, y);
|
this._clickAction(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'text':
|
case 'text':
|
||||||
core.drawText();
|
core.drawText();
|
||||||
break;
|
break;
|
||||||
case 'notes':
|
case 'notes':
|
||||||
this._clickNotes(x, y);
|
this._clickNotes(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'syncSave':
|
case 'syncSave':
|
||||||
this._clickSyncSave(x, y);
|
this._clickSyncSave(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'syncSelect':
|
case 'syncSelect':
|
||||||
this._clickSyncSelect(x, y);
|
this._clickSyncSelect(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'localSaveSelect':
|
case 'localSaveSelect':
|
||||||
this._clickLocalSaveSelect(x, y);
|
this._clickLocalSaveSelect(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'storageRemove':
|
case 'storageRemove':
|
||||||
this._clickStorageRemove(x, y);
|
this._clickStorageRemove(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'cursor':
|
case 'cursor':
|
||||||
this._clickCursor(x, y);
|
this._clickCursor(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'replay':
|
case 'replay':
|
||||||
this._clickReplay(x, y);
|
this._clickReplay(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'gameInfo':
|
case 'gameInfo':
|
||||||
this._clickGameInfo(x, y);
|
this._clickGameInfo(x, y, px, py);
|
||||||
break;
|
break;
|
||||||
case 'about':
|
case 'about':
|
||||||
case 'help':
|
case 'help':
|
||||||
@ -729,7 +712,7 @@ actions.prototype._sys_onclick_lockControl = function (x, y) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
actions.prototype._sys_onclick = function (x, y, stepPostfix) {
|
actions.prototype._sys_onclick = function (x, y, px, py, stepPostfix) {
|
||||||
// 寻路
|
// 寻路
|
||||||
core.setAutomaticRoute(x + parseInt(core.bigmap.offsetX / 32), y + parseInt(core.bigmap.offsetY / 32), stepPostfix);
|
core.setAutomaticRoute(x + parseInt(core.bigmap.offsetX / 32), y + parseInt(core.bigmap.offsetY / 32), stepPostfix);
|
||||||
return true;
|
return true;
|
||||||
@ -823,12 +806,12 @@ actions.prototype._sys_keyDownCtrl = function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
////// 长按 //////
|
////// 长按 //////
|
||||||
actions.prototype.longClick = function (x, y, fromEvent) {
|
actions.prototype.longClick = function (x, y, px, py, fromEvent) {
|
||||||
if (!core.isPlaying()) return false;
|
if (!core.isPlaying()) return false;
|
||||||
return this.doRegisteredAction('longClick', x, y, fromEvent);
|
return this.doRegisteredAction('longClick', x, y, px, py, fromEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
actions.prototype._sys_longClick_lockControl = function (x, y) {
|
actions.prototype._sys_longClick_lockControl = function (x, y, px, py) {
|
||||||
if (!core.status.lockControl) return false;
|
if (!core.status.lockControl) return false;
|
||||||
if (core.status.event.id == 'text') {
|
if (core.status.event.id == 'text') {
|
||||||
core.drawText();
|
core.drawText();
|
||||||
@ -865,7 +848,7 @@ actions.prototype._sys_longClick_lockControl = function (x, y) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
actions.prototype._sys_longClick = function (x, y, fromEvent) {
|
actions.prototype._sys_longClick = function (x, y, px, py, fromEvent) {
|
||||||
if (!core.status.lockControl && !fromEvent) {
|
if (!core.status.lockControl && !fromEvent) {
|
||||||
// 虚拟键盘
|
// 虚拟键盘
|
||||||
core.waitHeroToStop(function () {
|
core.waitHeroToStop(function () {
|
||||||
@ -1017,7 +1000,7 @@ actions.prototype._onMoveConfirmBox = function (x, y) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
////// 自定义事件时的点击操作 //////
|
////// 自定义事件时的点击操作 //////
|
||||||
actions.prototype._clickAction = function (x, y) {
|
actions.prototype._clickAction = function (x, y, px, py) {
|
||||||
if (core.status.event.data.type == 'text') {
|
if (core.status.event.data.type == 'text') {
|
||||||
// 正在淡入淡出的话不执行
|
// 正在淡入淡出的话不执行
|
||||||
if (core.status.event.animateUI) return;
|
if (core.status.event.animateUI) return;
|
||||||
@ -1034,6 +1017,22 @@ actions.prototype._clickAction = function (x, y) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (core.status.event.data.type == 'wait') {
|
||||||
|
clearTimeout(core.status.event.interval);
|
||||||
|
var timeout = Math.max(0, core.status.event.timeout - new Date().getTime()) || 0;
|
||||||
|
delete core.status.event.timeout;
|
||||||
|
core.setFlag('type', 1);
|
||||||
|
core.setFlag('x', x);
|
||||||
|
core.setFlag('y', y);
|
||||||
|
core.setFlag('px', px);
|
||||||
|
core.setFlag('py', py);
|
||||||
|
core.setFlag('timeout', timeout);
|
||||||
|
core.status.route.push("input:" + (1e8 * timeout + 1000000 + 1000 * px + py));
|
||||||
|
core.events.__action_wait_afterGet(core.status.event.data.current);
|
||||||
|
core.doAction();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (core.status.event.data.type == 'choices') {
|
if (core.status.event.data.type == 'choices') {
|
||||||
// 选项
|
// 选项
|
||||||
var data = core.status.event.data.current;
|
var data = core.status.event.data.current;
|
||||||
@ -3043,10 +3042,10 @@ actions.prototype._clickKeyBoard = function (x, y) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
////// 光标界面时的点击操作 //////
|
////// 光标界面时的点击操作 //////
|
||||||
actions.prototype._clickCursor = function (x, y) {
|
actions.prototype._clickCursor = function (x, y, px, py) {
|
||||||
if (x == core.status.automaticRoute.cursorX && y == core.status.automaticRoute.cursorY) {
|
if (x == core.status.automaticRoute.cursorX && y == core.status.automaticRoute.cursorY) {
|
||||||
core.ui.closePanel();
|
core.ui.closePanel();
|
||||||
core.onclick(x, y, []);
|
core.onclick(x, y, px, py, []);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
core.status.automaticRoute.cursorX = x;
|
core.status.automaticRoute.cursorX = x;
|
||||||
@ -3092,7 +3091,9 @@ actions.prototype._keyUpCursor = function (keycode) {
|
|||||||
if (keycode == 13 || keycode == 32 || keycode == 67 || keycode == 69) {
|
if (keycode == 13 || keycode == 32 || keycode == 67 || keycode == 69) {
|
||||||
core.playSound('确定');
|
core.playSound('确定');
|
||||||
core.ui.closePanel();
|
core.ui.closePanel();
|
||||||
core.onclick(core.status.automaticRoute.cursorX, core.status.automaticRoute.cursorY, []);
|
var x = core.status.automaticRoute.cursorX;
|
||||||
|
var y = core.status.automaticRoute.cursorY;
|
||||||
|
core.onclick(x, y, 32 * x + 16, 32 * y + 16, []);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
4
runtime.d.ts
vendored
4
runtime.d.ts
vendored
@ -1271,7 +1271,7 @@ declare class actions {
|
|||||||
onup(loc: number[]): void
|
onup(loc: number[]): void
|
||||||
|
|
||||||
/** 具体点击屏幕上(x,y)点时,执行的操作 */
|
/** 具体点击屏幕上(x,y)点时,执行的操作 */
|
||||||
onclick(x: number, y: number, stepPostfix?: any): void
|
onclick(x: number, y: number, px: number, py: number, stepPostfix?: any): void
|
||||||
|
|
||||||
/** 滑动鼠标滚轮时的操作 */
|
/** 滑动鼠标滚轮时的操作 */
|
||||||
onmousewheel(direct: 1 | -1): void
|
onmousewheel(direct: 1 | -1): void
|
||||||
@ -1280,7 +1280,7 @@ declare class actions {
|
|||||||
keyDownCtrl(): void
|
keyDownCtrl(): void
|
||||||
|
|
||||||
/** 长按 */
|
/** 长按 */
|
||||||
longClick(x: number, y: number, fromEvent?: boolean): void
|
longClick(x: number, y: number, px: number, py: number, fromEvent?: boolean): void
|
||||||
|
|
||||||
/** 点击自绘状态栏时 */
|
/** 点击自绘状态栏时 */
|
||||||
onStatusBarClick(e?: MouseEvent): void
|
onStatusBarClick(e?: MouseEvent): void
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user