HTML5超帅动画制作-LTweenLite的妙用

lufylegend.js是一个开源的HTML5游戏引擎,在游戏中往往会有各种的动画,这些动画有些是flash文件,有些是视频文件,本次就来利用lufylegend制作一个帅气的游戏动画,如下图。


一,准备工作

准备工作当然就是引擎的下载了。

二,制作过程

要做动画,一般是要用到时间轴,在lufylegend.js引擎中时间轴事件用法如下

[javascript] view plaincopy

  1. layer.addEventListener(LEvent.ENTER_FRAME, onframe);  

比如我们让一个对象A不断的向右移动,我们可一这么做

[javascript] view plaincopy

  1. layer.addEventListener(LEvent.ENTER_FRAME, onframe);  
  2. function onframe(event){  
  3.     A.x += 1;  
  4. }  

时间轴是游戏和动画的制作中最常用的方法,但是本次制作动画,采用另一种做法,就是LTweenLite
LTweenLite
lufylegend.js引擎中的缓动类,在动画制作过程中非常的有用,甚至比一般的时间轴事件更为方便,在接下来的开发,所有的动画都是通过LTweenLite缓动类类实现的。

1,当然,要先准备HTML

[html] view plaincopy

  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="utf-8" />  
  5.     <title>effects01</title>  
  6.     <script type="text/javascript" src="http://lufylegend.com/js/lufylegend-1.8.0.simple.min.js"></script>  
  7.     <script type="text/javascript" src="http://lufylegend.com/js/lib/lufylegend.LoadingSample4-0.1.0.min.js"></script>  
  8. </head>  
  9. <body style="margin:0px 0px 0px 0px;">  
  10.     <div id="legend"></div>  
  11. <script>  
  12. <script>  
  13.     </body>  
  14. </html>  


2,接着引擎初期化,还有图片读取

[javascript] view plaincopy

  1. var imgData = [  
  2.     {name:"background",path:"background.jpg"},  
  3.     {name:"background_ad",path:"background_ad.jpg"},  
  4.     {name:"card01",path:"card01.png"},  
  5.     {name:"card02",path:"card02.png"},  
  6.     {name:"card03",path:"card03.png"},  
  7.     {name:"card04",path:"card04.png"},  
  8.     {name:"card05",path:"card05.png"},  
  9.     {name:"effects",path:"effects.png"},  
  10.     {name:"stable_assets",path:"stable_assets.png"}  
  11. ];  
  12. var dataList;  
  13. var loadingLayer,charaLayer,stageLayer;  
  14. var warshipDown,playerText,enemyText,windowUp,title,big_vs,background,swords,swords02;  
  15. if(LGlobal.canTouch){  
  16.     LGlobal.stageScale = LStageScaleMode.EXACT_FIT;  
  17.     LSystem.screen(LStage.FULL_SCREEN);  
  18. }  
  19. init(20,"legend",320,410,main);  
  20. function main(){  
  21.     loadingLayer = new LoadingSample4();  
  22.     addChild(loadingLayer);  
  23.     /**读取图片*/  
  24.     LLoadManage.load(imgData,  
  25.         function(progress){  
  26.             loadingLayer.setProgress(progress);  
  27.         },gameInit);  
  28. }  

上面代码,当使用手机浏览的时候,会设定界面为全屏。

3,建立一个自动闪烁的背景

[javascript] view plaincopy

  1. /** 
  2.  * 背景 
  3.  * */  
  4. function BackGround(bg01,bg02){  
  5.     var self = this;  
  6.     base(self,LSprite,[]);  
  7.     self.bitmapBG01 = new LBitmap(new LBitmapData(bg01));  
  8.     self.addChild(self.bitmapBG01);  
  9.     self.bitmapBG02 = new LBitmap(new LBitmapData(bg02));  
  10.     self.addChild(self.bitmapBG02);  
  11.     self.run();  
  12. }  
  13. /** 
  14.  * 让背景类的两个图片中的上层图片,不断的交替显示和隐藏状态,以达到明暗交替闪烁的效果 
  15.  * */  
  16. BackGround.prototype.run = function(){  
  17.     var self = this;  
  18.     var tween = LTweenLite.to(self.bitmapBG02,0.5,{alpha:0,ease:Bounce.easeIn}).  
  19.     to(self.bitmapBG02,0.5,{alpha:1,ease:Bounce.easeIn,onComplete:function(){  
  20.         self.run();  
  21.     }});  
  22. }  

