From ee62959295d2a44ac0929b8feca43fe0aa7f840c Mon Sep 17 00:00:00 2001 From: Lorenzo Boccaccia Date: Thu, 9 Aug 2018 22:40:53 +0200 Subject: [PATCH] added keyboard support for desktop devices added keyboard listener, toggles with keyboard listen to default keys, send DEL and OK on return/backspace/delete as appropriate --- src/Element/TextField.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Element/TextField.js b/src/Element/TextField.js index 4db1b89..75ed697 100644 --- a/src/Element/TextField.js +++ b/src/Element/TextField.js @@ -86,7 +86,18 @@ SlickUI.Element.TextField.prototype.init = function() { kb.group.cameraOffset.y = this.container.root.game.height; kb.group.visible = false; var kbAnimating = false; - + var kbev = function(e) { + switch (e.keyCode) { + case 13: + g.events.onOK.dispatch(); + break; + case 8: + case 46: + g.events.onKeyPress.dispatch('DEL'); + break; + default: g.events.onKeyPress.dispatch(e.key) + } + } this.sprite.events.onInputDown.add(function () { if(kbAnimating) { return; @@ -97,6 +108,7 @@ SlickUI.Element.TextField.prototype.init = function() { this.container.root.game.add.tween(kb.group.cameraOffset).to( {y: this.container.root.game.height - kb.height}, 500, Phaser.Easing.Exponential.Out, true).onComplete.add(function () { kbAnimating = false; }); + document.addEventListener('keyup',kbev) this.events.onToggle.dispatch(true); } else { @@ -104,6 +116,7 @@ SlickUI.Element.TextField.prototype.init = function() { kbAnimating = false; kb.group.visible = false; }); + document.removeEventListener('keyup',kbev) this.events.onToggle.dispatch(false); } }, this); @@ -218,4 +231,4 @@ Object.defineProperty(SlickUI.Element.TextField.prototype, 'height', { this.init(); this.container.displayGroup.sendToBack(this.sprite); } -}); \ No newline at end of file +});