设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 7985|回复: 15
打印 上一主题 下一主题

[有事请教] 怎么做的手机上返回键模拟x(返回)

[复制链接]

Lv2.观梦者

梦石
0
星屑
470
在线时间
271 小时
注册时间
2011-10-17
帖子
99
1
发表于 2018-3-5 21:28:13 | 显示全部楼层
本帖最后由 wmzmtz 于 2018-3-6 20:24 编辑
walf_man 发表于 2017-12-31 01:02
我去,你竟然能从我的插件里提取这个,那为何不试试我插件里的返回按钮键呢,支持普通界面和菜单界面的{:4_ ...

大神,我尝试了下修改您那个插件,想实现按安卓返回键时,模拟电脑esc键(呼叫菜单、关闭菜单、返回功能)

现在的结果是,每打开游戏app后,第1次按安卓返回键时,能成功模拟(当前在地图上时就是呼叫菜单,当前在菜单里就是关闭菜单或者返回上一层),但是第2次按安卓返回键时,就又成了秒退游戏

我也是没辙了,望您指教,改动的代码如下,其实就是把//menu/return button的一部分代码替换进//PreventAndroidReturnKey那段的$(window).on('popstate', function()里了:

  1. if (AXY.AjaxNetStuff.Param.PreventAndroidReturnKey) {
  2.         $(window).on('popstate', function() {
  3.                 if(!$gameMap){
  4.                         return;
  5.                 }
  6.                 if(!$gameMap._mapId){
  7.                         return;
  8.                 }
  9.                         TouchInput._events.cancelled = true;
  10.         });
  11.         window.history.pushState(null, null, '#forward');
  12. }
复制代码


另外,大神,我还想把你的//menu/return button那段改动改动,模拟别的按键。看你模拟返回是用TouchInput._events.cancelled = true实现的,请问我如果想模拟上、下、左、右、空格时,不知应该替换成什么代码呢?我对JS完全小白....

改动的代码如下,其实就是把您的代码放在了一个插件指令里启动,关键就是第30行可以怎么改才成实现模拟上下左右空格....

  1. var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  2.         Game_Interpreter.prototype.pluginCommand = function(command, args) {
  3.                 _Game_Interpreter_pluginCommand.call(this, command, args);
  4.                 if (command == "EnablePictureCommand") {

  5. //返回键
  6. if(AXY.AjaxNetStuff.Param.EnableMenuButton){
  7.         //display html first
  8.         var AXYAjaxMenuButtonTemplate =
  9.                                         '<div class="AXYAjaxMenuButtonButtonImg"><img src="img/pictures/Button-Menu.png" class="AXYAjaxMenuButtonOpen"></div>';
  10.         var AXYAjaxMenuButtonStyleCss =
  11.                         '.AXYAjaxMenuButtonButtonImg{position:fixed;z-index:10000;margin:auto;left:'+
  12.                         AXY.AjaxNetStuff.Param.ESC_X+'px;right:0;top:'+
  13.                         AXY.AjaxNetStuff.Param.ESC_Y+'px;bottom:0;pointer-events:none;}.AXYAjaxMenuButtonButtonImg img{width:'+
  14.                         AXY.AjaxNetStuff.Param.ImgWidth+'px;height:'+
  15.                         AXY.AjaxNetStuff.Param.ImgHeight+'px;opacity:'+
  16.                         AXY.AjaxNetStuff.Param.ImgOpacity+';pointer-events:auto;}';

  17.         $('body').append(AXYAjaxMenuButtonTemplate);
  18.         $('.AXYAjaxMenuButtonButtonImg').append('<style type="text/css">'+AXYAjaxMenuButtonStyleCss+'</style>');

  19.         //last bind the click
  20.         $('.AXYAjaxMenuButtonOpen').unbind('click touchend').bind('click touchend',function () {
  21.                 if(!$gameMap){
  22.                         return;
  23.                 }
  24.                 if(!$gameMap._mapId){
  25.                         return;
  26.                 }
  27. //                        TouchInput._events.cancelled = true;
  28.         });
  29. }
  30.                 }
  31.         };
复制代码









点评

有点复杂啊,我也搞不清楚,研究好了希望把代码分享给我啊^^  发表于 2018-3-13 20:27
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-9 18:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表