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) 我们 ...
随机推荐
- NSString 与NSMutableString的区别
NSString 与NSMutableString的区别 Suppose You have a code like this NSString *s = [[NSString alloc] ...
- ubuntu下安装mongo扩展
安装openssl apt-get install openssl libssl-dev libssl0.9.8 libgtk2.0-dev 安装php-pear apt-get install ph ...
- AS400服务程序总结
1.服务程序的创建和调用过程 1.1生成module 1.2编写BND文件确定输出接口 1.3生成服务程序 1.3.运行调用程序时,将服务程序导入到作业内存区active group,常驻内存 2.结 ...
- c++ extern
一.extern关键字的作用 文件中定义的全局变量的可见性扩展到整个程序是在链接完成之后,而在编译阶段,他们的可见性仍局限于各自的文件. 编译器的目光不够长远,编译器没有能够意识到,某个变量符号虽然不 ...
- js数字转金额,ajax调用接口,后台返回html(完整页面),打开新窗口并写入html
一.转换成金额形式 function toMoney(num){ if(num){ if(isNaN(num)) { alert("金额中含有不能识别的字符"); return; ...
- Android典型界面设计-访网易新闻实现双导航tab切换
一.问题描述 双导航tab切换(底部区块+区域内头部导航),实现方案底部区域使用FragmentTabHost+Fragment, 区域内头部导航使用ViewPager+Fragment,可在之前博客 ...
- js 漂浮广告
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Yii1 获取当前请求的url
echo Yii::app()->getRequest()->getUrl();
- dinic网络流
C - A Plug for UNIX POJ - 1087 You are in charge of setting up the press room for the inaugural meet ...
- python 05 关于对python中引用的理解
数据的在内存中的地址就是数据的引用. 如果两个变量为同一个引用,那么这两个变量对应的数据一定相同: 如果两个变量对应的数据相同,引用不一定相同. 通过id(数据)可以查看数据对应的地址,修改变量的值, ...