欢迎来到天天文库
浏览记录
ID:43088409
大小:58.00 KB
页数:23页
时间:2019-09-29
《flash_专业教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章事件除了设计制作图形和动画,Flash还可以使浏览者通过键盘、鼠标等输入设备来控制图形和动画,从而实现站点导航、游戏、在线辅导或需要浏览者进行选择等交互活动。Flash中每一个动作的产生和完成,都会有事件的存在。一、事件的相关概念事件的三个要素:1.事件对象(EventObject):事件对象是Event类或Event类子类的一个实例,它记录了所有特定事件发生的相关信息。2.事件目标(EventTarget):指调度事件的对象。3.侦听器(Listener):也称为侦听函数或侦听方法,当发生特定事件时通知它(调用以事件对象为参数的侦听函数或方法)。例如:看到一群人惊慌
2、失措地乱跑时,我们一般心里会反应“出事了”,然后是一堆问号:(1)哪里出事了?(2)出什么事了?(3)怎么办?二、事件处理1.创建事件侦听器使用事件的前提是要先注册该事件。注册事件后,事件对象、事件目标和侦听器就形成了逻辑关系。格式:事件目标.addEventListener(事件类型,侦听器)注册事件后,同时定义侦听器函数,并把事件对象作为参数传递给它,语法结构如下:function侦听函数(参数名:事件类){//code;}2.删除事件侦听器通过删除事件侦听器,使原创建的事件侦听器不再发生作用,同时释放内存,降低系统开销。格式:事件目标.removeEventListe
3、ner(事件类型,侦听器)例:functionfun(e:MouseEvent):void{trace("单击");}mc.addEventListener(MouseEvent.CLICK,fun);mc.removeEventListener(MouseEvent.CLICK,fun);三、捕获鼠标输入-鼠标事件鼠标单击将创建鼠标事件,这些事件可用来触发交互式功能。可以将事件侦听器添加到舞台上以侦听在SWF文件中任何位置发生的鼠标事件。也可以将事件侦听器添加到舞台上从InteractiveObject进行继承的对象(例如,Sprite或MovieClip)中,单击该对象
4、时将触发这些侦听器。鼠标事件主要包括——单击(CLICK),双击(DOUBLE_CLICK)-双击要使对象的doublenabled属性为true,按下鼠标(MOUSE_DOWN),释放鼠标(MOUSE_UP),将光标移动到交互对象上(MOUSE_OVER),将光标从交互对象上移开(MOUSE_OUT),在交互对象上移动光标(MOUSE_MOVE),鼠标滚轮在交互对象上移动(MOUSE_WHEEL)。1.冒泡的鼠标事件鼠标事件与键盘事件一样也会冒泡。例如,在场景中建立的Sprite类的实例是场景Stage的子级,因此,单击实例时,将从Sprite实例和Stage对象中调度事
5、件。target属性代表事件目标的对象。如果用户在包括重叠的显示列表对象的某处进行鼠标交互行为,则FlashPlayer始终会选择距离舞台层次最深的对象作为事件目标。示例:陀螺2.自定义鼠标光标可以将鼠标光标(鼠标指针)隐藏或交换为舞台上的任何显示对象。首先隐藏光标,然后创建自定义光标的实例,通过侦听调用函数设置自定义光标的位置为实际鼠标所在的位置。示例:自定义光标3.鼠标滚轮鼠标滚轮是位于鼠标左右键中间的可前后滚动的象轮子一样的按钮。通过侦听MouseEvent.MOUSE_WHEEL事件,来响应鼠标滚轮的运动和方向。鼠标滚轮有一个非常重要的属性delta,通过delta
6、可以设定用户滚动鼠标的方向和速度。正delta数值代表鼠标滚轮向前(远离用户)滚动,负delta数值代表鼠标滚轮向后(朝向用户)滚动。delta值的范围是从-3到+3,绝对值越大,滚动得越快。此设置取决于设备和操作系统,并且可由用户配置,但仅应用于MouseEvent.MOUSE_WHEEL事件。示例:滚轮运动四、捕获键盘输入-键盘事件可以使用事件侦听器来响应键盘事件。捕获并根据按键的键控代码或字符代码来执行相应的动作。键控代码keyCode属性为数值,代表键盘上的某个键,在同一键上的不同字符具有相同的键控代码值。例如:“5”和“%”具有相同的键控代码值53;“A”和“a”
7、具有相同的键控代码值65。键与其键控代码之间的映射取决于设备和操作系统。因此,不应使用键映射来触发动作,而应使用Keyboard类提供的预定义常量值来引用相应的keyCode属性。例如,对象Shift键使用Keyboard.SHIFT常量。字符代码charCode属性是某个字符的数值。“A”和“a”虽然具有相同的键控代码值,但它们的字符代码不同,“A”为65,“a”为97;大键盘和数字键盘上的“1”虽然具有不同的键控代码值,但它们具有相同的字符代码49。例:functioncodeReport(e:Keyboard
此文档下载收益归作者所有