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
}
}
这段代码能够实现“按键无延迟触发效果”和“组合键”功能,为什么呢?
就是说代码哪些部分实现了这些功能
展开
 我来答
zb6306
2012-09-27 · TA获得超过777个赞
知道大有可为答主
回答量:2585
采纳率:66%
帮助的人:1166万
展开全部
这没有为什么呀,这就是脚本的功能呀。
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侦听器和相应函数使得按键响应不会延迟,但我不能解读出这样的效果,究竟是怎么做到的呢?
quanfe9860
2012-09-28
知道答主
回答量:31
采纳率:0%
帮助的人:7.8万
展开全部
key[e.keyCode]=true //实现鼠标按下运动一直有效

delete key[e.keyCode] //实现鼠标松开时候运动停止
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
啊龙少龙少
2012-09-27
知道答主
回答量:67
采纳率:0%
帮助的人:22.8万
展开全部
var key:Object=new Object少了();

而且感觉3.0的不是这么写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式