`
hereson3
  • 浏览: 162957 次
  • 性别: 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

分享到:
评论

相关推荐

    bettertip 一个可以自定义Tooltip的jQuery插件

    保持插件的更新对于安全性和兼容性至关重要,因此建议定期检查`BetterTip`的最新版本,并根据需要进行升级。 总结,`BetterTip`是一个强大且灵活的jQuery Tooltip插件,通过其丰富的配置选项和API,开发者可以创建...

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

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

    jbox 兼容jQuery1.9以上版本,解决弹出框位置错误问题

    然而,随着jQuery从1.x版本向更高版本升级,一些API的改变可能导致原有的jBox代码失效,特别是涉及到DOM操作和事件处理的部分。 针对jQuery 1.9以上的版本,jBox进行了相应的调整,确保了兼容性。这主要体现在对...

    ZedGraph5.1.5去掉鼠标悬浮闪烁版

    在升级或切换到此版本前,开发者应先评估其对现有应用程序的影响,确保所有必要的功能都能正常工作。同时,如果遇到任何问题或有新的需求,由于源码开放,开发者也可以自行调整代码以适应变化。

    易语言模块大全(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,所以把常用的控件几乎都在这个计算器实现了一下!...

    Foobar2000.AERO效果播放器

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

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

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

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

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

    bootstrap-4.0.0

    压缩包中的"js"文件夹可能包含了Bootstrap的核心JavaScript插件,如Carousel(轮播图)、Dropdowns(下拉菜单)、Modal(模态对话框)和Tooltip(提示)等。这些插件通过jQuery库运行,增强了交互性和用户体验。...

    易语言模块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风格...

    Bootstrap 前端框架 V2.3.2

    这个版本的Bootstrap特别强调了对旧版浏览器的兼容性,包括Internet Explorer 8到IE 11,这使得它成为那些需要维护和升级“古董”网站的开发者们的理想选择。 Bootstrap的核心特性包括: 1. **响应式网格系统**:...

    jQuery EasyUI-1.4.1

    它通过提供一系列预定义的 CSS 类和 JavaScript 函数,使得开发者可以快速地创建各种 UI 元素,如表格、表单、对话框、菜单、按钮等。这些组件都有丰富的可配置选项,可以根据项目需求进行定制。 在表格(datagrid...

    Element Plus 教程(beta版,适配 Vue 3.0 的 Element).pdf

    Element Plus 是一个基于 Vue 3.0 的 UI 组件库,它是著名的 Element UI 框架针对 Vue 3.0 进行的升级版。Element Plus 保持与 Element UI 的设计理念一致,同时适配 Vue 的新特性,为开发者提供了一套现代化的UI...

    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 ...

    echarts2的地图下钻和修改地图上的文字

    ECharts 是一个由百度开发的开源 JavaScript 数据可视化库,它提供了丰富的图表类型,适用于各种数据可视化场景。...如果你需要进一步优化性能或实现更复杂的效果,可以考虑升级到 ECharts 的更高版本。

    坐标地图json以及加密的地理数据

    Echarts2是早期版本,而Echarts3是其后续升级版,增加了更多特性,优化了性能,并且对API进行了调整,使得使用更加灵活和友好。在处理地图时,两者都需要地图JSON数据来渲染地图,但Echarts3在地图支持上更加完善,...

Global site tag (gtag.js) - Google Analytics