`
hereson3
  • 浏览: 160235 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

ToolTip类的升级版

阅读更多

些ToolTip类确实比之前的方便多了,收藏

///////////////////////////------------------本文来自http://www.klstudio.com/post/198.html  

这次做公司一个项目,发现原来的那个ToolTip类 使用起来还是不方便,故我又重新写一个更方便更灵活的ToolTip类,现在把相关源代码也公布出来。
新ToolTip类

  1. package  project.do93.pflip.view  
  2. {  
  3.       
  4.      import  flash.accessibility.AccessibilityProperties;  
  5.      import  flash.display.*;  
  6.      import  flash.events.*;  
  7.      import  flash.geom.Point;  
  8.      import  flash.text.*;  
  9.      /**  
  10.      * @link kinglong@gmail.com  
  11.      * @author Kinglong  
  12.      * @version 0.1  
  13.      * @since 20090608  
  14.      * @playerversion fp9+  
  15.      * 热区提示  
  16.      */    
  17.      public   class  ToolTip  extends  Sprite {  
  18.          private   static  var instance:ToolTip =  null ;  
  19.          private  var label:TextField;          
  20.          private  var area:DisplayObject;  
  21.          public  function ToolTip() {  
  22.             label =  new  TextField();  
  23.             label.autoSize = TextFieldAutoSize.LEFT;  
  24.             label.selectable =  false ;  
  25.             label.multiline =  false ;  
  26.             label.wordWrap =  false ;  
  27.             label.defaultTextFormat =  new  TextFormat( "宋体" 12 0x666666 );  
  28.             label.text =  "提示信息" ;  
  29.             label.x =  5 ;  
  30.             label.y =  2 ;  
  31.             addChild(label);  
  32.             redraw();  
  33.             visible =  false ;  
  34.             mouseEnabled = mouseChildren =  false ;  
  35.         }  
  36.           
  37.          private  function redraw() {  
  38.             var w:Number =  10  + label.width;  
  39.             var h:Number =  4  + label.height;              
  40.              this .graphics.clear();  
  41.              this .graphics.beginFill( 0x000000 0.4 );  
  42.              this .graphics.drawRoundRect( 3 3 , w, h,  5 5 );                
  43.              this .graphics.moveTo( 6 3  + h);  
  44.              this .graphics.lineTo( 12 3  + h);  
  45.              this .graphics.lineTo( 9 8  + h);  
  46.              this .graphics.lineTo( 6 3  + h);  
  47.              this .graphics.endFill();  
  48.              this .graphics.beginFill( 0xffffff );  
  49.              this .graphics.drawRoundRect( 0 0 , w, h,  5 5 );  
  50.              this .graphics.moveTo( 3 , h);  
  51.              this .graphics.lineTo( 9 , h);  
  52.              this .graphics.lineTo( 6 5  + h);  
  53.              this .graphics.lineTo( 3 , h);  
  54.              this .graphics.endFill();  
  55.         }  
  56.           
  57.          public   static  function init(base:DisplayObjectContainer) {  
  58.              if  (instance ==  null ) {  
  59.                 instance =  new  ToolTip();  
  60.                 base.addChild(instance);                  
  61.             }  
  62.         }  
  63.           
  64.          public   static  function register(area:DisplayObject, message:String): void  {  
  65.              if (instance !=  null ){  
  66.                 var prop:AccessibilityProperties =  new  AccessibilityProperties();  
  67.                 prop.description = message;  
  68.                 area.accessibilityProperties = prop;  
  69.                 area.addEventListener(MouseEvent.MOUSE_OVER, instance.handler);  
  70.             }  
  71.         }  
  72.           
  73.          public   static  function unregister(area:DisplayObject): void  {  
  74.              if  (instance !=  null ) {  
  75.                 area.removeEventListener(MouseEvent.MOUSE_OVER, instance.handler);  
  76.             }  
  77.         }  
  78.           
  79.          public  function show(area:DisplayObject): void  {  
  80.              this .area = area;  
  81.              this .area.addEventListener(MouseEvent.MOUSE_OUT,  this .handler);  
  82.              this .area.addEventListener(MouseEvent.MOUSE_MOVE,  this .handler);  
  83.             label.text = area.accessibilityProperties.description;  
  84.             redraw();             
  85.         }  
  86.   
  87.           
  88.          public  function hide(): void  {  
  89.              this .area.removeEventListener(MouseEvent.MOUSE_OUT,  this .handler);  
  90.              this .area.removeEventListener(MouseEvent.MOUSE_MOVE,  this .handler);  
  91.              this .area =  null ;  
  92.             visible =  false ;  
  93.         }  
  94.           
  95.          public  function move(point:Point): void  {               
  96.             var lp:Point =  this .parent.globalToLocal(point);  
  97.              this .x = lp.x -  6 ;            
  98.              this .y = lp.y - label.height -  12 ;  
  99.              if (!visible){  
  100.                 visible =  true ;  
  101.             }  
  102.         }  
  103.           
  104.          private  function handler(event:MouseEvent): void  {  
  105.              switch (event.type) {  
  106.                  case  MouseEvent.MOUSE_OUT:  
  107.                      this .hide();  
  108.                      break ;  
  109.                  case  MouseEvent.MOUSE_MOVE:  
  110.                      this .move( new  Point(event.stageX, event.stageY));                     
  111.                      break ;  
  112.                  case  MouseEvent.MOUSE_OVER:  
  113.                      this .show(event.target as DisplayObject);  
  114.                      this .move( new  Point(event.stageX, event.stageY))  
  115.                      break ;  
  116.             }  
  117.         }  
  118.           
  119.     }  
  120. }  


调用实例

  1. import  project.do93.pflip.view.ToolTip;  
  2. var base:Sprite =  new  Sprite();  
  3. addChild(base);  
  4. var sp:Sprite =  new  Sprite();  
  5. sp.mouseEnabled=sp.mouseChildren= false ;  
  6. addChild(sp);  
  7. //初始化ToolTip;   
  8. ToolTip.init(sp);  
  9. //与显示元素关联。   
  10. ToolTip.register(xxx_mc,  "http://www.klstudio.com" );  
  11. ToolTip.register(btn1,  "我是按钮1" );  
  12. ToolTip.register(btn2,  "我是按钮2" );  


演示效果
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"> </object>
相关文件打包下载:http://www.klstudio.com/upload/tooltip.rar

分享到:
评论

相关推荐

    react-popper-tooltip:一个React钩子,可以轻松构建智能工具提示

    如果您希望从3.x渲染道具升级到4.x挂钩,请参阅我们的。 例子 基本用法() 用react-spring 动画外观() 使用Esc按钮关闭工具提示(源) 用作受控组件演示(源) 一旦安装了Demo,就将工具提示保留在DOM中(源...

    易语言模块大全(401个)

    Tooltip30版[易语言3.0以上版本].ec WF1.EC Tooltip31版[易语言3.0以上版本].ec taskbar.ec Trackbar.ec TTS.EC USER32.EC USUAL.EC VERSION.EC WBCZ.EC WBFH.EC SysResInfo.ec XP按钮1.1.ec winsys.ec xlAbout.ec ...

    VB.NET 计算器增强版

    初学VB.net 上次发了一个VB.net 2008 做的计算器,这回对上次那个计算器进行了升级,增加了许多功能(有些功能其实对于计算器来说没有必要,但我只是为了学习VB.net,所以把常用的控件几乎都在这个计算器实现了一下!...

    验证码控件2.0.0.0 (ASPNET/全能型)

    继上一版本(1.3.3.0)后再度升级,此次调整较大: 1)增加了设计时实时预览支持(允许关闭); 2)取消了控件尺寸设定的限制,允许验证码字符纵向排列; 3)增加了验证码字符字体集的设置,允许指定字体集; 4)增加了...

    Foobar2000.AERO效果播放器

    - foo_uie_panel_splitter插件升级为0.3.8a版,注意此后此插件必须使用此版或更高版本,除非特殊说明。 - foo_uie_wsh_panel_mod插件升级为1.1.9版,注意此后此插件必须使用1.1.8或更高版本,除非特殊说明。 - foo_...

    ember-tooltips:用于Ember组件的简单且可扩展的工具提示-http:sir-dunxalot.github.ioember-tooltips

    安装ember install ember-tooltips从2.x升级参见文献资料使用文档如下:用法本文档适用于ember-tooltips的3.x版本。 有关2.x文档,请参阅 。 注意:以下文档是Ember Octane Edition约定的最新文档。 但是,也可以...

    易语言模块914个

    Tooltip30版[易语言3.0以上版本].ec Tooltip31版[易语言3.0以上版本].ec Trackbar.ec TTS.EC TWnet.CN.EC URL编码解码.ec USB.ec USER32.EC user32模块.EC user模块.EC USUAL.EC VERSION.EC Vista风格...

    1345个易语言模块

    Tooltip31版[易语言3.0以上版本].ec Trackbar.ec transwin.ec TTS.EC TWnet.CN.EC URL 编码解码.ec USB.ec USER32.EC user32模块.EC user模块.EC USUAL.EC vcode.ec VERSION.EC ve 模块.ec Vista.ec vistaAERO模块....

    1350多个精品易语言模块

    Tooltip30版[易语言3.0以上版本].ec Tooltip31版[易语言3.0以上版本].ec Trackbar.ec transwin.ec TTS.EC TWnet.CN.EC URL 编码解码.ec USB.ec USER32.EC user32模块.EC user模块.EC USUAL.EC vcode.ec VERSION.EC ...

    易语言支持库

    F:\ISO\=]易语言视频[=模块[=\易语言支持库\常用加解密支持库(支持静态)-2010-4-21升级.zip F:\ISO\=]易语言视频[=模块[=\易语言支持库\超级加解密支持库 (1.1#0版)静态库版.rar F:\ISO\=]易语言视频[=模块[=\...

    [开源]用SWT/JFace实现的放大镜软件jZoomer v1.2.0(附源码)

    ·在trayItem中加入tooltip用于辅助信息提示 4. 版本变更: 版本升级为1.1.2 &lt;br&gt;20080618 2nd 1. Bug修正: 2. 功能添加: ·添加用户手册中文版V1.1 ·添加用户手册英文版V1.1 ...

    Visual C++ 编程资源大全(源码 窗体)

    trayicon1.zip 屏幕保护托盘图标(SDK版本)(27KB)&lt;END&gt;&lt;br&gt;15,trayicon2.zip 屏幕保护托盘图标(MFC版本)(30KB)&lt;END&gt;&lt;br&gt;16,cj60lib.zip MFC扩展界面库(VC6升级版)(936KB)&lt;END&gt;&lt;br&gt;17,devstudio.zip ...

    asp.net知识库

    鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换效果 HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署...

    傲游浏览器3(Maxthon) 3.1.8.1000 正式版

    傲游3浏览器是国内唯一具有独立内核的桌面浏览器产品,首创双核浏览模式,在安全、快速的基础上,保证了对网银、网购类网站的兼容性。傲游3浏览器内置云端广告过滤系统,强大而易用,确保用户在浏览网页时不受任何...

    易语言模块大全汇总批量下载

    2005-10-21 15:30 11317 3602 易语言模块大全\Tooltip31版[易语言3.0以上版本].ec 2005-10-21 15:30 2103 734 易语言模块大全\Trackbar.ec 2005-10-21 15:30 2619 971 易语言模块大全\TTS.EC 2005-11-04 18:12 94257...

    1000个【易语言模块大全汇总批量下载】

    2005-10-21 15:30 11317 3602 易语言模块大全\Tooltip31版[易语言3.0以上版本].ec 2005-10-21 15:30 2103 734 易语言模块大全\Trackbar.ec 2005-10-21 15:30 2619 971 易语言模块大全\TTS.EC 2005-11-04 18:12 94257...

    E语言1000模块

    2005-10-21 15:30 10725 3462 易语言模块大全\Tooltip30版[易语言3.0以上版本].ec 2005-10-21 15:30 11317 3602 易语言模块大全\Tooltip31版[易语言3.0以上版本].ec 2005-10-21 15:30 2103 734 易语言模块大全\...

    amis前端低代码框架 v1.1.4

    3、享受 amis 的不断升级:amis 一直在提升细节交互体验,比如表格首行冻结、下拉框大数据下不卡顿等,之前的 JSON 配置完全不需要修改; 4、可以完全使用可视化页面编辑器 来制作页面:一般前端可视化编辑器只能...

Global site tag (gtag.js) - Google Analytics