[AS3]提示信息类-ToolTip

本文介绍了一个使用ActionScript 3.0 (AS3) 开发的提示信息类ToolTip,该类可以创建自定义的提示框,应用于按钮悬停显示说明文字等场景,并提供了完整的代码实现及演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文摘自:http://www.klstudio.com/post/158.html

 

[AS3]提示信息类-ToolTip

ToolTip类

  1. /**  
  2. * @author Kinglong  
  3. * @version 0.1  
  4. */  
  5.   
  6. package project.happy9.browse {   
  7.        
  8.     import flash.display.*;    
  9.     import flash.events.*;   
  10.     import flash.text.*;   
  11.     import flash.utils.*;   
  12.     import flash.filters.*;   
  13.        
  14.     public class ToolTip extends Sprite {   
  15.            
  16.         private static var _instance:ToolTip;   
  17.            
  18.         private var _label:TextField;          
  19.         public function ToolTip(base:Sprite) {   
  20.             _label = new TextField();   
  21.             _label.autoSize = TextFieldAutoSize.LEFT;   
  22.             _label.textColor = 0x333333;   
  23.             _label.text = " ";   
  24.             _label.selectable = false;   
  25.             _label.x = 3;   
  26.             _label.y = 2;   
  27.             addChild(_label);              
  28.             filters = [getBitmapFilter()];   
  29.             base.addChild(this);               
  30.             _instance = this;   
  31.             _hide();   
  32.         }   
  33.            
  34.         public static function show(lbl:String):void {   
  35.             if (_instance == null) {   
  36.                 return;   
  37.             }   
  38.             _instance._show(lbl);   
  39.         }   
  40.            
  41.         public function _show(lbl:String):void {   
  42.             visible = true;   
  43.             _label.text = lbl;   
  44.             updateShape();   
  45.         }   
  46.            
  47.         public static function hide():void {   
  48.             if (_instance == null) {   
  49.                 return;   
  50.             }   
  51.             _instance._hide();   
  52.         }      
  53.            
  54.         public function _hide():void {   
  55.             visible = false;   
  56.         }   
  57.            
  58.         public static function move(x:Number, y:Number):void {   
  59.             if (_instance == null) {   
  60.                 return;   
  61.             }   
  62.             _instance._move(x, y);             
  63.         }   
  64.            
  65.         public function _move(x:Number, y:Number):void {   
  66.             this.x = (x+this.width>stage.stageWidth)?stage.stageWidth-this.width:x;   
  67.             this.y = y - this.height;   
  68.         }   
  69.            
  70.         private function changeHandler(event:Event):void {   
  71.             updateShape();   
  72.         }   
  73.            
  74.         private function updateShape():void {   
  75.             var w:Number = _label.textWidth + 8;               
  76.             var h:Number = 23;   
  77.             graphics.clear();   
  78.             graphics.beginFill(0x6F0A13);   
  79.             graphics.drawRoundRect(0, 0, w, h, 7, 7);   
  80.             graphics.endFill();   
  81.             graphics.beginFill(0xFFFFE1);   
  82.             graphics.drawRoundRect(1, 1, w-2, h-2, 7, 7);   
  83.             graphics.endFill();            
  84.         }   
  85.            
  86.         private function getBitmapFilter():BitmapFilter {   
  87.             var color:Number = 0x000000;   
  88.             var alpha:Number = 0.3;   
  89.             var blurX:Number = 5;   
  90.             var blurY:Number = 5;   
  91.             var strength:Number = 2;   
  92.             var inner:Boolean = false;   
  93.             var knockout:Boolean = false;   
  94.             var quality:Number = BitmapFilterQuality.HIGH;   
  95.   
  96.             return new GlowFilter(color,   
  97.                                   alpha,   
  98.                                   blurX,   
  99.                                   blurY,   
  100.                                   strength,   
  101.                                   quality,   
  102.                                   inner,   
  103.                                   knockout);   
  104.         }      
  105.            
  106.   
  107.     }   
  108.        
  109. }  
