看板 Flash 關於我們 聯絡資訊
我試了一下丟假的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