快速业务通道

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

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号