Re: [問題] 數字鍵盤

看板Flash作者 (聖石小子)時間15年前 (2010/05/16 02:13), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《zswolf (響徹雲霄的喇叭聲)》之銘言: : 我試了一下丟假的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)》之銘言: : : 我剛才試了一下 : : 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出現在文字方塊裡 : : 結論: : : 實驗失敗 @@ 我不太懂耶,為什麼要在stage dispatch event? 不是應該在文字框上dispatch,然後文字框listen to event嗎@@? 我這樣就成功了 按鈕0是bb, 文字框是tt: import flash.events.KeyboardEvent; bb.addEventListener(MouseEvent.CLICK, bbb); tt.addEventListener(KeyboardEvent.KEY_DOWN, ttt); //addEventListener(KeyboardEvent.KEY_DOWN, ttt); function bbb(e:MouseEvent):void{ tt.dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN,true,false, 48,96,0,false,false,false)); } function ttt(e:KeyboardEvent):void{ //trace("囧rz"); tt.text = String.fromCharCode(e.charCode).toString(); } 說明: "0"的charcode是48, keycode是96 我覺得不應該在stage上dispatch, 原因如下: 請先看此:http://bit.ly/9C7q39 看完了我來解釋: dispatch要這樣用:target.dispatch() 這樣事件傳遞到display list時,才知道要傳到哪個target上。 注意看連結的圖,非target的沒反應。 另外addEventListener可以偵聽在capture階段或是target-bubble階段(預設是target與 bubble階段) 見此:http://bit.ly/cFFf2R 所以可以試試看把我打的程式註解的地方執行,可以看到ttt()會執行兩次 也可以把那行改成:addEventListener(KeyboardEvent.KEY_DOWN, ttt, true); 這樣就會在事件跑到tt之前先處理了一次,一樣總共執行兩次。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.53.101 ※ 編輯: Jerrynet 來自: 115.43.53.101 (05/16 03:40)
文章代碼(AID): #1BxkHIkq (Flash)
討論串 (同標題文章)
文章代碼(AID): #1BxkHIkq (Flash)