手机
当前位置:查字典教程网 >网页设计 >Flash教程 >Flash AS 实例进阶 键值捕获实现代码
Flash AS 实例进阶 键值捕获实现代码
摘要:Flash动画的交互性是通过鼠标和键盘进行,前面的章节讲的都是鼠标控制,本节开始接触键盘控制,响应键盘的方法有几种,但归根结底可以用一句通俗...

Flash 动画的交互性是通过鼠标和键盘进行,前面的章节讲的都是鼠标控制,本节开始接触键盘控制,响应键盘的方法有几种,但归根结底可以用一句通俗的话概括,就是程序运行中,发现哪个键被按下了,并执行相应的动作,这里介绍的是通过判断获取的键控代码值来实现键盘控制,还是老套路,使用一个这样的实例,这是去年作的一个练习, 就叫距离产生美吧。

Flash AS 实例进阶 键值捕获实现代码1

源文件下载

Flash AS 实例进阶 键值捕获实现代码2

点击查看动画效果<实例2-9 键盘控制

基本思路

① 主场景中放置 2 个保持一定距离的 MC 。

②再放置一个空 MC 用来写脚本,当然,也可以写到前面的 MC 实例上,这样是便于阅读和理解脚本。

③按下↑↓←→键两个 MC 都向同方向运动,并始终保持固定的距离和前后关系,还要保持朝向和移动的方向的一致

④设定边线,不向线外运动。

⑤松开按键,两 MC 保持原始方向。

新知识点

复制代码代码如下:

onClipEvent (keyDown);// 影片的事件处理函数。触发的是按下按键事件 。

onClipEvent (keyUp) ; // 触发的是松开按键事件 。

Key.getCode() // 获得键值。

本实例只用到了 4 个键值,但为全面了解,将一个别人所写最新教程的键控代码值和键常量表复制下来。

Flash AS 实例进阶 键值捕获实现代码3

图 2 — 2 键控代码

Flash AS 实例进阶 键值捕获实现代码4

图 2 — 3 键常量

实例说明

好象没什么需要说明,就是 QG 追 QM ,总也追不到。

编写动作脚本

①在空 MC 上输入:

复制代码代码如下:

onClipEvent (keyDown) {// 按键事件触发

s = 1;

if (Key.getCode() == 37) {// 条件为获取的键值为“ 37 ” 即“ ←”的键值。

_root.qa.play();

_root.qb.play();

_root.qa._x -= s;

_root.qa._xscale = -_xscale;// 令MC“ qa ”水平翻转

_root.qb._xscale = _xscale;

_root.qb._x = _root.qa._x-80;// 令MC“ qb ”水平位置到“ qa ”左边

}

if (Key.getCode() == 39) {// 条件为获取的键值为“ 39 ” 即“ →”的键值。

_root.qa._xscale = _xscale;

_root.qa.play();

_root.qb.play();

_root.qa._x += s;

_root.qb._xscale = -_xscale; // 令MC“ qb ”水平翻转

_root.qb._x = _root.qa._x+80; 令MC“ qb ”水平位置到“ qa ”右边

}

if (Key.getCode() == 38) {// 条件为获取的键值为“ 38 ” 即“ ↑”的键值。

_root.qa._y -= s*2;

_root.qb._y = _root.qa._y;

}

if (Key.getCode() == 40) {// 条件为获取的键值为“ 40 ” 即“ ↓”的键值。

_root.qa._y += s*2;

_root.qb._y = _root.qa._y;

}

if (_root.qa._x<100) {// 以下 4 条语句是限制边界

_root.qa._x = 100;

}

if (_root.qa._x>430) {

_root.qa._x = 430;

}

if (_root.qa._y<50) {

_root.qa._y = 50;

}

if (_root.qa._y>320) {

_root.qa._y = 320;

}

}

onClipEvent (keyUp) {// 释放键触发

_root.qa.stop();

_root.qb.stop();

if (_root.qa._x<_root.qb._x) {// 依据两个MC“qa”和“qb”的左右位置,确定翻转与否,而保证是相向而立。

_root.qa._xscale = _xscale;

_root.qb._xscale = _xscale;

} else {

_root.qa._xscale = -_xscale;

_root.qb._xscale = -_xscale;

}

}

要点分析

① Key.getCode() == 37 可以写成 Key.getCode() == Key.LEFT ,“ Key.LEFT ”是与左箭头键的键控代码值 (37) 关联的常量,初学或需给别人看,用这样方式写好,直观明了,而直接用键值写能省点劲,我是那里省力写这里费力说。

②这里 onClipEvent (keyDown) 结合 Key.getCode() == () 的脚本,事件触发是主体,而获取键值只是确定该有啥动作的的条件,不要以为 if (Key.getCode() == 37) { _root.qa.play(); }就可以有 _root.qa.play(); 的动作。

小结

响应键盘是游戏和课件中普遍应用的,什么物体运动呀飞行呀,开炮放枪的,都需要键盘来实现人机交互,根据学习进度的要求,本节只介绍了通过MC的按键事件触发和键值捕获的方法来实现键盘控制,也是比较简单实用的方法,咱们是不用招法多,好用就中。

课后练习

大改源文件,让一个Q满场乱跑,另一个Q由键盘控制去追,追上之后出现一个新画面,提示:没准辙的瞎跑当然要用随机函数,追上的语句就用我们学过的知识用X.Y坐标值的差来判断, MC 的碰撞方法或碰撞检测的组件大家还没学 , 我也不会。范例效果:

Flash AS 实例进阶 键值捕获实现代码2

点击查看动画效果<练习2-9

Flash AS 实例进阶 键值捕获实现代码1

源文件

Flash AS 实例进阶 键值捕获实现代码5

查看全套"Flash AS 实例进阶教程"

【Flash AS 实例进阶 键值捕获实现代码】相关文章:

Flash AS 实例进阶 导航条实现方法

Flash CS3快捷键大全

Flash AS 入门 为“关键帧”添加动作

Flash AS 实例进阶 循环按钮

Flash cs4中按钮添加链接网页代码

Flash AS 入门 鼠标跟随的应用实现

Flash AS 实例进阶 遮罩效果实例讲解

Flash AS 实例进阶 图片闪白切换效果实现代码

Flash AS解决中文mp3乱码

AS3.0加载FLV视频的方法及实现代码

精品推荐
分类导航