Flash AS入门教程:影片剪辑第五节拖动与碰撞检测
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-08
本例继续讲解AS的基础知识,今天我们来学习Flash AS入门系列教程第七课:影片剪辑第五节拖动与碰撞检测~~ 上一节:Flash AS入门教程:影片剪辑的深度 第五节 拖动与碰撞检测 AS的一个重要优势就是可以实现交互动画,一些特效不用AS也是可以做出来的,但交互的动画不用AS则是无法实现的。拖动MC则是交互动画的一个例子。 startDrag() 函数或 MovieClip.startDrag() 方法: 使用startDrag()可以实现拖动效果。格式: MC.startDrag(一个布尔值,左边,上边,右边,下边); 这个方法中的所有参数都是可选的,即可要可不要。下面介绍一下这些参数: 一个布尔值:true或false。当设定为true时鼠标位置将锁定在要拖动的MC的注册点上。想一想我们要自定义鼠标指针,这个参数是不是很有用呢? 后面的4个边,确定了MC可以被拖动的范围。想一想我们要做一个控制滑条这几个参数是不是很有用呢? 下面练习一下: 自定义鼠标指针: 新建一个MC,画一个或找一个你喜欢的鼠标图形,图形应该有一个较尖的部位作为针尖吧?将这个针尖与窗口中的十字对齐。回到主场景,将这个MC拖到舞台上,打开属性面板,实例名称为:mouse_mc;打开帧动作面板输入: Mouse.hide(); mouse_mc.startDrag(true); 测试影片,你会发现你的鼠标已经变成你喜欢的图形了。 代码中第一句将系统鼠标隐藏起来,第二句使你的图形可以拖动了,并且鼠标指针被定位在针尖处。使用自定义鼠标要注意的是,你不能再拖动第二个MC,因为一次只能拖动一个MC,当你拖动第二个MC时,你的鼠标图形将不会再被拖动了。 stopDrag()方法: 上面介绍了开始拖动MC的方法,开始拖动总得有停止拖的时候啊,这个方法就是停止拖动。我们回想一下拖动一个MC的过程,一般来说,都是点下鼠标左键不放,就可以拖动了,放开鼠标后就停止拖动,是这样的吧?所以一般将startDrag()放到MC的onPress事件(点下鼠标时)中,而将 stopDrag()放到onRelease事件(放开鼠标时)中。 滑动控制条: 有时我们会用到滑动控制条,比如控制音量大小,播放进度等。那么滑块就需要用到拖动的方法。 用矩形工具画一个细长的矩形,笔触填充公随你喜欢,要不要都行,至少要一个吧?将它转换为MC,双击它进入编辑状态,打开对齐面板选择相对于舞台,左对齐,回到主场景,打开属性面板,实例名称为blt_mc。然后再画一个很短的矩形,做滑块,也转换为MC,也同细长的矩形一样的做法,只是居中对齐,最后的实例名为hk_mc。 blt_mc移到你想它所处的位置,将hk_mc移到blt_mc上。 在帧动作面板中输入: l = blt_mc._x; r = l+blt_mc._width; h = blt_mc._y; hk_mc.onPress = function(){ this.startDrag("true",l,h,r,h); } hk_mc.onRelease = function(){ stopDrag(); num = (hk_mc._x-blt_mc._x)/blt_mc._width; } 测试影片,拖动滑块会发现滑块只能在进度条的范围内拖动了。这是因为我们对startDrag()由于方法运用了4个参数:l,r,h.它们分别是进度条的左右边的x位置及y轴的位置。滑块的移动范围被限定在这个范围内。 从上面的代码中可以看出,当鼠标放开时会产生一个num变量,这个变量是用滑块的x坐标减去进度条的x坐标除以进度条的长度,这样就可以得到一个0~1的数字。有了这个数字,我们就可以用于任何需要用数字控制的对象了。 关键词:
|
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Flash实例教程:扇形面积计算器下一篇: PS初学者实例教程——简单的效果字
关于Flash AS入门教程:影片剪辑第五节拖动与碰撞检测的所有评论