【ActionScript】使用鼠标移动元件与元件相交判断函数hitTest
2015-06-11 09:02
417 查看
在《【ActionScript】使用键盘移动元件》(点击打开链接)中介绍了键盘如何与ActionScript2.0交互。本文继续介绍鼠标如何与ActionScript2.0的交互。其实鼠标与ActionScript2.0的交互在《【ActionScript】利用复制影片duplicateMovieClip与鼠标拖动跟随startDrag做出鼠标移动特效》(点击打开链接)已经展示过了,只是这个程序中,鼠标与ActionScript2.0的交互不是主角。
下面写出如下的程序,来说明这个问题:
图中有两个半圆,可以被鼠标任意拖动,它们相交与否在屏幕的左上角给出提示。
一、基本布局
1、首先在Flash中新建一个ActionScript2.0的文档,利用椭圆工具拖出一个椭圆。之后利用选择工具选择椭圆的一半,将其转化为元件。另一半,则用选择工具,单击,选中之后同样如此,转化为元件。
2、之后,利用文本工具,在屏幕的左上角,加入一个动态文本,设置其X:0,Y:0,400x100,字体为40px,消除锯齿为“使用设备字体”,关键是在“选项”一栏,赋予其变量名为"txt"
二、脚本编程
1、对两个半圆分别添加动作,如《【ActionScript】使用键盘移动元件》(点击打开链接)一样,而不是时间轴。
对于左半圆,其脚本如下,hisTest的返回值为true或false,如果两组件相交则true,否则false。
下面写出如下的程序,来说明这个问题:
图中有两个半圆,可以被鼠标任意拖动,它们相交与否在屏幕的左上角给出提示。
一、基本布局
1、首先在Flash中新建一个ActionScript2.0的文档,利用椭圆工具拖出一个椭圆。之后利用选择工具选择椭圆的一半,将其转化为元件。另一半,则用选择工具,单击,选中之后同样如此,转化为元件。
2、之后,利用文本工具,在屏幕的左上角,加入一个动态文本,设置其X:0,Y:0,400x100,字体为40px,消除锯齿为“使用设备字体”,关键是在“选项”一栏,赋予其变量名为"txt"
二、脚本编程
1、对两个半圆分别添加动作,如《【ActionScript】使用键盘移动元件》(点击打开链接)一样,而不是时间轴。
对于左半圆,其脚本如下,hisTest的返回值为true或false,如果两组件相交则true,否则false。
on (press) {//鼠标在此元件左键按下的事件 startDrag("_root.left",false);//开始拖动,拖动时,不强制鼠标在此元件的中心 if (_root.left.hitTest(_root.right))//如果左半圆与右半圆相交与否,在动态文本显示 { _root.txt = "相交"; } else { _root.txt = "不相交"; } } on (release) {//鼠标在此元件左键按下并释放的事件 if (_root.left.hitTest(_root.right)) { _root.txt = "相交"; } else { _root.txt = "不相交"; } stopDrag();//停止拖动 }2、之后的右半圆的脚本同理,只是变更了对象名而已。
on (press) { startDrag("_root.right",false); if (_root.left.hitTest(_root.right)) { _root.txt = "相交"; } else { _root.txt = "不相交"; } } on (release) { if (_root.left.hitTest(_root.right)) { _root.txt = "相交"; } else { _root.txt = "不相交"; } stopDrag(); }至此,这个程序写完。同样是鼠标拖动事件。《【ActionScript】利用复制影片duplicateMovieClip与鼠标拖动跟随startDrag做出鼠标移动特效》(点击打开链接)强制,鼠标移动时,强制把鼠标归于元件的中心。这里则不是。
相关文章推荐
- C++对象模型之编译器如何处理函数返回一个对象
- 使用ECharts报表统计公司考勤加班,大家加班多吗?
- 序列化 NSKeyedArchiver,NSPropertyListSerialization
- 编写、调试linux常用命令杂记
- stm32.cube(二)——HAL结构及初始化
- eclipse使用技巧
- oracle获取拼音首字母函数
- VS2013MFC单文档工程学习笔记三 - 按钮添加响应事件
- MIGO+103收货到GR冻结库存和MB1B+344从非限制到冻结区别?
- C++对象模型之详述C++对象的内存布局
- hbase列表排序
- CMD命令行中以管理员权限启动应用程序实现方法
- Java基础
- Linux系统的命令源代码的获取方法
- 实验四
- Hadoop项目实战-用户行为分析之应用概述(三)
- 部署高可用的分布式文件系统(DFS)
- 部署高可用的分布式文件系统(DFS)
- chdir与getcwd
- ERROR: Can't get master address from ZooKeeper; znode data == null