大家都知道,Flash动画能够响应鼠标动作,从而实现各式各样的人机交互。常用的鼠标都有左中右三个键。

  1.左键

  鼠标左键在Windows系统下担负着神圣的职责,在Flash中也不例外。Flash能够自动捕获鼠标左键的动作,并根据捕获的动作激发内置的鼠标事件,再根据用户为这些事件编写的处理函数完成对鼠标左键的响应。

   按钮和影片剪辑常常用来完成响应鼠标与实现交互的过程。对于按钮,可以用关键字on定义的事件处理函数来响应左键动作。其中,press表示左键按下的 事件,release表示左键释放的事件,releaseOutside表示在按钮外部释放左键的事件等等。例如,要使按钮对单击事件做出响应,可以在按 钮的动作面板中添加如下代码:

on (release) {

trace("单击了一下");

}

  这样,在测试状态下单击该按钮时,Flash就会将信息“单击了一下”发送到输出窗口。

   对于影片剪辑,也可以为其添加on事件处理函数,使其以按钮的机制响应鼠标左键。此外,也可以用影片剪辑特有的onClipEvent事件处理函数对鼠 标左键做出响应。例如,mouseDown表示左键按下的事件,mouseUp表示左键抬起的事件。与按钮的press和release事件不同的是, mouseDown和mouseUp事件不要求光标位于影片剪辑范围内。因此,如果要判断鼠标具体单击的哪个影片剪辑,还需要对鼠标位置进行检测。例如, 下面的代码使得影片剪辑响应左键按下事件并在输出窗口中显示光标的位置:

字串7

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() { 字串1

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之间。上面的代码使得在鼠标中键滚动时,实例clip_mc一次向左或向右移n*delta像素,移动的方向是由中键滚动的方向决定的。

转载于:https://blog.51cto.com/zhangjf/50237

谈Flash中的鼠标响应相关推荐

  1. 【动画技巧】在Flash中自定义鼠标外观

    在Flash中实现自定义鼠标外观非常简单,可以直接通过一个MovieClip就实现了,新建一个Flash程序,然后添加一个影片剪辑原件,如下图示. 在这个新建的Flash元件里,可以通过绘图工具绘制或 ...

  2. 【转载】浅谈 flash 中的设计模式:模版

    文章来之:http://blog.zol.com.cn/822/article_821479.html 我们开发过程中肯定会希望这次做的东西下次还能用,于是我们提出了面向对象的开发方法,就是把开发过程 ...

  3. angularjs中按回车事件_浅谈angularjs中响应回车事件

    下面这个示例在输入框键入回车键或者点击按钮时,将输入框的值置为"Hello World!":(黄色背景内容为响应回车事件涉及到的代码) angularjs-demo test va ...

  4. MFC中鼠标响应textOut()输出文本

    最近在工作中有个关于MFC的需求:点击Table中的粗略信息,在页面中显示对应的历史详细信息.本身不是很难,但是其中因为忽视了一个小问题耽误了很多时间.由于涉及公司内部代码,只贴出部分并修改供理解思想 ...

  5. 我的FLASH情结2010—— 浅谈FLASH WEB GAME与创业

    声明:本文系转载,对原文有删节,出处链接地址 ★目录: →FLASH WEB GAME的系统架构 →FLASH WEB GAME的前端架构与人事分工 →前端与美术的配合 →前端与后端的配合 ===== ...

  6. 【推荐】我的FLASH情结2010——浅谈FLASH WEB GAME与创业(2)

    ★FLASH WEB GAME的前端架构与人事分工 →前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的,而这些很大程度上又是由项目本身决定的.纵观现在国内绝大多数FLASH WEB GAM ...

  7. 了解在Flash中的编程工作

    本文节选自<Flash MX professional 2004 第一步>(陈冰著) 第十八章 了解在Flash中的编程工作 妈妈,这扇大门好雄伟好辉煌啊,它通向哪里? 宝贝,它通向编程的 ...

  8. oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念 Nested loop join: Outer - phpStudy...

    浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...

  9. 浅谈JAVA中如何利用socket进行网络编程(二)

    转自:http://developer.51cto.com/art/201106/268386.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...

最新文章

  1. JAVA CLASSPATH 和PATH的区别 经典
  2. petalinux2020.1 uboot 无法正常加载的问题
  3. 仿iphone日历插件(beta)
  4. JMeter3.0 post参数/BeanShell中文乱码问题
  5. Decorator Pattern - C# 3.0 Design Patterns
  6. python循环报数游戏_python经典面试题之一:猴子报数
  7. 英伟达jetson TX1的caffe-ssd配置
  8. vc6开发一个抓包软件_开发一个软件多少钱?3种软件开发公司报价
  9. Visual Studio 2013 Xamarin for iOS 环境搭建
  10. 字符集_超详细的MySQL数据库字符集总结,值得收藏
  11. WINDOWS常用端口
  12. Java ME游戏编程_Java ME游戏编程(第2版)
  13. 杭电Oj刷题(2009)
  14. 上瘾啦,又用 Python 制作销售数据可视化看板
  15. 实验一 数据库、表的创建与维护
  16. 【推理加速】博客翻译:利用融合conv和bn的方法加速模型
  17. 使用 Travis 打造 SpringBoot 应用持续集成和自动部署 | Travis CI 初体验
  18. 笔记本独显无输出_双显卡笔记本独显消失怎么回事|笔记本双显卡独显没了怎么解决|笔记本双显卡切换独显方法...
  19. Agens Graph常用语法总结
  20. C# 关于递归算法 具象化

热门文章

  1. oracle mseq,一次RMAN备份报错的诊断过程(一)
  2. java word转图片tiff_Word 2010中将文档保存为TIFF图片的方法
  3. 修改java bean,java – 以编程方式修改Spring bean
  4. java 类型 转换 valueOf和parse...
  5. flask-sqlalchemy Configuration
  6. opencv-api pyrDown
  7. matlab 预测值一样,matlab BP神经网络建造如下,预测时,预测值反归一化报错,求大神指教!!!!!...
  8. mysql数据库密码为空_注意MySQL 数据库用户root密码为空_MySQL
  9. vSphere虚拟化使用第三方备份方案常见CBT故障实战处理
  10. Horizon View 7 发布Win10桌面二:即时克隆桌面池配置