我正在使用Melon.Js开发一款游戏,然后在加载它的画布上创建一个聊天窗口。 问题是当我输入时,如果按下AWDS键,角色就会移动。 有谁知道如何暂时禁用(只要焦点上的聊天窗口)角色运动?
" game.html"
<div ng-controller="ChatController">
<div class="div-chat">
<span ng-repeat="msj in chats | orderBy: 'createdAt'"> <b ng-class=""> {{msj.nick}} : </b> {{msj.mensaje}} <br></span>
</div>
<input class="form-control" type="text" ng-model="mensaje" id="msjChat">
<button type="submit" class="btn btn-default" id="btn_enviar" ng-click="envMsj()">Enviar</button>
&#34; player.js&#34;
me.input.preventDefault;
me.input.bindKey(me.input.KEY.LEFT, 'left', false,false);
me.input.bindKey(me.input.KEY.A, 'left', false,false);
me.input.bindKey(me.input.KEY.RIGHT, 'right', false,false);
me.input.bindKey(me.input.KEY.D, 'right', false,false);
me.input.bindKey(me.input.KEY.UP, 'up', false,false);
me.input.bindKey(me.input.KEY.W, 'up', false,false);
me.input.bindKey(me.input.KEY.DOWN, 'down', false,false);
me.input.bindKey(me.input.KEY.S, 'down', false,false);
我尝试使用&#34;焦点&#34;在输入中,但我无法禁用MelonJS画布中的动作
答案 0 :(得分:3)
在键入消息的输入文本中调用keyUp或keyDown事件时,可以使用stopImmediatePropagation方法。这将停止事件的传播,keyUp或keyDown事件将永远不会到达melonJS监听器。
我让你使用棱角分明。您可以实现在元素上调用此方法的指令。这是一个示例代码。
在你的javascript中:
app.directive('chat', function () {
return {
restrict: 'A',
link: function (scope, elem, attrs) {
elem.bind('keydown', function (e) {
e.stopImmediatePropagation();
return false;
});
elem.bind('keyup', function (e) {
e.stopImmediatePropagation();
return true;
});
}
};
});
在HTML中:
<input chat class="form-control" type="text" ng-model="mensaje" id="msjChat">