AS3核心类中没有ToolTip类,Flex中的ToolTip类没法用在AS3工程中,Aswing的JToolTip不错,不过如果仅仅为了使用这一个类而导入Aswing就不太明智了。由于最近的项目需要用到ToolTip,我就索性自己写了一个,特与大家分享。

package {
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.display.Sprite;
import flash.display.DisplayObjectContainer;
import flash.display.InteractiveObject; /**
* 提示文本
* @author Flying http://www.riafan.com
*/
public class AS3ToolTip{
private static var toolTip : TextField;
private static var format : TextFormat;
private static var owner :DisplayObjectContainer;
//tooltip对象是否可用
public static var enabled : Boolean = true;
//目标对象数组
private static var owners : Array = new Array();
//文本对象数组
private static var texts : Array = new Array(); public function AS3ToolTip() { } /**
* 获取/设置提示文本的顶级显示对象
*/
public static function get root() :DisplayObjectContainer{
return owner;
} public static function set root(value :DisplayObjectContainer) : void {
if (owner == null){
owner = value;
}
} /**
* 新建一个提示文本
*
* @param owner 要设置提示文本的目标对象
* @param text 提示文本的内容
*/ public static function create(owner:InteractiveObject, text: String) : void {
owners.push(owner);
texts.push(text);
owner.addEventListener(MouseEvent.MOUSE_OVER, AS3ToolTip.showToolTip);
owner.addEventListener(MouseEvent.MOUSE_OUT, AS3ToolTip.hideToolTip); }
/**
* 显示提示文本
*/ private static function showToolTip(e : MouseEvent) : void {
//初始化动态文本
toolTip = new TextField();
toolTip.visible = true;
toolTip.text = findText(InteractiveObject(e.currentTarget));
toolTip.background = true;
toolTip.backgroundColor= 0xFFCC66;
toolTip.border = true;
toolTip.borderColor = 0x000000;
toolTip.multiline = false;
toolTip.wordWrap = false;
toolTip.autoSize = TextFieldAutoSize.CENTER;
toolTip.x = owner.mouseX + 16;
toolTip.y = owner.mouseY - 24; //设置动态文本样式
format = new TextFormat();
format.font = "_sans";
format.leftMargin = 4;
format.rightMargin = 4;
format.size = 12;
toolTip.setTextFormat(format);
owner.addChild(toolTip); } /**
* 隐藏提示文本
*/ private static function hideToolTip(e : MouseEvent) : void {
toolTip.visible = false;
owner.removeEventListener(MouseEvent.MOUSE_OVER, showToolTip);
owner.removeEventListener(MouseEvent.MOUSE_OUT, hideToolTip);
} /**
* 返回特定文本
*
* @param target 目标对象
*/ private static function findText(owner:InteractiveObject) : String {
var index : int = owners.indexOf(owner);
return texts[index];
}
}
}

用静态类实现的,理论上应该比较节约资源。这里用了两个数组传递text参数,算是一个小技巧。AS3ToolTip用法很简单,先设定它的root,再调用其create方法。create方法的owner参数限制为InteractiveObject类型,不过我想已经够用了。

点击此处查看效果,点击此处下载源文件。

转自: http://www.riafan.com/actionscript-3-0-tooltip/

AS3实现ToolTip效果的更多相关文章

  1. Simptip – 使用 Sass 制作的 CSS Tooltip 效果

    Simptip 是一个简单基于 Sass 的 CSS 工具提示效果.帮助你在网站中加入在不同的方向(上.左.右.下)的工具提示,也可以设置不同的颜色如成功.信息.警告和危险.最后还有其他特性如软边.半 ...

  2. CSS3--动态实现ToolTip效果(实例)

    效果图如下↓↓↓↓↓  (知识点见代码注释) HTML <!DOCTYPE html> <html lang="en"> <head> < ...

  3. 几行简单代码实现DIV层上显示Tooltip效果

    最近在做一个项目,要在鼠标移到层上后显示出tip提示,网上找了半天,都很麻烦,就自己修改了一个,记录在下面 测试在IE 7.8.9及 chrome 上没问题. <HTML> <HEA ...

  4. as3.0:文字 效果

    //文字描边效果var tf1 = _root.createTextField("tf1", _root.getNextHighestDepth(), 10, 10, 0, 0); ...

  5. [ActionScript 3.0] AS3.0 马赛克效果

    var bmpd:BitmapData; var matrix:Matrix; var bmp:Bitmap; var size:Number = 5; /** * @author:Frost.Yen ...

  6. as3 文本竖排效果实现

    import flash.text.engine.TextBlock; import flash.text.engine.ElementFormat; import flash.text.engine ...

  7. Tooltip浮动提示框效果(掌握里面的小知识)

    使用原生JavaScript设计和实现Tooltip浮动提示框特效,了解代码简化.事件绑定.事件冒泡等技巧和知识. 特效四个关键点:显示:鼠标移到ToolTip超链接上时,ToolTip提示框可以显示 ...

  8. BootStrap入门教程 (四) :JQuery类库插件(模态窗口,滚动监控,标签效果,提示效果,“泡芙”效果,警告区域,折叠效果,旋转木马,输入提示)

    上讲回顾:Bootstrap组件丰富同时具有良好可扩展性,能够很好地应用在生产环境.这些组件包括按钮(Button),导航(Navigation),缩略图( thumbnails),提醒(Alert) ...

  9. [转]让你的网页文本框增加光晕效果与提示,水印(类似QQ2011)

    本文转自:http://www.cnblogs.com/xiaofengfeng/archive/2013/01/28/2880344.html 让你的网页文本框增加光晕效果(类似QQ2011) 我们 ...

随机推荐

  1. bt5r3安装postgresql

    apt-get install postgresql

  2. [转] 学习,思维三部曲:WHAT、HOW、WHY(通过现象看本质)

    https://www.douban.com/note/284947308/?type=like 学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对 ...

  3. Matlab 图像转极坐标系

    实心圆环 imgVP1=flip(imgVP1,1);  % 水平翻转 polarVP1=polarVolinPlot(imgVP1); % 调用函数空心圆环 [m,n,~]=size(imgVP2) ...

  4. 创建线程的三种方式_Callable和Runnable的区别

    Java 提供了三种创建线程的方法 通过实现Runnable接口 通过继承Thread接口 通过Callable和Future创建线程 通过实现 Runnable 接口来创建线程 public cla ...

  5. 这就是那个feature map256 256向量

    http://blog.csdn.net/XZZPPP/article/details/51582810 在这个特征图上使用3*3的卷积核(滑动窗口)与特征图进行卷积,那么这个3*3的区域卷积后可以获 ...

  6. 使用Spring AOP切面解决数据库读写分离

    http://blog.jobbole.com/103496/ 为了减轻数据库的压力,一般会使用数据库主从(master/slave)的方式,但是这种方式会给应用程序带来一定的麻烦,比如说,应用程序如 ...

  7. python之字符串str操作方法

    str.upper() (全部大写) str.lower() (全部小写) str.startswith() (以什么开头) str.endswith() (以什么结尾) str.count() (统 ...

  8. mysql数据库优化 几个思路

    建表: 合理的索引, 组合索引 合理的字段类型 合理的表结构和表关联关系 查询: 避免: *,  函数 , 计算 , like左右全匹配  , in ,  beteewn??  索引和组合索引 子查询 ...

  9. Linux下使用vi命令后退出方式

    退出Vi         当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一.         在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出 ...

  10. java面试宝典第一弹

    object类的直接子类有哪些 Boolean Character Character.Subset Class ClassLoader Compiler Enum Math Number Packa ...