上面代码,用到了lufylegend.js引擎1.8.0版本的新功能,连续缓动,并且当缓动结束之后,再调用本身的run函数,从而实现了循环。

4,一艘不断发射炮弹的战舰

[javascript] view plaincopy

  1. /** 
  2.  * 战舰 
  3.  * */  
  4. function Warship(shipData,shotData){  
  5.     var self = this;  
  6.     base(self,LSprite,[]);  
  7.     self.bitmapShip = new LBitmap(shipData);  
  8.     self.addChild(self.bitmapShip);  
  9.   
  10.     self.bitmapShot = new LBitmap(shotData);  
  11.     self.bitmapShot.x = -10;  
  12.     self.bitmapShot.y = self.bitmapShip.y + 123;  
  13.     self.addChild(self.bitmapShot);  
  14.     self.bitmapShot.rotate = -75;  
  15.     self.bitmapShot.alpha = 0;  
  16.   
  17.     self.bitmapShot02 = new LBitmap(shotData);  
  18.     self.bitmapShot02.scaleX = self.bitmapShot02.scaleY = 0.7;  
  19.     self.bitmapShot02.x = 65;  
  20.     self.bitmapShot02.y = self.bitmapShip.y + 220;  
  21.     self.addChild(self.bitmapShot02);  
  22.     self.bitmapShot02.rotate = -80;  
  23.     self.bitmapShot02.alpha = 0;  
  24.   
  25.     self.run();  
  26.     self.shot();  
  27. }  
  28. /** 
  29.  * 让战舰上下浮动 
  30.  * */  
  31. Warship.prototype.run = function(){  
  32.     var self = this;  
  33.     LTweenLite.to(self.bitmapShip,1,{y:5,ease:Quad.easeInOut}).  
  34.     to(self.bitmapShip,1,{y:0,ease:Quad.easeInOut,onComplete:function(){  
  35.         self.run();  
  36.     }});  
  37. }  
  38. /** 
  39.  * 让战舰开火发炮 
  40.  * */  
  41. Warship.prototype.shot = function(){  
  42.     var self = this;  
  43.     LTweenLite.to(self.bitmapShot,0.1,{delay:1.5,alpha:1,ease:Quad.easeInOut,onUpdate:function(obj){  
  44.         obj.y = obj.parent.bitmapShip.y + 123;  
  45.     }})  
  46.     .to(self.bitmapShot,0.1,{alpha:0,ease:Quad.easeInOut})  
  47.     .to(self.bitmapShot02,0.1,{delay:0.5,alpha:1,ease:Quad.easeInOut,onUpdate:function(obj){  
  48.         obj.y = obj.parent.bitmapShip.y + 220;  
  49.     }})  
  50.     .to(self.bitmapShot02,0.1,{alpha:0,ease:Quad.easeInOut,onComplete:function(){  
  51.         self.shot();  
  52.     }});  
  53. }  

上面代码,利用了同样的方法实现了循环。

5,一个闪烁的标题

[javascript] view plaincopy

  1. /** 
  2.  * 标题 
  3.  * */  
  4. function Title(bitmapData){  
  5.     var self = this;  
  6.     base(self,LSprite,[]);  
  7.     self.bitmap = new MiddleBitmap(bitmapData);  
  8.     self.bitmap.scaleX = self.bitmap.scaleY = 0.5;  
  9.     self.addChild(self.bitmap);  
  10.     self.run();  
  11. }  
  12. /** 
  13.  * 通过改变标题的透明状态,让标题明暗交替闪烁 
  14.  * */  
  15. Title.prototype.run = function(){  
  16.     var self = this;  
  17.     LTweenLite.to(self.bitmap,1,{alpha:0.4,ease:Quad.easeInOut}).  
  18.     to(self.bitmap,1,{alpha:1,ease:Quad.easeInOut,onComplete:function(obj){  
  19.         obj.parent.run();  
  20.     }});  
  21. }  

