作者zswolf (響徹雲霄的喇叭聲)
看板Flash
標題Re: [問題] 數字鍵盤
時間Sat May 15 22:49:39 2010
我試了一下丟假的keyboardEvent可行耶
init()
function init(){
stage.addEventListener(MouseEvent.CLICK,stageClick)
stage.addEventListener(KeyboardEvent.KEY_DOWN,fakeKey)
}
function stageClick(_e:MouseEvent){
stage.dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN,true,false,0,0))
}
function fakeKey(_e:KeyboardEvent){
txt.text=_e.keyCode.toString()
}
這樣就收的到假的keyboardEvent了
不過我想了一下原Po的問題
為何一定要丟keyboardEvent出去@@
有點不太懂
※ 引述《etrexetrex (moonet)》之銘言:
: ※ 引述《DoraTerry (哆啦泰瑞)》之銘言:
: : 我想在flash上做九個按鈕(0~9)的數字鍵盤
: : 然後只要按下0的按鈕 效果就像直接在鍵盤按下0一樣
: : fl裡面好像都是教怎麼抓鍵盤輸入的訊號
: : 有辦法自己模擬鍵盤的訊號嗎?
: : 爬文有找到一篇類似的問題
: : 但是他講解的方法我查了f1以後還是不太清楚
: : → cjcat2266:如果是要完全模擬鍵盤訊號,用AS3的話讓stage丟出一個 06/09 18:53
: : → cjcat2266:"假的"KeyboardEvent就好了,請F1搜尋EventDispatcher的 06/09 18:53
: : → cjcat2266:dispatchEvent()這個method 06/09 18:53
: : 麻煩大家了
: 我剛才試了一下
: : //事件模擬
: function simulateKeyDown(keyCode:uint):void{
: var e:KeyboardEvent =
: new KeyboardEvent( KeyboardEvent.KEY_DOWN,
: true,
: false,
: keyCode,
: 0 );
: stage.dispatchEvent( e );
: }
: : //滑鼠事件
: function whenMouseDown(event:MouseEvent):void{
: simulateKeyDown(65);
: }
: stage.addEventListener(MouseEvent.MOUSE_DOWN, whenMouseDown);
: 實驗結果:
: 畫面中有個文字方塊,我用滑鼠點他,卻沒有A出現在文字方塊裡
: 結論:
: 實驗失敗
--
他去摸頭的就是手,剩下的就是腳了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.48.111
推 dsmwang:咦,原來dispatchEvent的作用就是發射假Event? 05/15 23:04
推 etrexetrex:可是文字輸入到文字方塊這種事情應該不需要自己監聽 05/15 23:06