as3.0键盘控制影片剪辑移动的问题

现在舞台有一个名为block的影片剪辑,我想用方向键控制它移动。但是为什么当我按下一个键时,它是先移动一下然后停顿一会之后再持续移动,并且我同时按下左键和上键的时候blo... 现在舞台有一个名为block的影片剪辑,我想用方向键控制它移动。但是为什么当我按下一个键时,它是先移动一下然后停顿一会之后再持续移动,并且我同时按下左键和上键的时候block也不会向左上方移动,该如何解决这个问题?希望能给出完整的 写在帧上 的代码! 展开
 我来答
远方来鹏
2014-09-09 · TA获得超过159个赞
知道小有建树答主
回答量:285
采纳率:100%
帮助的人:212万
展开全部
keyDown本来就是这样设计的,假设你有一个游戏,你需要按下就暂停,你就是用的KEYDOWN撒,但是你的游戏暂停只是一瞬间,不可能一直在哪里暂停撒!像你这样 按下要持续移动就不能简单的用KEYDOWN了,你得结合enterFrame!下面是代码
stage.addEventListener(KeyboardEvent.KEY_DOWN,keydown)
stage.addEventListener(KeyboardEvent.KEY_UP,keyup)
var down:Boolean=false;
function keydown(e:KeyboardEvent){
down=true
stage.addEventListener(Event.ENTER_FRAME,render)
}
function keyup(e:KeyboardEvent){
down=false
stage.removeEventListener(Event.ENTER_FRAME,render)
}
function render(e:Event){
if(down){
ball.x=ball.x+10;
}else{

}
}
更多追问追答
追问
我想把它改成用方向键控制的,不过试了很多次都不行,能告诉我在哪改吗
追答
stage.addEventListener(KeyboardEvent.KEY_DOWN,keydown)
stage.addEventListener(KeyboardEvent.KEY_UP,keyup)
var down:Boolean=false;
function keydown(e:KeyboardEvent){
if(e.keyCode==87){//////////这里试新添加的内容,如果按下w就移动,W的keyCode是87,每个按键的键值你可以trace出来看!
down=true

stage.addEventListener(Event.ENTER_FRAME,render)
}
}
function keyup(e:KeyboardEvent){

down=false
stage.removeEventListener(Event.ENTER_FRAME,render)
}
function render(e:Event){
if(down){
ball.x=ball.x+10;
}else{

}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式