上面代码,通过不断的改变图片的透明度,实现了标题的闪烁显示。

6,可以翻转显示图片的宝剑类

[javascript] view plaincopy

  1. /** 
  2.  * 剑,通过参数scale的直,来设定剑的图片是否翻转 
  3.  * */  
  4. function Swords(bitmapData,scale){  
  5.     var self = this;  
  6.     base(self,LSprite,[]);  
  7.     self.bitmapSwords = new LBitmap(bitmapData);  
  8.     self.bitmapSwords.x = -self.bitmapSwords.getWidth()*0.5;  
  9.     self.bitmapSwords.y = -self.bitmapSwords.getHeight()*0.5;  
  10.     if(scale == -1){  
  11.         self.bitmapSwords.scaleY = scale;  
  12.         self.bitmapSwords.y += self.bitmapSwords.getHeight();  
  13.     }  
  14.     self.addChild(self.bitmapSwords);  
  15. }  

7,将图片移动到顶点的对象。将子对象LBitmap的中心移动到该对象的原点的话,好处就是无论对象伸缩还是旋转,对象显示的位置不会发生变化了。

[javascript] view plaincopy

  1. /** 
  2.  * LBitmap对象的中心放到一个对象的原点,并返回这个对象 
  3.  * */  
  4. function MiddleBitmap(bitmapData){  
  5.     var self = this;  
  6.     base(self,LSprite,[]);  
  7.     self.bitmapTitle = new LBitmap(bitmapData);  
  8.     self.bitmapTitle.x = -self.bitmapTitle.getWidth()*0.5;  
  9.     self.bitmapTitle.y = -self.bitmapTitle.getHeight()*0.5;  
  10.     self.addChild(self.bitmapTitle);  
  11. }  

8,一个特效类

[javascript] view plaincopy

  1. /** 
  2.  * 特效类,特效图片加入后,特效显示完毕之后自动消失 
  3.  * */  
  4. function Effect(index){  
  5.     var self = this;  
  6.     base(self,LSprite,[]);  
  7.     var bitmapData;  
  8.     switch(index){  
  9.         case 0:  
  10.             bitmapData = new LBitmapData(dataList["effects"],99,45,116,96);  
  11.             break;  
  12.         case 1:  
  13.             bitmapData = new LBitmapData(dataList["effects"],102,278,110,88);  
  14.             break;  
  15.         case 2:  
  16.             bitmapData = new LBitmapData(dataList["effects"],357,85,122,127);  
  17.             break;  
  18.         case 3:  
  19.             bitmapData = new LBitmapData(dataList["effects"],346,357,108,99);  
  20.             break;  
  21.         case 4:  
  22.             bitmapData = new LBitmapData(dataList["effects"],246,918,57,62);  
  23.             break;  
  24.     }  
  25.     self.item = new MiddleBitmap(bitmapData);  
  26.     self.item.scaleX = self.item.scaleY = 0.1;  
  27.     self.addChild(self.item);  
  28.       
  29.     LTweenLite.to(self.item,0.1,{scaleX:2,scaleY:2,ease:Quad.easeInOut})  
  30.     .to(self.item,0.2,{scaleX:3,scaleY:3,alpha:0,ease:Quad.easeInOut,onComplete:function(obj){  
  31.         var eff = obj.parent;  
  32.         eff.parent.removeChild(eff);  
  33.     }});  
  34. }  

上面的特效类,当特效对象添加到画面上后,会逐渐自动消失。

9,添加人物到画面上