/** * @author Kinglong * @version 0.1 */ package project.happy9.browse { import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.filters.*; public class ToolTip extends Sprite { private static var _instance:ToolTip; private var _label:TextField; public function ToolTip(base:Sprite) { _label = new TextField(); _label.autoSize = TextFieldAutoSize.LEFT; _label.textColor = 0x333333; _label.text = " "; _label.selectable = false; _label.x = 3; _label.y = 2; addChild(_label); filters = [getBitmapFilter()]; base.addChild(this); _instance = this; _hide(); } public static function show(lbl:String):void { if (_instance == null) { return; } _instance._show(lbl); } public function _show(lbl:String):void { visible = true; _label.text = lbl; updateShape(); } public static function hide():void { if (_instance == null) { return; } _instance._hide(); } public function _hide():void { visible = false; } public static function move(x:Number, y:Number):void { if (_instance == null) { return; } _instance._move(x, y); } public function _move(x:Number, y:Number):void { this.x = (x+this.width>stage.stageWidth)?stage.stageWidth-this.width:x; this.y = y - this.height; } private function changeHandler(event:Event):void { updateShape(); } private function updateShape():void { var w:Number = _label.textWidth + 8; var h:Number = 23; graphics.clear(); graphics.beginFill(0x6F0A13); graphics.drawRoundRect(0, 0, w, h, 7, 7); graphics.endFill(); graphics.beginFill(0xFFFFE1); graphics.drawRoundRect(1, 1, w-2, h-2, 7, 7); graphics.endFill(); } private function getBitmapFilter():BitmapFilter { var color:Number = 0x000000; var alpha:Number = 0.3; var blurX:Number = 5; var blurY:Number = 5; var strength:Number = 2; var inner:Boolean = false; var knockout:Boolean = false; var quality:Number = BitmapFilterQuality.HIGH; return new GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout); } } }

调用实例
  1. /**  
  2. * @author Kinglong  
  3. * @version 0.1  
  4. */  
  5.   
  6. package project.test {   
  7.   
  8.     import flash.display.*;   
  9.     import flash.events.*;     
  10.        
  11.     import fl.controls.*;   
  12.        
  13.     import project.happy9.browse.ToolTip;   
  14.   
  15.     public class TestToolTip extends Sprite{   
  16.            
  17.         private var _names:Array = ["我是按钮A","我是按钮B","我是按钮C","我是按钮D"];   
  18.         public function TestToolTip() {   
  19.             for (var i:uint = 0; i < _names.length; i++ ) {   
  20.                 var button:Button = new Button();   
  21.                 button.label = "button_" + i;   
  22.                 button.move(2,30*i+10);   
  23.                 button.addEventListener(MouseEvent.MOUSE_OVER, overHandler);   
  24.                 button.addEventListener(MouseEvent.MOUSE_OUT, outHandler);   
  25.                 button.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler);       
  26.                 addChild(button);   
  27.             }   
  28.             new ToolTip(this);   
  29.         }   
  30.   
  31.         private function overHandler(event:MouseEvent):void{   
  32.             var arr:Array = event.target.label.split("_");   
  33.             ToolTip.show(_names[int(arr[1])]);   
  34.             ToolTip.move(event.stageX,event.stageY);   
  35.         }   
  36.            
  37.         private function outHandler(event:MouseEvent):void {   
  38.             ToolTip.hide();   
  39.         }   
  40.            
  41.         private function moveHandler(event:MouseEvent):void {   
  42.             ToolTip.move(event.stageX,event.stageY);   
  43.         }   
  44.     }   
  45.        
  46. }  
/** * @author Kinglong * @version 0.1 */ package project.test { import flash.display.*; import flash.events.*; import fl.controls.*; import project.happy9.browse.ToolTip; public class TestToolTip extends Sprite{ private var _names:Array = ["我是按钮A","我是按钮B","我是按钮C","我是按钮D"]; public function TestToolTip() { for (var i:uint = 0; i < _names.length; i++ ) { var button:Button = new Button(); button.label = "button_" + i; button.move(2,30*i+10); button.addEventListener(MouseEvent.MOUSE_OVER, overHandler); button.addEventListener(MouseEvent.MOUSE_OUT, outHandler); button.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler); addChild(button); } new ToolTip(this); } private function overHandler(event:MouseEvent):void{ var arr:Array = event.target.label.split("_"); ToolTip.show(_names[int(arr[1])]); ToolTip.move(event.stageX,event.stageY); } private function outHandler(event:MouseEvent):void { ToolTip.hide(); } private function moveHandler(event:MouseEvent):void { ToolTip.move(event.stageX,event.stageY); } } }

演示效果


应"求救"的要求,我把相关文件打包,以提供下载
http://www.klstudio.com/demo/test/tooltip.rar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游鱼_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值