文档详情

如何用FLASH制作方块动画特效?.doc

发布:2016-03-31约字共7页下载文档
文本预览下载声明
如何用FLASH制作方块动画特效?小编今天给大家带来一个好的方法哦,大家注意看哦。   1.新建一个flashActionscript3大小为500×300px,背景黑色。   2.在场景里,使用矩形工具(G),设置边框宽3px;画一个正方形大小个40×40px;   3.将这个正方形上点右键,转换元件(为电影剪辑);注册设置为中心;   4.选择元件,右键链接;设置类为MyBox;   5.回到场景中删除正方形;新建一个Actionscript文件并输入下面代码:   package{   importflash.display.MovieClip;   publicclassMyBoxextendsMovieClip{   //这是方块的3d坐标   publicvarxpos3D:Number=0;   publicvarypos3D:Number=0;   publicvarzpos3D:Number=0;   publicfunctionMyBox(){   }   }   }   另存为MyBox.as,注意存在flash文件的同一路径内,   6.返回主场景,在第一帧中插入下列代码:   //立体场景纵深   constMAXIMUM_Z:Number=500;   //方块数量   constNUMBER_OF_BOXES:Number=15;   //创建一个包含方块的数组;   varboxes:Array=newArray();   //视图焦距设置   varfocalLength:Number=300;   //Vanishingpoint是方块消失点;   varvanishingPointX:Number=stage.stageWidth/2;   varvanishingPointY:Number=20;   //3D方块底边位置   varfloor:Number=80;   //第一个方块深度   varstartingDepth:Number=MAXIMUM_Z;   //盒子之间的z距离值   varzDistance:Number=50;   //这个循环为由远到近的方块定位   for(vari=0;ilt;NUMBER_OF_BOXES;i++){   varbox:MyBox=newMyBox();   box.xpos3D=0;   box.ypos3D=floor;   box.zpos3D=startingDepth;   //更新方块的深度;   startingDepth-=zDistance;   //使用角度公式计算缩放比例;   varscaleRatio=focalLength/(focalLength+box.zpos3D);   //缩放坐标比例;   box.scaleX=box.scaleY=scaleRatio;   //将方块定位到场景中(由3d到2d转换)   box.x=vanishingPointX+box.xpos3D*scaleRatio;   box.y=vanishingPointY+box.ypos3D*scaleRatio;   //将方块放入数组   boxes.push(box);   //将方块加入场景   addChild(box);   }   在菜单中选择调试测试场景效果如下:   7.在以上代码后插入如下代码,用于产生动画;   //用ENTER_FRAME事件加入动画函数   addEventListener(Event.ENTER_FRAME,enterFrameHandler);   //每一帧都调用这个函数   functionenterFrameHandler(e:Event):void{   for(vari=0;ilt;NUMBER_OF_BOXES;i++){   //将box变为局部变量   varbox:MyBox=(MyBox)(boxes[i]);   //减少深度   box.zpos3D-=5;   if(box.zpos3Dlt;=-focalLength){   //最后方块始终在数组第一位   box.zpos3D=boxes[0].zpos3D+zDistance;   }   varscaleRatio=focalLength/(focalLength+box.zpos3D);   box.scaleX=box.scaleY=scaleRatio;   //设置透明度变量   box.alpha=scaleRatio-0.5;   box.x=vanishingPointX+box.xpos3D*scaleRatio;   box.y=vanishingPointY+box.ypo
显示全部
相似文档