AS3实现ToolTip效果
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效果的更多相关文章
- Simptip – 使用 Sass 制作的 CSS Tooltip 效果
Simptip 是一个简单基于 Sass 的 CSS 工具提示效果.帮助你在网站中加入在不同的方向(上.左.右.下)的工具提示,也可以设置不同的颜色如成功.信息.警告和危险.最后还有其他特性如软边.半 ...
- CSS3--动态实现ToolTip效果(实例)
效果图如下↓↓↓↓↓ (知识点见代码注释) HTML <!DOCTYPE html> <html lang="en"> <head> < ...
- 几行简单代码实现DIV层上显示Tooltip效果
最近在做一个项目,要在鼠标移到层上后显示出tip提示,网上找了半天,都很麻烦,就自己修改了一个,记录在下面 测试在IE 7.8.9及 chrome 上没问题. <HTML> <HEA ...
- as3.0:文字 效果
//文字描边效果var tf1 = _root.createTextField("tf1", _root.getNextHighestDepth(), 10, 10, 0, 0); ...
- [ActionScript 3.0] AS3.0 马赛克效果
var bmpd:BitmapData; var matrix:Matrix; var bmp:Bitmap; var size:Number = 5; /** * @author:Frost.Yen ...
- as3 文本竖排效果实现
import flash.text.engine.TextBlock; import flash.text.engine.ElementFormat; import flash.text.engine ...
- Tooltip浮动提示框效果(掌握里面的小知识)
使用原生JavaScript设计和实现Tooltip浮动提示框特效,了解代码简化.事件绑定.事件冒泡等技巧和知识. 特效四个关键点:显示:鼠标移到ToolTip超链接上时,ToolTip提示框可以显示 ...
- BootStrap入门教程 (四) :JQuery类库插件(模态窗口,滚动监控,标签效果,提示效果,“泡芙”效果,警告区域,折叠效果,旋转木马,输入提示)
上讲回顾:Bootstrap组件丰富同时具有良好可扩展性,能够很好地应用在生产环境.这些组件包括按钮(Button),导航(Navigation),缩略图( thumbnails),提醒(Alert) ...
- [转]让你的网页文本框增加光晕效果与提示,水印(类似QQ2011)
本文转自:http://www.cnblogs.com/xiaofengfeng/archive/2013/01/28/2880344.html 让你的网页文本框增加光晕效果(类似QQ2011) 我们 ...
随机推荐
- bt5r3安装postgresql
apt-get install postgresql
- [转] 学习,思维三部曲:WHAT、HOW、WHY(通过现象看本质)
https://www.douban.com/note/284947308/?type=like 学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对 ...
- Matlab 图像转极坐标系
实心圆环 imgVP1=flip(imgVP1,1); % 水平翻转 polarVP1=polarVolinPlot(imgVP1); % 调用函数空心圆环 [m,n,~]=size(imgVP2) ...
- 创建线程的三种方式_Callable和Runnable的区别
Java 提供了三种创建线程的方法 通过实现Runnable接口 通过继承Thread接口 通过Callable和Future创建线程 通过实现 Runnable 接口来创建线程 public cla ...
- 这就是那个feature map256 256向量
http://blog.csdn.net/XZZPPP/article/details/51582810 在这个特征图上使用3*3的卷积核(滑动窗口)与特征图进行卷积,那么这个3*3的区域卷积后可以获 ...
- 使用Spring AOP切面解决数据库读写分离
http://blog.jobbole.com/103496/ 为了减轻数据库的压力,一般会使用数据库主从(master/slave)的方式,但是这种方式会给应用程序带来一定的麻烦,比如说,应用程序如 ...
- python之字符串str操作方法
str.upper() (全部大写) str.lower() (全部小写) str.startswith() (以什么开头) str.endswith() (以什么结尾) str.count() (统 ...
- mysql数据库优化 几个思路
建表: 合理的索引, 组合索引 合理的字段类型 合理的表结构和表关联关系 查询: 避免: *, 函数 , 计算 , like左右全匹配 , in , beteewn?? 索引和组合索引 子查询 ...
- Linux下使用vi命令后退出方式
退出Vi 当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一. 在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出 ...
- java面试宝典第一弹
object类的直接子类有哪些 Boolean Character Character.Subset Class ClassLoader Compiler Enum Math Number Packa ...