快速业务通道

Flash AS教程之五 拖拽动作以及碰撞动作详细讲解-1

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

  在网上经常看到的Flash影片中有的对象可以被鼠标进行拖动。例如有的类似七巧板的拼图游戏,控制音量的滑杆等,所使用的就是flash中的拖拽动作。

  一、拖拽命令详细介绍

  1、首先介绍一下开始拖拽命令的详细用法,稍后在后面的例子中进行测试。
  
  命令格式:  StartDrag(要拖动的影片剪辑,[是否锁定到鼠标位置中央,左,上,右,下])
         或写为
         要拖动的影片剪辑.StartDrag([是否锁定到鼠标位置中央,左,上,右,下])

  命令讲解:在制作动画的过程中,上面两种书写方法可任选一种。其中[]内的为可选参数,也就是可以写,也可以不写。至于左,上,右,下四个参数是用来控制被拖对象的移动范围。

  2、停止拖拽命令讲解

  命令格式: 被拖动的影片剪辑实例名.stopDrag()

  这样就可以停止对对象的拖拽动作。

  二、实例讲解

  下面来用一个简单的例子实验拖拽命令。

  操作步骤:

  1、新建一个flash文档,并在舞台上绘制一个圆形。选中圆形并按F8,将此圆形转换为影片剪辑,起名为:圆 。确定后将会在舞台上创建一个圆的实例。如下图:
  2、选中此实例,并按F9打开动作面板。输入如下脚本:
on (press) {
??this.startDrag(true);//当鼠标按下(press)之后,这个实例(因为我们把脚本写在实例本身了,所以这里用this代替影片剪辑实例的名字)可以被拖拽,使用命令如上面的命令解释。对于参数的选择方面,这里只填写了锁定到鼠标位置中央,如果想选不锁定到鼠标位置中央,可以把true改为false。有兴趣的朋友可以更改为false看看。
}
on (release) {
??this.stopDrag();//同样道理,当鼠标释放(release)之后,将停止拖拽动作。
}
  脚本书写如下图:

  3、好了,现在让我们按Ctrl+回车来测试一下吧,你将会看到舞台上的圆被你的鼠标拖动的效果。

  4、OK,通过这个例子我们可以简单的应用拖拽动作了。现在需要把这个例子继续完成,还记得上面命令讲解中的左,上,右,下四个控制拖动范围的参数吗?现在来制作具有约束拖动范围的效果。

  5、现在在舞台上绘制一个200*100大小的矩形,注意只要边框不要填充。如下图:

  6、如果我们希望在拖动的时候这个圆只能在矩形内拖动的话,就要先设置这个矩形的坐标,并记下矩形四个顶点的坐标(这点很重要!)。OK,比如,现在此例子中的矩形的四个顶点分别如上图所示。那我们要取的四个参数就应该是:左=50,上=100,右=250,下=200 现在打开动作面板,修改刚才的脚本如下:
on (press) {
??this.startDrag(true, 50, 100, 250, 200);//这里我们就使用刚才确定好的4个参数。4个点的参数就对拖动对象实现了一个矩形区域的移动约束!
}
??on (release) {
??this.stopDrag();
}

脚本编写最后效果如下图:

  7、呵呵,迫不及待的想检测你的成果吧?好了,按Ctrl+回车去测试吧!

  好了,关于拖拽的讲解先到这里,下面我们来学习如何结合着拖拽动作来检测对象之间的碰撞!不要走开哦 :) (下载这个例子的源文件
全屏欣赏

  三、碰撞命令的讲解

  命令格式:  目标影片剪辑的实例.hitTest(被拖拽的实例)  这个是比较简单的检测碰撞命令
         

         目标影片剪辑的实例.hitTest(被拖拽实例的X轴坐标,被拖拽实例的Y轴坐标,对象的矩形区域范围还是对象本身范围)  这个是比较复杂点的检测碰撞命令

  命令解释: 以上两个命令都是用来检测碰撞的,可以根据需要选择不同的命令。重点解释一下对象的矩形区域范围和对象本身范围(上面的命令中,false表示对象的矩形区域范围,true表示对象本身的范围)具体分别看下图:


关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号