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

 

热门文章推荐

请稍候...

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

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