首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex键盘事件的有关问题

2013-01-08 
flex键盘事件的问题我看网上的例子都是在文本框或者文本域中输入,然后触发键盘事件.有的用鼠标点击一下面

flex键盘事件的问题
我看网上的例子都是在文本框或者文本域中输入,然后触发键盘事件.有的用鼠标点击一下面板这样也可以触发键盘事件,但是每次都要用鼠标点击面板这样的话才能够触发键盘事件。现在我要实现的就是进入一个空的面板的页面,一进入这个页面就触发键盘事件,或者用鼠标点击一次以后就再也不用点击页面也是可以触发键盘事件. 
注明(这个mxml文件里面只有一个Canvas id为 canvas)
[解决办法]
第一次进去的时候肯定要鼠标点击一次的,因为要告诉flash,它获取了焦点啊,不然它怎么监听呢?它怎么知道你进入浏览器了没有-.-

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
creationComplete="callLater(init)" 
layout="absolute" height="100%" width="100%">
<mx:Script>
<![CDATA[
private function init():void{
Application.application.stage.addEventListener( KeyboardEvent.KEY_DOWN, onKeypress );
}
 
private function onKeypress( e:KeyboardEvent ):void{
  if(e.keyCode == Keyboard.F2){lab.text = "你按了F2";}
 if(e.keyCode == Keyboard.TAB){lab.text = "你按了TAB键";}
 if(e.keyCode == Keyboard.CONTROL){lab.text = "你按了Ctrl键";}
  if(e.keyCode == Keyboard.UP){lab.text = "你按了方向键‘上’";}
  //....其他的自己写 我只知道这么判断
}
]]>
</mx:Script>
<mx:Canvas width="100%" height="100%">
<mx:Label id="lab" />
</mx:Canvas>
</mx:Application>

[解决办法]
第一次进入页面,可以在加载swf的html文件中添加
<body onload="document.getElementById('{swf_ID}').focus()"> 
这样一开始加载,swf主页面就获得焦点,然后
在createcomplete 之后 focusManager.setFocus(‘可视化组件’);可以让单个组件获得焦点

热点排行