·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3写的文字提示类toolTip类

时间:2014-01-03 11:39zpointer.iteye.com
[AS3]as3写的文字提示类toolTip类,自己写的一个toolTipWindow.as效果肯定没有kinglong的toolTip.as好. 只能暂时用着了

以前一直用kinglong写的toolTip类,挺好用的.但最近总出现问题,不是toolTip的错,应该是我使用不当:当有两帧时,每帧都需要热区 提示,但是翻来翻去就会出错,一直很郁闷.所以就自己写了一个toolTipWindow.as效果肯定没有kinglong的toolTip.as好. 只能暂时用着了,向大家学习中....
下在是类文件代码:

  1. package  
  2. { 
  3.  import flash.display.DisplayObject; 
  4.  import flash.display.MovieClip; 
  5.  import flash.display.Sprite; 
  6.  import flash.display.Graphics; 
  7.  import flash.text.TextField; 
  8.  import flash.text.TextFieldAutoSize; 
  9.  import flash.text.TextFormat; 
  10.  import flash.events.MouseEvent; 
  11.  import flash.events.Event; 
  12.  import flash.geom.Point; 
  13.  import flash.display.DisplayObjectContainer; 
  14.   
  15.  /** 
  16.   * ...文字提示类用法... 
  17.   * @author zkl 
  18.   * @time 2010-7-27 
  19.   * @QQ:344209679 
  20.   */ 
  21.  public class toolTipWindow extends Sprite 
  22.  { 
  23.   private var _sprite:Sprite; 
  24.   private var _label:TextField; 
  25.   private var obj:DisplayObjectContainer; 
  26.   private var mc:DisplayObject; 
  27.   private var str:String; 
  28.    
  29.      /** 
  30.      * ...构造函数 
  31.      * 参数:显示对象容器,显示对象,显示内容 
  32.   * 如:new toolTipWindow(this, titleTS, "我是中国人"); 
  33.      */ 
  34.   public function toolTipWindow(obj:DisplayObjectContainer,mc:DisplayObject,str:String):void 
  35.   { 
  36.    this.obj = obj; 
  37.       this.mc = mc; 
  38.    this.str = str; 
  39.     
  40.    init(); 
  41.   } 
  42.   private function init():void 
  43.   { 
  44.    drawRect(); 
  45.    configListener();  
  46.   } 
  47.      /** 
  48.      * ... 
  49.      * 配置鼠标事件 CuPlayer.com
  50.      */ 
  51.   private function configListener():void 
  52.   { 
  53.       mc.addEventListener(MouseEvent.MOUSE_OVER, mouseHandler); 
  54.       mc.addEventListener(MouseEvent.MOUSE_MOVE, mouseHandler); 
  55.    mc.addEventListener(MouseEvent.MOUSE_OUT, mouseHandler); 
  56.    mc.addEventListener(Event.REMOVED_FROM_STAGE, removeListener); 
  57.   } 
  58.      /** 
  59.      * ... 
  60.      * 鼠标事件监听 
  61.      */ 
  62.   private function mouseHandler(e:MouseEvent):void 
  63.   { 
  64.    switch(e.type) { 
  65.     case MouseEvent.MOUSE_OVER: 
  66.     _sprite.x = obj.mouseX - 5; 
  67.     _sprite.y = obj.mouseY - _sprite.height - 10;  
  68.     _sprite.visible = true; 
  69.     break; 
  70.     case MouseEvent.MOUSE_MOVE: 
  71.      
  72.     _sprite.x = obj.mouseX - 5; 
  73.     _sprite.y = obj.mouseY - _sprite.height - 10;  
  74.     break; 
  75.     case MouseEvent.MOUSE_OUT: 
  76.     _sprite.visible = false; 
  77.     break; 
  78.    } 
  79.   } 
  80.    
  81.      /** 
  82.      * ... 
  83.      * 显示提示框 CuPlayer.com
  84.      */ 
  85.   private function drawRect():void 
  86.   { 
  87.    _sprite = new Sprite; 
  88.    obj.addChild(_sprite); 
  89.     
  90.       _label = new TextField;  
  91.    _label.autoSize = TextFieldAutoSize.LEFT; 
  92.    _label.defaultTextFormat = new TextFormat("宋体", 14, 0x000000); 
  93.    _label.selectable = false; 
  94.    _label.multiline = false; 
  95.    _label.wordWrap = false; 
  96.    _label.text = str; 
  97.    _sprite.addChild(_label); 
  98.    _label.x = 5; 
  99.    _label.y = 2; 
  100.     
  101.    var w:Number = 10 + _label.width; 
  102.    var h:Number = 4 + _label.height; 
  103.     
  104.    _sprite.graphics.clear(); 
  105.    _sprite.graphics.beginFill(0x000000, 0.4); 
  106.    _sprite.graphics.drawRoundRect(3, 3, w, h, 5, 5);     
  107.    _sprite.graphics.moveTo(6, 3 + h); 
  108.    _sprite.graphics.lineTo(12, 3 + h); 
  109.    _sprite.graphics.lineTo(9, 8 + h); 
  110.    _sprite.graphics.lineTo(6, 3 + h); 
  111.    _sprite.graphics.endFill(); 
  112.    _sprite.graphics.beginFill(0xFFFFCC); 
  113.    _sprite.graphics.drawRoundRect(0, 0, w, h, 5, 5); 
  114.    _sprite.graphics.moveTo(3, h); 
  115.    _sprite.graphics.lineTo(9, h); 
  116.    _sprite.graphics.lineTo(6, 5 + h); 
  117.    _sprite.graphics.lineTo(3, h); 
  118.    _sprite.graphics.endFill(); 
  119.     
  120.    _sprite.visible = false; 
  121.   } 
  122.      /** 
  123.      * ... 
  124.      * 删除监听 
  125.      */ 
  126.   private function removeListener(e:Event):void 
  127.   { 
  128.       mc.removeEventListener(MouseEvent.MOUSE_OVER, mouseHandler); 
  129.       mc.removeEventListener(MouseEvent.MOUSE_MOVE, mouseHandler); 
  130.    mc.removeEventListener(MouseEvent.MOUSE_OUT, mouseHandler); 
  131.    mc.removeEventListener(Event.REMOVED_FROM_STAGE, removeListener); 
  132.     
  133.    _sprite.visible = false; 
  134.     
  135.    _sprite.removeChild(_label); 
  136.     
  137.    obj = null; 
  138.    mc = null; 
  139.    str = null; 
  140.   } 
  141.  } 
  142.   
  143. } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器