第四章:事件-学习笔记
1、事件的概念(视频59)
事件是SWF文件播放时发生的动作。事件分两类:
鼠标单击按键之类的称用户事件,因为它是由用户直接交互操作发生的。
Flash Player自动生成的称系统事件,因为它不是由用户操作发生的。
为使应用程序能够对事件做出反应,必须使用事件处理函数。事件处理函数是与
特定对象和事件关联的ActionScript代码。
例1,单击按钮后,显示一段话。
①新建文档→从公用库拖入1个按钮→右击按钮/动作→脚本助手→
全局函数/其它函数→双击trace→输入消息:“欢迎大家!”。代码是:
on (release) {
trace("欢迎大家!");
}
这里是代码写在按钮上的情形
②选择代码的第1行→还可选择事件的其它动作(如下)→ctrl+回车(测试)。
鼠标在按钮上事件的动作
press 按
release 释放
releaseOutside 外部释放
rollOver 按键
rollOut 滑过
dragOver 滑离
dragOut 拖过
keyPress 拖离
2、事件的处理方式(视频60)
用as处理事件的方式有三类:
(1)使用事件处理函数方法。如,
anniu_btn.onRelease=function() {
}
(2)使用事件侦听器。
(3)使用按钮和影片剪辑事件处理函数。
例2,自动显示一段话。
①新建文档→用矩形工具绘制矩形→转换为元件1/影片剪辑→右击矩形→选择“动作”;
②脚本助手→全局函数/其它函数→双击trace→输入消息:“欢迎大家!”。代码是:
onClipEvent (load) {
trace("欢迎大家!");
}
这里是代码写在影片剪辑上的情形
影片剪辑事件的动作
load 加载
enterFrame 进入帧
unload 卸载
mouseDown 鼠标向下
mouseUp 鼠标向上
mouseMove 鼠标移动
keyDown 向下键
keyUp 向上键
data 数据
3、使用事件处理函数方法(视频61)
事件处理函数由三个部分组成:
事件所应用的对象、对象的事件处理函数方法的名称、分配给事件处理函数的函数。
事件处理函数基本结构:
对象.对象的事件=function() {
//此处是你的代码,对事件作出的反应。
}
例3,事件处理函数方法
①新建文档→从公用库中拖入一按钮→用矩形工具绘制矩形→转换为元件1/影片剪辑
→分别输入实例名称:an_btn、fk_mc;
②新建代码层→右击第1帧/动作→输入:
an_btn.onPress=function() {
trace("我爱金鹰教程");
}
fk_mc.onRelease=function() {
trace("希望金鹰教程能给大家带来轻松的学习方法");
}
③ctrl+回车→按按钮、单击影片剪辑→得到下面输出结果。
4、通过动作工具箱添加命令(视频62)
(1)在按钮上添加命令onPress
①在代码层第1帧输入:an_btn.→其后插入光标;
②在工具箱中选择:ActionScript 2.0类/影片/Button/事件处理函数→双击onPress
③在第2行输入:trace("金鹰教程将陆续推出更多的教程")→自动套用格式;
(2)在影片剪辑上添加命令onEnterFrame
①在代码层第1帧输入:fk_mc.→其后插入光标;
②在工具箱中选择:ActionScript 2.0类/影片/MovieClip/事件处理函数→双击onEnterFrame
③在第2行输入:trace("金鹰教程将陆续推出更多的教程")→自动套用格式;
5、使用事件侦听器(视频63)
事件侦听器让一个对象(称作侦听器对象),接收由其它对象(称作广播器对象)生成的事件。
例如舞台上的现有对象、影片剪辑或按钮实例,或可以是任何ActionScript类的实例。
事件侦听代码基本格式:
//建立侦听对象
var 侦听对象名:Object=new Object();
//侦听对象属性
侦听对象名.现有对象的属性=function(eventObj:Object) {
//此处是你的代码
};
//返回侦听情况
现有对象.addListener(侦听对象名);
6、侦听实例-变动文本框(视频64、视频65)
①新建文档→将图层1改为文本层→文本工具→属性/选择“输入文本”→在舞台上绘制
文本框→再复制一个文本框→分别输入文本→实例名称分别是:wb1_txt、wb2_txt;
②新建代码层→右击第1帧/动作→输入:
var zt:Object=new Object();
③另起一行输入:zt.→其后插入光标→在工具箱中选择:
ActionScript 2.0类/影片/Selection/侦听器→双击onSetFocus→得到:
zt.onSetFocus = function(oldFocus, newFocus) {
}
④将 oldFocus, newFocus 改为:wb1_txt, wb2_txt
同时输入:
wb1_txt.border=true;
wb2_txt.border=flash;
又得到:
var zt:Object=new Object();
zt.onSetFocus = function(wb1_txt, wb2_txt) {
wb1_txt.border=true;
wb2_txt.border=flash;
}
⑤在工具箱中选择:
ActionScript 2.0类/影片/Selection/方法→双击addListener→得到:
Selection.addListener(zt);
⑥修改整理全部代码:
//建立侦听对象
var zt:Object=new Object();
//侦听两个文本框焦点
zt.onSetFocus = function(wb1_txt, wb2_txt) {
wb1_txt.border=false;
wb2_txt.border=true;
}
//返回侦听情况
Selection.addListener(zt);
⑦ctrl+回车→单击显示文本框。
点击查看效果
7、侦听实例-鼠标移动的位置(视频66)
①新建文档→将图层1改为文本层→文本工具→属性/选择“动态文本”→绘制文本框→实例名称:xs_txt;
②新建代码层→右击第1帧/动作→输入:
var zc:Object=new Object();
③另起一行输入:zc.→其后插入光标→在工具箱中选择:
ActionScript 2.0类/影片/Mouse/侦听器→双击onMouseMove→得到:
zc.onMouseMove = function() {
}
④输入:
xs_txt.text="X轴坐标:"+_root._xmouse+";Y轴坐标:"+_root._ymouse;
⑤另起一行→在工具箱中选择:
ActionScript 2.0类/影片/Mouse/方法→双击addListener→又得到:
Mouse.addListener(zc);
全部代码:
var zc:Object = new Object();
zc.onMouseMove = function() {
xs_txt.text = "X轴坐标:"+_root._xmouse+";Y轴坐标:"+_root._ymouse;
};
Mouse.addListener(zc);
(视频67)
(1)专家模式
①新建文档→拖入按钮→右击按钮→选择“动作”;
②手工输入代码:
on (press) {
trace("大家好!");
}
(2)脚本助手(参考例1)
①新建文档→拖入按钮→右击按钮→选择“动作”;
②脚本助手→在工具箱中选择:全局函数/其它函数→双击trace→输入消息:大家好!
③选择代码的第1行→还可选择事件的其它动作(如下)→ctrl+回车。
(3)注意事项
按钮的事件处理函数,是将代码写在按钮上,应注意:
①检验按钮是否被选中,查看动作面板中是否有“按钮”二字。
②使用按钮的事件处理函数,可不需要输入按钮的实例名称。
9、影片剪辑的事件处理函数(视频68)
请参考上面例2,类同“按钮的事件处理函数”。
10、按键的事件处理函数(视频69、视频70、视频71)
①新建文档→文本工具→属性/选择“动态文本”→绘制文本框→实例名称:xs_txt;
②新建代码层→右击第1帧/动作→输入:
var zt:Object = new Object();
③换行→输入:zt.→其后插入光标→在工具箱中选择:
ActionScript 2.0类/影片/Key/侦听器→双击onKeyDown→得到:
zt.onKeyDown = function() {
}
④输入:switch (→在工具箱中选择:
ActionScript 2.0类/影片/Key/方法→双击getAscii→得到:
switch (Key.getAscii()) {
}
//trace(Key.getAscii());
⑤输入:
case 49:
xs_txt.text= "你按了1";
break;
case 50:
xs_txt.text= "你按了2";
break;
case 51:
xs_txt.text= "你按了3";
break;
⑥换行→在工具箱中选择:
ActionScript 2.0类/影片/Key/方法→双击addListener→得到:
Key.addListener(zt)
全部代码如下:
⑦ctrl+回车→在键盘上按下按键1、2、3测试。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。