您的位置:首页 > 其它

【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。

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做出鼠标移动特效》(点击打开链接)强制,鼠标移动时,强制把鼠标归于元件的中心。这里则不是。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: