WEB开发网
开发学院图形图像Flash flash特效原理:粒子爆 阅读

flash特效原理:粒子爆

 2010-03-02 00:00:00 来源:WEB开发网   
核心提示: 其中:Ball 为通过库链接的链接过来的影片剪辑,因此在创建这个程序的时候,flash特效原理:粒子爆(2),可以在元件库里面 自行添加进去,尝试更改粒子的样貌,速度不一样,角度也不样25.privatefunctionMouseDownHandler(event:MouseEvent):voi

其中:Ball 为通过库链接的链接过来的影片剪辑,因此在创建这个程序的时候,可以在元件库里面 自行添加进去,尝试更改粒子的样貌,这样效果会呈现出不同的形态。

flash特效原理:粒子爆

这个只是一个元件,缩放元件的大小,产生的效果也不一样,周边的白色边,加上一些高光的效果,就能够发挥出不错的夜光性。

再对其进行修正,粒子的轨迹也可以是不按随机的,也可以按随机的方向。这样不同的做法,效果看起来会更加不错,相信你会创建出很多很多绚丽的特效,而这些事情就需要去完善。

   1. package   
   2. {  
   3.   
   4.   
   5.     import flash.display.MovieClip;  
   6.     import flash.display.DisplayObject;  
   7.     import flash.events.*;  
   8.   
   9.     public class Main extends MovieClip  
  10.     {  
  11.   
  12.         //private var list:Array=new Array();//管理粒子  
  13.         //private var speed:int=5;  
  14.         private var contain:MovieClip=new MovieClip();//容器管理粒子  
  15.         public function Main()  
  16.         {  
  17.             init();  
  18.         }  
  19.         private function init():void  
  20.         {  
  21.             addChild(contain);  
  22.             stage.addEventListener(MouseEvent.MOUSE_DOWN,MouseDownHandler);  
  23.         }  
  24.         //生成粒子,200个小球,然后向不同的方向移动,速度不一样,角度也不样  
  25.         private function MouseDownHandler(event:MouseEvent):void  
  26.         {  
  27.             for (var i:int=0; i<200; i++)  
  28.             {  
  29.                 var ball:Ball=new Ball();  
  30.                 contain.addChild(ball);  
  31.                 ball.x=mouseX;  
  32.                 ball.y=mouseY;  
  33.                 ball.vx=Math.random()*4+2;//随机生成不同的x速度  
  34.                 ball.vy=Math.random()*5+2;//随机生成不同的y速度  
  35.                 //ball.alpha=Math.random()+0.1;  
  36.                 var angle:Number=Math.atan2(Math.random()*400-ball.y,Math.random()*550-ball.x);//随机一个角度  
  37.                 ball.angle=angle;  
  38.                 ball.addEventListener(Event.ENTER_FRAME,BallMove);  
  39.                 //list.push(ball);  
  40.             }  
  41.         }  
  42.         //每一个粒子的移动  
  43.         private function BallMove(event:Event):void  
  44.         {  
  45.             event.currentTarget.x+=Math.cos(event.currentTarget.angle)*event.currentTarget.vx;  
  46.             event.currentTarget.y+=Math.sin(event.currentTarget.angle)*event.currentTarget.vy;  
  47.             //drawLine(mouseX,mouseY,event.currentTarget.x,event.currentTarget.y);  
  48.             if (event.currentTarget.y<0 || event.currentTarget.y>stage.stageHeight||  
  49.             event.currentTarget.x<0 || event.currentTarget.x>stage.stageWidth  
  50.             )  
  51.             {  
  52.                 event.currentTarget.removeEventListener(Event.ENTER_FRAME,BallMove);  
  53.                 contain.removeChild(DisplayObject(event.currentTarget));  
  54.             }  
  55.         }  
  56.         //绘制线条,这个方法你可以尝试一下,  
  57.         private function drawLine(x1,y1,x2,y2:Number):void  
  58.         {  
  59.             graphics.clear();  
  60.             graphics.lineStyle(1,0xff0000);  
  61.   
  62.             for (var i:int=0; i<=contain.numChildren; i++)  
  63.             {  
  64.                 graphics.moveTo(x1,y1);  
  65.                 graphics.lineTo(contain.getChildAt(i).x,contain.getChildAt(i).y);  
  66.             }  
  67.         }  
  68.     }  
  69. }  

上一页  1 2 

Tags:flash 特效 原理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接