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, {sprite.width, height:sprite.height, alpha:0, onComplete:onCompleteFunc, onCompleteParams:[tempSprite], overwrite:1});
  72:             }
  73:             
  74:             TweenLite.to(sprite, 0.2, {bmp.width, height:bmp.height, overwrite:1});
  75:             TweenLite.to(sprite, 0.4, {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: }
原文地址:https://www.cnblogs.com/meteoric_cry/p/2746994.html