[javascript] view plaincopy

  1. /** 
  2.  * 添加人物图片到界面里 
  3.  * */  
  4. function setChara(){  
  5.     charaLayer = new LSprite();  
  6.     stageLayer.addChild(charaLayer);  
  7.     var charaBitmap,sy = 220;  
  8.     var charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card01"]));  
  9.     charaBitmap.scale = 0.4;  
  10.     charaBitmap.x = 110;  
  11.     charaBitmap.ty = 50;  
  12.     charaBitmap.y = sy;  
  13.     charaBitmap.alpha = 0;  
  14.     charaLayer.addChild(charaBitmap);  
  15.       
  16.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card02"]));  
  17.     charaBitmap.scale = 0.45;  
  18.     charaBitmap.x = 85;  
  19.     charaBitmap.ty = 90;  
  20.     charaBitmap.y = sy;  
  21.     charaBitmap.alpha = 0;  
  22.     charaLayer.addChild(charaBitmap);  
  23.       
  24.       
  25.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card03"]));  
  26.     charaBitmap.scale = 0.55;  
  27.     charaBitmap.x = 70;  
  28.     charaBitmap.ty = 140;  
  29.     charaBitmap.y = sy;  
  30.     charaBitmap.alpha = 0;  
  31.     charaLayer.addChild(charaBitmap);  
  32.       
  33.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card04"]));  
  34.     charaBitmap.scale = 0.65;  
  35.     charaBitmap.x = 75;  
  36.     charaBitmap.ty = 215;  
  37.     charaBitmap.y = sy;  
  38.     charaBitmap.alpha = 0;  
  39.     charaLayer.addChild(charaBitmap);  
  40.       
  41.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card05"]));  
  42.     charaBitmap.scale = 0.75;  
  43.     charaBitmap.x = 85;  
  44.     charaBitmap.ty = 280;  
  45.     charaBitmap.y = sy;  
  46.     charaBitmap.alpha = 0;  
  47.     charaLayer.addChild(charaBitmap);  
  48.       
  49.     //right  
  50.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card05"]));  
  51.     charaBitmap.scale = 0.4;  
  52.     charaBitmap.x = 215;  
  53.     charaBitmap.ty = 50;  
  54.     charaBitmap.y = sy;  
  55.     charaBitmap.alpha = 0;  
  56.     charaLayer.addChild(charaBitmap);  
  57.       
  58.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card04"]));  
  59.     charaBitmap.scale = 0.45;  
  60.     charaBitmap.x = 240;  
  61.     charaBitmap.ty = 90;  
  62.     charaBitmap.y = sy;  
  63.     charaBitmap.alpha = 0;  
  64.     charaLayer.addChild(charaBitmap);  
  65.       
  66.       
  67.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card01"]));  
  68.     charaBitmap.scale = 0.55;  
  69.     charaBitmap.x = 260;  
  70.     charaBitmap.ty = 140;  
  71.     charaBitmap.y = sy;  
  72.     charaBitmap.alpha = 0;  
  73.     charaLayer.addChild(charaBitmap);  
  74.       
  75.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card03"]));  
  76.     charaBitmap.scale = 0.65;  
  77.     charaBitmap.x = 260;  
  78.     charaBitmap.ty = 215;  
  79.     charaBitmap.y = sy;  
  80.     charaBitmap.alpha = 0;  
  81.     charaLayer.addChild(charaBitmap);  
  82.       
  83.     charaBitmap = new MiddleBitmap(new LBitmapData(dataList["card02"]));  
  84.     charaBitmap.scale = 0.75;  
  85.     charaBitmap.x = 242;  
  86.     charaBitmap.ty = 280;  
  87.     charaBitmap.y = sy;  
  88.     charaBitmap.alpha = 0;  
  89.     charaLayer.addChild(charaBitmap);  
  90. }  

向左右两边各添加五个人物,并且设定好他么最终要显示到画面上的目标位置和目标大小。

用下面的函数,可以添加一个特效

[javascript] view plaincopy

  1. function addEff(index,x,y){  
  2.     var eff = new Effect(index);  
  3.     eff.x = x;  
  4.     eff.y = y;  
  5.     stageLayer.addChild(eff);  
  6. }  


10,下面先将所有的对象添加到画面上,一开始暂时不用显示的对象,将它的visible属性设置成false

