• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>FLASH AS 编程>AS基础篇>Flash CS3>文章内容
  • Flash CS3 +AS3键盘事件
  • 来源:egoldy flashblog 作者:egoldy 2007-05-24 【

在As3.0中的键盘事件使用中,除了键盘事件之外,还要先获取它的焦点.如果不想指定焦点,也可以直接使用stage来做为侦听对象.如下测试是一个盒子,通过键盘来控制它的移动.这里的测试主要是键盘组合键.如下代码:
package cn.com.webstudio{
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
public class KeyCodes extends Sprite {
private var box:Sprite;
public function KeyCodes() {
init();
}

在上面的代码中,可以按左右和下移动方块,向上移动时要同时按住ctrl+上箭头,在接下来的测试中,将代码

case Keyboard.UP :
if (event.ctrlKey) {
box.y-= 10;
}

换成为
case 65:
if (event.ctrlKey) {
box.y-= 10;
}

如果能成功,也就是说同时按下ctrl+a键来向上移动盒子.但并没有成功.而使用shift键确可以成功.如代码:
case 65:
if (event.shiftKey) {
box.y-= 10;
}

private function init():void {
box=new Sprite();
addChild(box);
box.graphics.beginFill(0xff0000);
box.graphics.drawRect(0,0,40,40);
box.graphics.endFill();
box.x=stage.stageWidth / 2;
box.y=stage.stageHeight / 2;
stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyboardEvent);

}
public function onKeyboardEvent(event:KeyboardEvent):void {
switch (event.keyCode) {
case Keyboard.UP :
if (event.ctrlKey) {
box.y-= 10;
}

break;
case Keyboard.DOWN :
box.y+= 10;
break;
case Keyboard.LEFT :
box.x-= 10;
break;
case Keyboard.RIGHT :
box.x+= 10;
break;
default :
break;
}

}
}

}

break;

break;

break;

目前为止并没有找到问题的原因.在用其它方法测试时,发现无论什么时候按下ctrl键它总会覆盖掉a的键值.而shift就不会.不知原因何在.
如果你也想测试一下,可以在这里下载源文件

/upimg/soft/5/1_070524085205.rar

btw:还有一小点就是在flash ide中会侦听一些键子的操作,在测试影片时,在影片的窗口中选择control菜单,选择disable keyboard shotcuts.即可.




上一篇:Fireworks CS3 组件参数设置面板修正补丁   下一篇:Flash CS3 帮助面板
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
推荐内容

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)