快速业务通道

谈Flash中的鼠标响应

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10


谈Flash中的鼠标响应
大家都知道,Flash动画能够响应鼠标动作,从而实现各式各样的人机交互。常用的鼠标都有左中右三个键。
1.左键
鼠标左键在Windows系统下担负着神圣的职责,在Flash中也不例外。Flash能够自动捕获鼠标左键的动作,并根据捕获的动作激发内置的鼠标事件,再根据用户为这些事件编写的处理函数完成对鼠标左键的响应。 按钮和影片剪辑常常用来完成响应鼠标与实现交互的过程。对于按钮,可以用关键字on定义的事件处理函数来响应左键动作。其中,press表示左键按下的事件,release表示左键释放的事件,releaseOutside表示在按钮外部释放左键的事件等等。例如,要使按钮对单击事件做出响应,可以在按钮的动作面板中添加如下代码:
on (release) { trace("单击了一下"); }

这样,在测试状态下单击该按钮时,Flash就会将信息“单击了一下”发送到输出窗口。
对于影片剪辑,也可以为其添加on事件处理函数,使其以按钮的机制响应鼠标左键。此外,也可以用影片剪辑特有的onClipEvent事件处理函数对鼠标左键做出响应。例如,mouseDown表示左键按下的事件,mouseUp表示左键抬起的事件。与按钮的pressrelease事件不同的是,mouseDownmouseUp事件不要求光标位于影片剪辑范围内。因此,如果要判断鼠标具体单击的哪个影片剪辑,还需要对鼠标位置进行检测。例如,下面的代码使得影片剪辑响应左键按下事件并在输出窗口中显示光标的位置:
onClipEvent (mouseDown) { trace("X坐标:"+_root._xmouse); trace("Y坐标:"+_root._ymouse); }




这里,_root._xmouse_root._ymouse分别表示光标相对于主场景的X坐标和Y坐标,如果省略_root,则得到光标相对于影片剪辑自身的坐标。 2.右键 鼠标的右键和中键是Flash MX 2004新开放的功能。对鼠标右键的响应主要体现在允许用户自定义右键的快捷菜单。 ContextMenu类表示快捷菜单,ContextMenuItem类表示快捷菜单中的菜单项。如下所示的代码创建ContextMenu类的一个对象my_cm
var my_cm = new ContextMenu();
ContextMenu类的customItems属性是一个数组,该数组包含了快捷菜单中的所有菜单项。要将菜单项添加到菜单中,需要使用数组的push方法,如下所示:
my_cm.customItems.push(new ContextMenuItem("旋转", func_rotate));



这样,就将“旋转”菜单项添加到了快捷菜单中,func_rotate是一个函数名,它决定了选择“旋转”菜单时所要执行的命令。下面定义该函数:
function func_rotate(obj:Object, menu:ContextMenu) { obj.onEnterFrame = function() { this._rotation += 15; }; }

这里的参数obj是系统自动捕获并传递的,它就是对鼠标右键做出响应并显示快捷菜单的对象。上面的函数使得选择“旋转”快捷菜单时对象以15°/帧的速度进行旋转。
点击浏览该文件
点击浏览该文件
3.中键
Windows环境中,鼠标中键常常用来滚屏——在使用word的时候,浏览网页的时候,甚至在一个下拉列表框中做出选择的时候——现在,也包括观看Flash的时候。当然,这同样也得归功于Flash MX 2004
表示鼠标的Mouse对象中并未定义中键滚动事件,Flash MX 2004提供onMouseWheel侦听器来检测中键滚动。因此,要使得能够对鼠标中键的滚动做出响应,就必须向Mouse对象注册onMouseWheel侦听器。代码如下:
mouseListener = new Object(); mouseListener.onMouseWheel = function(delta) { clip_mc._x += n * delta; } Mouse.addListener(mouseListener);

其中,delta表示鼠标中键的每个滚动刻度使屏幕滚动的行数,它的值由系统决定,常在1~3之间。上面的代码使得在鼠标中

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号