[javascript] view plaincopy

  1. /** 
  2.  * 将所有对象和图片都添加到界面上 
  3.  * */  
  4. function addItem(){  
  5.     backLayer = new LSprite();  
  6.     stageLayer.addChild(backLayer);  
  7.     backLayer.scaleX = backLayer.scaleY = 2;  
  8.       
  9.     background = new BackGround(dataList["background"],dataList["background_ad"]);  
  10.     background.x = -60;  
  11.     background.y = -50;  
  12.     backLayer.addChild(background);  
  13.       
  14.     var warship = new Warship(new LBitmapData(dataList["stable_assets"],0,0,409,480)  
  15.             ,new LBitmapData(dataList["stable_assets"],754,0,270,250));  
  16.     warship.scaleX = warship.scaleY = 0.8;  
  17.     backLayer.addChild(warship);  
  18.   
  19.       
  20.     setChara();  
  21.       
  22.     warshipDown = new LSprite();  
  23.     warshipDown.y = LGlobal.height;  
  24.     stageLayer.addChild(warshipDown);  
  25.       
  26.     var warship02 = new LBitmap(new LBitmapData(dataList["stable_assets"],0,505,720,310));  
  27.     warship02.scaleX = warship02.scaleY = 0.5;  
  28.     warship02.x = (LGlobal.width - warship02.getWidth())*0.5;  
  29.     warshipDown.addChild(warship02);  
  30.       
  31.     var small_vs = new MiddleBitmap(new LBitmapData(dataList["stable_assets"],726,502,120,120));  
  32.     small_vs.scaleX = small_vs.scaleY = 0.6;  
  33.     small_vs.x = LGlobal.width*0.5;  
  34.     small_vs.y = LGlobal.height - 355;  
  35.     warshipDown.addChild(small_vs);  
  36.       
  37.     playerText = new LTextField();  
  38.     playerText.color = "red";  
  39.     playerText.text = "player";  
  40.     playerText.x = (LGlobal.width*0.5 - playerText.getWidth())*0.5;  
  41.     playerText.y = 30;  
  42.     warshipDown.addChild(playerText);  
  43.       
  44.     enemyText = new LTextField();  
  45.     enemyText.color = "red";  
  46.     enemyText.text = "enemy";  
  47.     enemyText.x = LGlobal.width*0.5 + (LGlobal.width*0.5 - enemyText.getWidth())*0.5;  
  48.     enemyText.y = 30;  
  49.     warshipDown.addChild(enemyText);  
  50.       
  51.     windowUp = new LSprite();  
  52.     windowUp.y = -50;  
  53.     stageLayer.addChild(windowUp);  
  54.     var title_battle = new MiddleBitmap(new LBitmapData(dataList["stable_assets"],897,469,45,239));  
  55.     title_battle.rotate = -90;  
  56.     title_battle.scaleX = title_battle.scaleY = 0.55;  
  57.     title_battle.x = LGlobal.width*0.5;  
  58.     title_battle.y = 10;  
  59.     windowUp.addChild(title_battle);  
  60.       
  61.     var chain = new LBitmap(new LBitmapData(dataList["stable_assets"],880,264,71,180));  
  62.     chain.rotate = -90;  
  63.     chain.scaleX = chain.scaleY = 0.5;  
  64.     windowUp.addChild(chain);  
  65.   
  66.     var chain01 = new LBitmap(new LBitmapData(dataList["stable_assets"],851,740,100,173));  
  67.     chain01.rotate = -90;  
  68.     chain01.scaleX = chain01.scaleY = 0.6;  
  69.     chain01.x = 240;  
  70.     windowUp.addChild(chain01);  
  71.       
  72.     title = new Title(new LBitmapData(dataList["stable_assets"],415,425,405,80));  
  73.     title.x = LGlobal.width*0.5;  
  74.     title.y = 290;  
  75.     title.alpha = 0;  
  76.     title.visible = false;  
  77.     stageLayer.addChild(title);  
  78.       
  79.     big_vs = new MiddleBitmap(new LBitmapData(dataList["stable_assets"],420,5,340,330));  
  80.     big_vs.rotate = -90;  
  81.     big_vs.x = LGlobal.width*0.5;  
  82.     big_vs.y = 170;  
  83.     big_vs.alpha = 0;  
  84.     big_vs.visible = false;  
  85.     stageLayer.addChild(big_vs);  
  86.       
  87.     swords = new Swords(new LBitmapData(dataList["stable_assets"],405,335,454,89),1);  
  88.     swords.x = LGlobal.width*0.5;  
  89.     swords.y = LGlobal.height*0.5 - 60;  
  90.     swords.rotate = -135;  
  91.     swords.scaleX = swords.scaleY = 0.8;  
  92.     swords.visible = false;  
  93.     stageLayer.addChild(swords);  
  94.   
  95.     swords02 = new Swords(new LBitmapData(dataList["stable_assets"],405,335,454,89),-1);  
  96.     swords02.x = LGlobal.width*0.5;  
  97.     swords02.y = LGlobal.height*0.5 - 60;  
  98.     swords02.rotate = -45;  
  99.     swords02.scaleX = swords02.scaleY = 0.8;  
  100.     swords02.visible = false;  
  101.     stageLayer.addChild(swords02);  
  102. }  

