as3.0键盘控制影片剪辑移动的问题
现在舞台有一个名为block的影片剪辑,我想用方向键控制它移动。但是为什么当我按下一个键时,它是先移动一下然后停顿一会之后再持续移动,并且我同时按下左键和上键的时候blo...
现在舞台有一个名为block的影片剪辑,我想用方向键控制它移动。但是为什么当我按下一个键时,它是先移动一下然后停顿一会之后再持续移动,并且我同时按下左键和上键的时候block也不会向左上方移动,该如何解决这个问题?希望能给出完整的 写在帧上 的代码!
展开
1个回答
展开全部
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){
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{
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询