AS2.0精彩特效之位图的飘动
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-09
? time = t; ? } ? //得到和设置椭圆的中心x坐标 ? public function get cen_x():Number { ? return c_x; ? } ? public function set cen_x(x:Number):Void { ? c_x = x; ? } ? //得到和设置椭圆的中心y坐标 ? public function get cen_y():Number { ?? return c_y; ? } ? public function set cen_y(y:Number):Void { ?? c_y = y; ? } ? //得到和设置椭圆在x坐标轴上的截距 ? public function get cen_a():Number { ?? return c_a; ? } ? public function set cen_a(a:Number):Void { ?? c_a = a; ? } ? //得到和设置椭圆在y坐标轴上的截距 ? public function get cen_b():Number { ?? return c_b; ? } ? public function set cen_b(b:Number):Void { ?? c_b = b; ? } ? //得到和设置椭圆上mc的数目 ? public function get num():Number { ??? return nu; ? } ? public function set num(n:Number):Void { ?? nu = n; ? } ? //设置mc的x坐标 ? public function set_x(radian:Number):Number { ?? return Math.cos(radian)*c_a+c_x; ? } ? //设置mc的y坐标 ? public function set_y(radian:Number):Number { ??? return Math.sin(radian)*c_b+c_y; ? } ? //复制,产生num个mc,并均匀分布 ? public function duplicate(obj:MovieClip) { ?? var j:Number = 1; ?? while (j<=num) { ?? obj.duplicateMovieClip("a"+j, j); ?? _root["a"+j].n = p/num*j;//每个mc的起始弧度值 ?? _root["a"+j].gotoAndStop(j);//mc跳到相应的帧 ?? _root["a"+j]._x = set_x(p/num*j); ?? _root["a"+j]._y = set_y(p/num*j);//计算坐标 ?? j++; ? } ?} ? //mc的运动 ? public function myMove(obj:MovieClip):Void { ? obj._x = set_x(obj.n+time); ? obj._y = set_y(obj.n+time);//每个mc弧度等于起始弧度值加增量time ? time = _xmouse>c_x ? time+0.005 : time-0.005; ? //根据鼠标位置确定旋转方向,0.005为旋转速度 ? } ? //坐标的转换 ? public function trans_x(obj:MovieClip):Number { ?? var x:Number = obj._x-c_x; ?? var y:Number = obj._y-c_y;//取得mc的坐标 ?? x = (y<0) ? 2*c_a-Math.abs(x) : Math.abs(x);//转换 ?? return x;//返回转换值 ? } ?//设置mc的透明度和深度 ? public function set_alpha(obj:MovieClip):Void { ?? obj._alpha = trans_x(obj)/c_a*40+20;//从20到100 ?? obj.swapDepths(trans_x(obj));//深度设置 ? } ? //设置mc的x方向的缩放 ? public function set_xscale(obj:MovieClip):Void { ?? obj._xscale = trans_x(obj)/c_a*100-100;//从-100到100 ?? obj.swapDepths(trans_x(obj)); ? } ?} ? ? 保存为Move.as,需要强调的是类里的语句 _root["a"+j].gotoAndStop(j);? ? 它是用于位图的切割。 二.实例制作方法 1、制作遮罩动画 ?????????????????????????? 图5 ??? 新建一个电影剪辑,在电影剪辑的第一层建立红色的长方形,第二层放置位图,注册点在位图的中心。在第1帧位图和长方形左端对齐,在最后一帧,位图和长方形右端对齐,第一层创建动画,并设为遮罩。如图5所示。把制作好的电影剪辑拖到场景中,实例名为myMc。 2、编写程序 新建一层,在第一帧中输入: var myMove:Move = new Move(200, 150, 10, 2, 40, 3, myMc); //建实例myMove,中心坐标(200,150),截距10和2,40为mc的数目,3为mc的起始增量 ? ? 在影片myMc上加上: onClipEvent (mouseMove) { ? _parent.myMove.myMove(this);//mc的运动 ? _parent.myMove.set_alpha(this);//mc的透明度 } ? ? ???? 把文件保存到和Move.as相同的目录中,测试。大家可修改实例中的各个参数,加深对程序的理解。 ???? 此类的其它应用:3D菜单,文字的环绕,位图的筒状效果、椭圆有关的课件等。大家可发挥想象力,为类添加一些属性和方法,制作出更多效果。 ?上一页??[1]?[2]? |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: FLASH特效之数字天地下一篇: 制作一个骄艳的鲜花情人Flash贺卡
关于AS2.0精彩特效之位图的飘动的所有评论