[英]How to Handle Input with Polymer, without blue border tab focus?
編輯2 :
在這個jsbin上工作的Keypress活動: http ://jsbin.com/foyile/1/。 問題是,我需要將標簽集中在元素上,使用這兩行代碼
ready: function() {
this.tabIndex = 0;
this.focus();
}
問題是這會導致在元素周圍繪制一個藍色邊框,當我在移動元素上執行此操作時會變得很難看,有沒有辦法在頁面上全局捕獲關鍵事件而不關注元素(或父元素)將使邊界不可見並且聚焦更自然的元素?
原始問題
是否有聚合物組件處理用戶輸入,主要是按鍵和滑動手勢。 我想創建一個游戲,我需要通過向上,向下按鈕或滑動手勢來控制玩家。
是否有聚合物方式來處理輸入,或者我需要使用本機dom和javascript?
編輯 :
根據這個答案, 沒有調用Polymer this.tabIndex = 0
事件處理程序 :必須設置this.tabIndex = 0
,這才能工作。
這是一個jsbin: http ://jsbin.com/foyile/1/。
是的,Polymer使用on-event
屬性來綁定用戶輸入的處理函數。
這是開發人員指南中的一個示例,說明了如何處理鍵輸入:
<polymer-element name="g-cool" on-keypress="{{keypressHandler}}">
<template>
<button on-click="{{buttonClick}}"></button>
</template>
<script>
Polymer({
keypressHandler: function(event, detail, sender) { ...},
buttonClick: function(event, detail, sender) { ... }
});
</script>
</polymer-element>
您可以創建自定義元素並使用綁定,如@PeteTNT中的鏈接所述。 Polymer中還有特殊的觸摸支持,請參閱http://www.polymer-project.org/docs/polymer/touch.html
但是沒有理由不在Polymer應用程序或querySelector('xxx').on['some-event'].listen(...)
使用命令事件監聽器,如querySelector('xxx').onSomeEvent.listen(...)
querySelector('xxx').on['some-event'].listen(...)
用於自定義事件(您還可以使用document.on...
或window.on...
來注冊事件。
聲明性的例子
<link rel="import" href="packages/polymer/polymer.html">
<polymer-element name="some-element">
<template>
<button on-click="{{buttonClickHandler}}">press me</button>
</template>
<script type="application/dart" src="some_element.dart">
</polymer-element>
import 'package:polymer/polymer.dart';
@CustomTag('some-element')
class SomeElement extends PolymerElement {
SomeElement.created() : super.created() {}
void buttonClickHandler(MouseEvent e) {
doSomething();
}
}
官方的Polymer.Gestures庫完全是為了這個purpouse:
不幸的是它還沒有Dart版本。
我在Dart bug Tracker上打開了一個關於此問題的問題,如果你想要明星吧:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.