flash as3.0 键盘控制,求高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:36:41
要用键盘控制一个影片剪辑在屏幕中移动!
stage.addEventListener(KeyboardEvent.KEY_DOWN,tkmove);

//键盘控制坦克移动
function tkmove(key:KeyboardEvent) {
if (key.keyCode==37||key.keyCode==65) {
this.tank_mc.x-=moveSpeed;
}
if (key.keyCode==38||key.keyCode==87) {
this.tank_mc.y-=moveSpeed;
}

if (key.keyCode==39||key.keyCode==68) {
this.tank_mc.x+=moveSpeed;
}
if (key.keyCode==40||key.keyCode==83) {
this.tank_mc.y+=moveSpeed;
}
}
在flash2.0中用Key.isDown()移动非常顺滑,可用3.0的stage.addEventListener(KeyboardEvent.KEY_DOWN,tkmove);转换方向前总有0点几秒的停顿,感觉转换方向非常僵硬。可不想用2.0写,有高手知道解决方法吗??
谢谢 chin0102 不过这篇文章主要是讲键盘组合的!
我的问题是 键盘控制转换方向总有0.几秒的停顿! 比如我按右方向键 tank先会向右移动一下,然后停顿0.5秒再继续移动.

谢谢 彬塞苍冥 回答 不过as3.0没key_press 加了key_up 没用

http://bbs.actionscript3.cn/viewthread.php?tid=10213

我的意思是参照上面链接里的方法
var rightStatus:Boolean;
当你按下右方向键 ,rightStatus=true;
当你松开右方向键 ,rightStatus=false;

然后tank移动的具体实现 放在一个ENTER_FRAME事件中
if(rightStatus){
tank.x += xxx;
}

我觉得这样就能解决你的问题了,你可以试试.

keyborad有三个属性,除了key_down,key_up,还有key_press,这个你设置成和key_down一样的属性就行了。