基于TweenMax的一个烟花效果模仿

 在国外的网站看到很炫的烟花效果,于是自己模仿了一个。因为只是练习一下时间线操作,因此对于细节没有追求到极致。看起来国外作品的散开点更清晰,另外烟花的随机元素更多。我这个只是简单的控制了一下几个随机因素。

国外作品:

 

我的仿作(点击舞台放烟花):

 

XML/HTML代码
  1. package {  
  2.       
  3.     import com.greensock.TweenMax;  
  4.     import com.greensock.TimelineMax;  
  5.     import com.greensock.plugins.*;  
  6.     import com.greensock.easing.*;  
  7.     import com.greensock.loading.*;  
  8.     import com.greensock.layout.*;  
  9.     import com.greensock.events.LoaderEvent;  
  10.       
  11.     import flash.events.MouseEvent;  
  12.     import flash.events.Event;  
  13.     import flash.display.MovieClip;  
  14.     import flash.display.Stage;  
  15.     import flash.display.StageDisplayState;  
  16.     import flash.display.StageAlign;  
  17.     import flash.display.StageScaleMode;  
  18.     import index.base.func.Random;  
  19.       
  20.     public class fireworks extends MovieClip {  
  21.           
  22.         public var id:int;  
  23.         var tl:TimelineMax = new TimelineMax({paused: true});  
  24.         var tt:Number = 1;  
  25.         var _a:MovieClip;  
  26.           
  27.         public function fireworks() {  
  28.             TweenPlugin.activate([FrameLabelPlugin, VisiblePlugin,ScalePlugin,BlurFilterPlugin]);  
  29.             _a = this.getChildByName("a") as MovieClip;  
  30.             _a.core.gotoAndStop("end");  
  31.             stage.addEventListener(MouseEvent.CLICK, clickH);  
  32.               
  33.         }  
  34.           
  35.         private function clickH(e:MouseEvent):void   
  36.         {  
  37.             _a.x = mouseX;  
  38.             _a.y = mouseY;  
  39.             blast();  
  40.         }  
  41.           
  42.           
  43.         //爆开  
  44.         function blast():void {  
  45.             TweenMax.fromTo(_a.core, .6, { frameLabel:"start" }, { frameLabel:"end" } );  
  46.               
  47.             //炸开  
  48.             for (var i:int = 0; i < 30; i++)   
  49.             {  
  50.                 var _b:MovieClip = new star();  
  51.                 _a.addChild(_b);  
  52.                 _b.rotation = Random.range(0, 360);  
  53.                 TweenMax.to(_b, 0, { tint:Random.color(), scale:Random.range(.5, 2)  
  54.                 , glowFilter: { color:0xffffff, blurX:18, blurY:18, strength:30, alpha:.4 }  
  55.                 } );  
  56.                 TweenMax.to(_b.core, .6, {scale:0.5,x:Random.range(80,260,false) } );  
  57.                 TweenMax.to(_b, .6, {alpha:0,y:"50",delay:.4 } );  
  58.                   
  59.             }  
  60.               
  61.         }  
  62.           
  63.   
  64.       
  65.     }  
  66.   
  67. }  

 



[本日志由 admin 于 2013-02-18 07:53 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 6307
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 支持Gravatar头像.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 300 字 | UBB代码 关闭 | [img]标签 关闭