11,利用缓动功能,实现动画。

先看第一个动画

[javascript] view plaincopy

  1. /* 
  2.  * 第一个动画开始播放 
  3.  * */  
  4. function animation01Start(event){  
  5.     if(event){  
  6.         stageLayer.die();  
  7.         stageLayer.removeAllChild();  
  8.     }  
  9.     /*添加所有对象*/  
  10.     addItem();  
  11.     /*所有人物开始缓动*/  
  12.     var charaList = charaLayer.childList,chara,delayValue,duration;  
  13.     for(var i=0,l=charaList.length;i<l i="" chara="charaList[i];" y="220;" scalex="chara.scaleY" 2="" delayvalue="0.1*i;" if="">= 5){  
  14.             delayValue = 0.1*(i - 5);  
  15.         }  
  16.         duration = 1 - delayValue;  
  17.         chara.y = 220;  
  18.         LTweenLite.to(chara,duration,{delay:delayValue,alpha:1,scaleX:chara.scale,scaleY:chara.scale,ease:Strong.easeOut})  
  19.         .to(chara,1,{y:chara.ty,ease:Strong.easeOut});  
  20.     }  
  21.     /*背景缓动,变大左移上移变小右移下移*/  
  22.     LTweenLite.to(backLayer,1,{scaleX:1.3,scaleY:1.3,x:-100,y:-50,ease:Strong.easeOut})  
  23.     .to(backLayer,1,{scaleX:1,scaleY:1,x:0,y:0,ease:Strong.easeOut});  
  24.       
  25.     /*下面窗口缓动,延时上移标题可显示+VS可显示*/  
  26.     LTweenLite.to(warshipDown,0.5,{delay:1.5,y:320,ease:Elastic.easeOut,onComplete:function(){  
  27.         title.visible = big_vs.visible = true;  
  28.     }});  
  29.       
  30.     /*上面窗口缓动,延时下移*/  
  31.     LTweenLite.to(windowUp,0.5,{delay:1.5,y:0,ease:Elastic.easeOut});  
  32.   
  33.     /*上面窗口缓动,延时不透明*/  
  34.     LTweenLite.to(title,0.2,{delay:1.5,alpha:1,ease:Elastic.easeOut});  
  35.       
  36.     /*VS标题缓动,延时不透明缩小缩小添加特效并且进入第二个动画初始化*/  
  37.     LTweenLite.to(big_vs,0.5,{delay:1.5,alpha:1,scaleX:1,scaleY:1,ease:Elastic.easeOut})  
  38.     .to(big_vs,1,{scaleX:0.45,scaleY:0.45,ease:Elastic.easeOut,onComplete:function(){  
  39.         addEff(1,big_vs.x,big_vs.y);  
  40.         addEff(1,big_vs.x,big_vs.y);  
  41.         /*所有缓动后,动画2开始准备*/  
  42.         animation02Init();  
  43.     }});  
  44. }</l>  

