as3.0 键盘事件 程序解析
constKEY_A:uint=65;constKEY_D:uint=68;constKEY_S:uint=83;constKEY_W:uint=87;varkey:Ob...
const KEY_A:uint=65;
const KEY_D:uint=68;
const KEY_S:uint=83;
const KEY_W:uint=87;
var key:Object=new Object
var speed:Number=10
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown)
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp)
this.addEventListener(Event.ENTER_FRAME,test)
//按下事件侦听器
function keyDown(e:KeyboardEvent):void
{
key[e.keyCode]=true
}
//释放事件侦听器
function keyUp(e:KeyboardEvent):void
{
delete key[e.keyCode]
}
function test(e:Event):void
{
if(key[KEY_A])
{
mc.x-=speed
}
if(key[KEY_D])
{
mc.x+=speed
}
if(key[KEY_W])
{
mc.y-=speed
}
if(key[KEY_S])
{
mc.y+=speed
}
}
这段代码能够实现“按键无延迟触发效果”和“组合键”功能,为什么呢?
就是说代码哪些部分实现了这些功能 展开
const KEY_D:uint=68;
const KEY_S:uint=83;
const KEY_W:uint=87;
var key:Object=new Object
var speed:Number=10
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown)
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp)
this.addEventListener(Event.ENTER_FRAME,test)
//按下事件侦听器
function keyDown(e:KeyboardEvent):void
{
key[e.keyCode]=true
}
//释放事件侦听器
function keyUp(e:KeyboardEvent):void
{
delete key[e.keyCode]
}
function test(e:Event):void
{
if(key[KEY_A])
{
mc.x-=speed
}
if(key[KEY_D])
{
mc.x+=speed
}
if(key[KEY_W])
{
mc.y-=speed
}
if(key[KEY_S])
{
mc.y+=speed
}
}
这段代码能够实现“按键无延迟触发效果”和“组合键”功能,为什么呢?
就是说代码哪些部分实现了这些功能 展开
展开全部
这没有为什么呀,这就是脚本的功能呀。
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown)
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp)
这两句注册了键盘事件,一个是键盘按下一个是键盘弹起事件。然后由function keyDown(evt:KeyboardEvent):void{}和fuction keyUp(evt:KeyboardEvent):void{}这两个函数来完成键盘事件解触发的执行。
this.addEventListener(Event.ENTER_FRAME,test)
这是个帧频事件,侦听按键按下后参数的改变,以决定控制对象的方向。这里说的组件是指同时按下两个或是两个以上的键。
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown)
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp)
这两句注册了键盘事件,一个是键盘按下一个是键盘弹起事件。然后由function keyDown(evt:KeyboardEvent):void{}和fuction keyUp(evt:KeyboardEvent):void{}这两个函数来完成键盘事件解触发的执行。
this.addEventListener(Event.ENTER_FRAME,test)
这是个帧频事件,侦听按键按下后参数的改变,以决定控制对象的方向。这里说的组件是指同时按下两个或是两个以上的键。
追问
keydown侦听器和相应函数实现了程序中的什么功能?
书上说keydown侦听器和相应函数使得按键响应不会延迟,但我不能解读出这样的效果,究竟是怎么做到的呢?
展开全部
key[e.keyCode]=true //实现鼠标按下运动一直有效
delete key[e.keyCode] //实现鼠标松开时候运动停止
delete key[e.keyCode] //实现鼠标松开时候运动停止
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var key:Object=new Object少了();
而且感觉3.0的不是这么写的
而且感觉3.0的不是这么写的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询