as3--簡單的文字提示隊列

_______________________________________________________________

設定隊列長度爲3,超出的長度,直接調用其消失方法即可。唯一不同的是,注意添加參數overwrite,並設置其值爲1。這裏有關於overwrite值的詳情介紹:

OverwriteManager – control how (and if and when) tweens get overwritten>>

[AS3] 請問tweenlite的overwrite問題>>

code:

1: package  

       2: {

       3:     import flash.display.Bitmap;

       4:     import flash.display.BitmapData;

       5:     import flash.display.Sprite;

       6:     import flash.filters.GlowFilter;

       7:     import flash.text.TextField;

       8:     import flash.text.TextFormat;

       9:     import flash.text.TextFormatAlign;

      10:     import gs.TweenLite;

      11:     /**

      12:      * ...

      13:      * @author Meteoric

      14:      */

      15:     public class TextMessage extends Sprite

      16:     {

      17:         private var textFormat:TextFormat = new TextFormat("Arial", 14, 0x00FF00, true);

      18:         private var glowFilter:GlowFilter = new GlowFilter(0x000000, 0.7, 2, 2, 12, 5);

      19:         

      20:         private var txtArr:Array = [];

      21:         private var tweenArr:Array = [];

      22:         

      23:         private var defaultY:Number = 80;

      24:         

      25:         public function TextMessage() 

      26:         {

      27:             this.mouseEnabled = false;

      28:             this.mouseChildren = false;

      29:         }

      30:         

      31:         public function addText(txt:String, isHTML:Boolean = false):void

      32:         {

      33:             textFormat.letterSpacing = 2;

      34:             

      35:             var sprite:Sprite = new Sprite();

      36:             addChild(sprite);

      37:             

      38:             var textField:TextField = new TextField;

      39:             textField.autoSize = TextFormatAlign.LEFT;

      40:             textField.htmlText = txt;

      41:             

      42:             if (!isHTML) 

      43:             {

      44:                 textField.setTextFormat(textFormat);

      45:             }

      46:             

      47:             var bmp:Bitmap = new Bitmap();

      48:             var bmpData:BitmapData = new BitmapData(textField.width, textField.height, true, 0x00000000);

      49:             bmpData.draw(textField);

      50:             

      51:             bmp.bitmapData = bmpData;

      52:             bmp.x = -bmp.width / 2;

      53:             bmp.filters = [glowFilter];

      54:             bmp.smoothing = true;

      55:             

      56:             sprite.addChild(bmp);

      57:             

      58:             sprite.width = bmp.width * 1.3;

      59:             sprite.height = bmp.height * 1.3;

      60:             sprite.x = 200;

      61:             sprite.y = 120;

      62:             

      63:             txtArr.push(sprite);

      64:             

      65:             var aryLen:int = txtArr.length;

      66:             

      67:             for (var i:int = 0, len:int = aryLen - 3; i < len; i++)

      68:             {

      69:                 var tempSprite:Sprite = txtArr[i] as Sprite;

      70:                 

      71:                 TweenLite.to(tempSprite, 0.2, {width:sprite.width, height:sprite.height, alpha:0, onComplete:onCompleteFunc, onCompleteParams:[tempSprite], overwrite:1});

      72:             }

      73:             

      74:             TweenLite.to(sprite, 0.2, {width:bmp.width, height:bmp.height, overwrite:1});

      75:             TweenLite.to(sprite, 0.4, {width:sprite.width, height:sprite.height, alpha:0, delay:3, onComplete:onCompleteFunc, onCompleteParams:[sprite], overwrite:0});

      76:             

      77:             len = aryLen > 3 ? aryLen - 3 : 0;

      78:             for (i = aryLen - 1; i >= len; i--)

      79:             {

      80:                 var _y:int = -27 * (aryLen - i - 1) + 100;

      81:                 TweenLite.to(txtArr[i], 0.2+(aryLen-i-1)*0.2, {y:_y,overwrite:0});

      82:             }            

      83:         }

      84:         

      85:         private function onCompleteFunc(param_1:Sprite):void 

      86:         {

      87:             

      88:             var len:int = txtArr.length;

      89:             

      90:             for (var i:int = 0; i <  len; i++)

      91:             {

      92:                 if (txtArr[i] == param_1)

      93:                 {

      94:                     var bmp:Bitmap = param_1.getChildAt(0) as Bitmap;

      95:                     bmp.bitmapData.dispose();

      96:                     param_1.removeChild(bmp);

      97:                     bmp = null;

      98:                     txtArr.splice(i,1);                    

      99:                     this.removeChild(param_1);

     100:                     param_1 = null;

     101:                     break;

     102:                 }

     103:             }

     104:         }

     105:         

     106:     }

     107:  

     108: }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章