新知识点
onClipEvent (keyDown);// 影片的事件处理函数。触发的是按下按键事件 。 onClipEvent (keyUp) ; // 触发的是松开按键事件 。 Key.getCode() // 获得键值。
编写动作脚本
①在空 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(); 的动作。