作者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
1F:推 dsmwang:咦,原来dispatchEvent的作用就是发射假Event? 05/15 23:04
2F:推 etrexetrex:可是文字输入到文字方块这种事情应该不需要自己监听 05/15 23:06