第二个动画

[javascript] view plaincopy

  1. /* 
  2.  * 第二个动画开始播放 
  3.  * */  
  4. function animation02Start(event){  
  5.     stageLayer.removeEventListener(LMouseEvent.MOUSE_UP, animation02Start);  
  6.     /*VS缓动,变大变透明然后消失*/  
  7.     LTweenLite.to(big_vs,1,{scaleX:2,scaleY:2,alpha:0,ease:Elastic.easeIn,onComplete:function(){  
  8.         big_vs.parent.removeChild(big_vs);  
  9.     }});  
  10.     /*背景缓动,变大变大变小*/  
  11.     LTweenLite.to(backLayer,2,{delay:1,scaleX:1.2,scaleY:1.2,x:-100,y:-50,ease:Sine.easeInOut})  
  12.         .to(backLayer,1,{scaleX:1.5,scaleY:1.5,ease:Sine.easeInOut})  
  13.         .to(backLayer,0.5,{scaleX:1,scaleY:1,x:0,y:0,ease:Sine.easeInOut});  
  14.     /*下面窗口缓动,下移上移*/  
  15.     LTweenLite.to(warshipDown,0.5,{delay:0.5,y:LGlobal.height,ease:Strong.easeOut})  
  16.     .to(warshipDown,0.5,{delay:3,y:320,ease:Strong.easeOut});  
  17.     /*上面窗口缓动,上移下移*/  
  18.     LTweenLite.to(windowUp,0.5,{delay:0.5,y:-50,ease:Strong.easeOut})  
  19.     .to(windowUp,0.5,{delay:3,y:0,ease:Strong.easeOut});  
  20.     /*标题缓动,无效果不显示+人物缓动开始显示*/  
  21.     LTweenLite.to(title,0.5,{delay:0.5,ease:Strong.easeOut,onComplete:function(obj){  
  22.         obj.visible = false;  
  23.         charaBattle();  
  24.     }})  
  25.     .to(title,0.5,{delay:3,ease:Strong.easeOut,onComplete:function(obj){  
  26.         obj.visible = true;  
  27.     }});  
  28.     /*宝剑变为可显示,且坐标设定在画面之外*/  
  29.     swords.visible = true;  
  30.     swords02.visible = true;  
  31.     swords.x = -200;  
  32.     swords02.x = LGlobal.width + 200;  
  33.     var wait = 4;  
  34.     /*左边宝剑缓动,向右移动屏幕中间*/  
  35.     LTweenLite.to(swords,0.5,{delay:wait,x:LGlobal.width*0.5,ease:Elastic.easeOut});  
  36.     /*右边宝剑缓动,向左移动屏幕中间*/  
  37.     LTweenLite.to(swords02,0.5,{delay:wait,x:LGlobal.width*0.5,ease:Elastic.easeOut});  
  38.     /*stageLayer缓动,无效果延时,结束后添加特效并且进入第一个动画初始化*/  
  39.     LTweenLite.to(stageLayer,0.2,{delay:wait,onComplete:function(){  
  40.         addEff(Math.random()*5 >> 0,LGlobal.width*0.5,LGlobal.height*0.4);  
  41.         addEff(Math.random()*5 >> 0,LGlobal.width*0.5,LGlobal.height*0.4);  
  42.         addEff(Math.random()*5 >> 0,LGlobal.width*0.5,LGlobal.height*0.4);  
  43.         animation01Init();  
  44.     }});  
  45. }  

12,最后是,两个动画结束后要添加点击事件,点击屏幕让两个动画可以相互切换

[javascript] view plaincopy

  1. /* 
  2.  * 点击画面后,第一个动画开始播放 
  3.  * */  
  4. function animation01Init(){  
  5.     stageLayer.addEventListener(LMouseEvent.MOUSE_UP, animation01Start);  
  6. }  
  7. /* 
  8.  * 点击画面后,第二个动画开始播放 
  9.  * */  
  10. function animation02Init(){  
  11.     stageLayer.addEventListener(LMouseEvent.MOUSE_UP, animation02Start);  
  12. }  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值