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. String 截取字符串#中间的文本

    通过正则实现: String regex = "#([^#]+)#"; @Test public void test() { String text = "#中俄建交七十 ...

  2. CMSIS的简介

    Cortex微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由A ...

  3. String.format()【示例详解】

    String.format()[示例详解] 整理者:Vashon 前言: String.format 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.fo ...

  4. VBA 连接sql server的用法

    cnnstr = "Provider=sqloledb;Data Source=192.211.21.8;Initial Catalog=pub;UID=账号;PWD=密码" VB ...

  5. sccm系统更新补丁后服务无法正常启动

    更新完补丁后这几个应用无法启动,最后发现计算机丢失msvcp120.dll 文件,查询相关资料发现安装vcredist 2013 从官网下载Visual C++ Redistributable Pac ...

  6. Netbeans Makefile: recipe for target 'XXX' failed 运行failed(退出值 -1073741511 找不到C/C++库文件,关键字

      今天不知怎么的又出错了 吐血了 找不到NULL new等关键字了   看到知乎上有人和我一个问题,怎么办?很简单卸载了以前的cygwin和netbeans然后重装,我重装时没有把以前的cygwin ...

  7. 查看cuda版本和cudann

    nvcc -V 没有找到直接查询cudann版本的命令,但发现cudann装在 /usr/local/cuda/lib64/目录下,libcudnn.so就是相应版本

  8. SQL Server数据库的除法默认向下取整,要返回小数的解决方法

    num1; / 1000.0 num2; * 1.0 num3; num4; 结果:

  9. python爬虫---实现项目(二) 分析Ajax请求抓取数据

    这次我们来继续深入爬虫数据,有些网页通过请求的html代码不能直接拿到数据,我们所需的数据是通过ajax渲染到页面上去的,这次我们来看看如何分析ajax 我们这次所使用的网络库还是上一节的Reques ...

  10. 关于Java多线程(JAVA多线程实现的四种方式)

    Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来创建Thread线程.使用ExecutorService.Cal ...