ToolTip終極寫法,氣泡提示

來源:互聯網
上載者:User
package com.zqgame.army.contrl{/** * 自訂氣泡提示 *@author zhoujie *@date 2011-8-9 **/import flash.display.DisplayObject;import flash.display.DisplayObjectContainer;import flash.display.Sprite;import flash.events.MouseEvent;import flash.text.TextField;import flash.text.TextFieldAutoSize;import flash.text.TextFormat;import flash.utils.Dictionary;public class ToolTip extends Sprite{private var dic:Dictionary=new Dictionary();private var label:TextField;private var _backgound:Sprite;public function ToolTip(){super();initUI();}static private var _instance:ToolTip;static public function getInstance():ToolTip{if(!_instance)_instance=new ToolTip();return _instance;}private function regesterModule(area:*):void{if(area is DisplayObjectContainer){if(dic[area.name])return;dic[area.name]=1;area.addEventListener(MouseEvent.MOUSE_OVER,mouseMoveFunc);area.addEventListener(MouseEvent.MOUSE_OUT,mouseMoveFunc);}else{var pa:DisplayObjectContainer= (area as DisplayObject).parent as DisplayObjectContainer;if(dic[pa.name])return;dic[pa.name]=2;pa.addEventListener(MouseEvent.MOUSE_OVER,mouseMoveFunc);pa.addEventListener(MouseEvent.MOUSE_OUT,mouseMoveFunc);}}public function createToolTip(area:*,mess:String):void{dic[area.name+"mess"]=mess;regesterModule(area);}private function mouseMoveFunc(evt:MouseEvent):void{switch(evt.type){case MouseEvent.MOUSE_OUT :hide(evt);break;case MouseEvent.MOUSE_OVER :show(evt);break;}}private function hide(evt:MouseEvent):void{this.parent.removeChild(this);}private function show(evt:MouseEvent):void{var cont:DisplayObjectContainer= evt.currentTarget as DisplayObjectContainer;if(dic[cont.name]==2){var dis:DisplayObject=evt.target as DisplayObject;if(!dic[dis.name+"mess"])return;label.htmlText=dic[dis.name+"mess"];redraw(5,5);(evt.currentTarget as DisplayObjectContainer).addChild(this);this.x=dis.x+10;this.y=dis.y-10;}else{var obj:DisplayObjectContainer= evt.currentTarget as DisplayObjectContainer;if(!dic[obj.name+"mess"])return;label.htmlText=dic[obj.name+"mess"];redraw(20,20);obj.parent.addChild(this);this.x=obj.x+100;this.y=obj.y;}}private function redraw(w:Number,h:Number) :void{   w += label.width;   h += label.height;              this.graphics.clear();  this.graphics.beginFill(0x000000, 0.4);  this.graphics.beginFill(0xffffff);  this.graphics.drawRoundRect(0, 0, w, h, 5, 5);  this.graphics.endFill();  }  private function initUI():void{label = new TextField();  label.autoSize = TextFieldAutoSize.LEFT;  label.selectable = false;  label.multiline = false;  label.wordWrap = false;  label.defaultTextFormat = new TextFormat("宋體", 12, 0x666666);  label.text = "提示資訊";  label.x = 5;  label.y = 2;  addChild(label);   mouseEnabled = mouseChildren = false;  }public function closeToolTip(area:*):void{if(dic[area.name]){delete dic[area.name];delete dic[area.name+"mess"];}area.removeEventListener(MouseEvent.MOUSE_OVER,mouseMoveFunc);area.removeEventListener(MouseEvent.MOUSE_OUT,mouseMoveFunc);}}}

花了一天的時間才寫出來,在網上找了很多材料,但是發現都不能通用,而且調用起來,特別複雜,所以自己寫了一個,只用一句代碼就可以了。

createToolTip()直接調用該方法,然後傳顯示對象和提示文本,注意,該顯示對象為任意對象,可以是button,也可以是mc等。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.