今晚拿了麦哥哥的程序修改,之前他给了一个ToolTip的类,在他的基础上加了几个方法这个toolTip 提示只是一个Sprite+TextField的 混搭。要是说到其他的在玩游戏看到提示,相对来讲,他们toolTip类还是比较强大的。对于一些简单的提供提示的来讲,还可以应付一下。

好吧。有关toolTip类的制作,涉及就是Sprite+TextField的混搭。需要文本,需要图形的辅助。这样看起来就有摸有样了。网上已经有更加强大的toolTip类库了。资源可以随意发挥。

使用说明:

执行的时候 在场景里面随便添加两个元件进行测试。

首先执行ToolTipManager.init(this); 让主场景将toolTip的添加到显示列表当中。

ToolTipManager里面有几个静态方法,只是需要进行提示的信息。使用的办法是。

ToolTipManager.addToolTip(mcA,str,10,10);

mcA是舞台上的元件,str是要显示的内容,10 和10是偏移鼠标相对位置。

如果需要对鼠标监听进行删除信息。可以执行第二种的方法。

ToolTipManager.addToolTipByName("mcB",mcB,str2);

ToolTipManager.removeListenerByName("mcB");

如果鼠标事件不想封装在里面,可以使用ToolTipManager.show() 替代,后面有几个方法是在一个网友麦哥哥基础上修改的。

使用的方法很容易,基本上适应一部分需求,但是对于更加强的信息提示,这样这个ToolTip就需要重新修改。改变以适应更多不同需求。

缺点

讲到缺点。有一些方法不能很有效针对全部情况。会存在一些设计的问题。

大致上就当介绍使用。

package { import flash.display.*; import flash.events.*; import flash.filters.GlowFilter; public class Main extends Sprite { public function Main() { ToolTipManager.init(this); init(); } private function init():void { var str:String="等级:1"+"\r"+ "性别:男"+"\r"+ "经验:29"+"\r"+ "胜率:37.5%"+"\r"+ "称号:无"+"\r"+ "文功:平民"+"\r"+ "功勋:平民"+"\r"+ "胜 3 输 5 逃 0"; var str2:String="等级:3"+"\r"+ "性别:男"+"\r"+ "经验:50"+"\r"+ "胜率:36.5%"+"\r"+ "称号:无"+"\r"+ "文功:平民"+"\r"+ "功勋:平民"+"\r"+ "胜 10 输40 逃 0"; ToolTipManager.getToolTip.color=0x353128;//底部颜色 ToolTipManager.getToolTip.textField.textColor=0xD7D1B7;//文本颜色 ToolTipManager.getToolTip.setTextFilters(new GlowFilter(0x0)); ToolTipManager.addToolTip(mcA,str,10,10); ToolTipManager.addToolTipByName("mcB",mcB,str2); stage.addEventListener(MouseEvent.CLICK,onClick); function onClick(event:MouseEvent):void { ToolTipManager.removeListenerByName("mcB"); } } } }

package { import flash.display.DisplayObjectContainer; import flash.events.*; import flash.utils.Dictionary; public class ToolTipManager { private static var container:DisplayObjectContainer; private static var toolTip:ToolTip=null; private static var data:Dictionary=new Dictionary(); public function ToolTipManager() { } //初始化信息 public static function init(container:DisplayObjectContainer):void { ToolTipManager.container=container; if (toolTip==null) { toolTip=new ToolTip(); } } //显示信息 public static function show(str:String,offX:Number=0,offY:Number=0):void { if (!container)return; toolTip.text=str; toolTip.x=container.stage.mouseX+offX; toolTip.y=container.stage.mouseY+offY; container.addChild(toolTip); } //隐藏显示 public static function hide():void { if (!container)return; toolTip.text=""; if (container.contains(toolTip)) { container.removeChild(toolTip); } } //移动位置 public static function move(x:Number,y:Number):void { toolTip.move(x,y); } //获取toolTip对象 public static function get getToolTip():ToolTip { return toolTip; } //添加提示信息 public static function addToolTip(obj:*,str:String,offX:Number=0,offY:Number=0):void { if (!obj.hasEventListener(MouseEvent.MOUSE_OVER)||!obj.hasEventListener(MouseEvent.MOUSE_OUT)) { obj.addEventListener(MouseEvent.MOUSE_OVER,onMouseOverHandler); obj.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutHandler); obj.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); function onMouseOverHandler(event:MouseEvent):void { ToolTipManager.show(str,offX,offY); } function onMouseOutHandler(event:MouseEvent):void { ToolTipManager.hide(); } function onMouseMoveHandler(event:MouseEvent):void { ToolTipManager.move(event.stageX+offX,event.stageY+offY); } } } //添加提示信息 public static function addToolTipByName(id:String,obj:*,str:String,offX:Number=0,offY:Number=0):void { if (!obj.hasEventListener(MouseEvent.MOUSE_OVER)||!obj.hasEventListener(MouseEvent.MOUSE_OUT)) { obj.addEventListener(MouseEvent.MOUSE_OVER,onMouseOverHandler); obj.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutHandler); obj.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); function onMouseOverHandler(event:MouseEvent):void { ToolTipManager.show(str,offX,offY); } function onMouseOutHandler(event:MouseEvent):void { ToolTipManager.hide(); } function onMouseMoveHandler(event:MouseEvent):void { ToolTipManager.move(event.stageX+offX,event.stageY+offY); } var funs:Object={obj:obj,mouse_over:onMouseOverHandler,mouse_out:onMouseOutHandler,mouse_move:onMouseMoveHandler}; data[id]=funs; } } //删除监听 public static function removeListenerByName(id:String):void { if(data[id]==null)return; data[id].obj.removeEventListener(MouseEvent.MOUSE_OVER,data[id].mouse_over); data[id].obj.removeEventListener(MouseEvent.MOUSE_OUT,data[id].mouse_out); data[id].obj.removeEventListener(MouseEvent.MOUSE_MOVE,data[id].mouse_move); } } }

package { import flash.display.Sprite; import flash.events.*; import flash.text.* import flash.geom.*; public class ToolTip extends Sprite implements IToolTip { private var _textField:TextField;//提示文本 private var _color:uint=0xffffe1;//颜色 public function ToolTip() { init(); } private function init():void { _textField=new TextField(); _textField.selectable=false; _textField.mouseEnabled=false; _textField.defaultTextFormat=new TextFormat("Arial",12); _textField.autoSize=TextFieldAutoSize.LEFT; addChild(_textField); } private function redraw():void { addEventListener(Event.ENTER_FRAME,onReDrawHandler); } private function onReDrawHandler(event:Event):void { removeEventListener(Event.ENTER_FRAME,onReDrawHandler); draw(); } private function draw():void { _textField.x=4; _textField.y=4; var width:Number=_textField.textWidth; var height:Number=_textField.textHeight; this.graphics.clear(); //this.graphics.lineStyle(0,1); this.graphics.beginFill(color); this.graphics.drawRoundRect(0,0,width+8,height+8,4,4); this.graphics.endFill(); } public function clone():* { return new ToolTip(); } //设置和获取底部颜色 public function set color(value:uint):void { _color=value; } public function get color():uint { return _color; } //获取textField对象 public function get textField():TextField { return _textField; } //设置文本提示 public function set text(str:String):void { _textField.text=str; redraw(); } public function get text():String { return _textField.text; } public function set htmlText(str:String):void { _textField.htmlText=str; redraw(); } public function get htmlText():String { return _textField.htmlText; } //设置位置 public function move(x:Number,y:Number):void { this.x=x; this.y=y; } //设置滤镜 public function setTextFilters(...arg):void { _textField.filters=arg; } //去除滤镜 public function delTextFilters():void { _textField.filters=null; } } }

package { public interface IToolTip { //设置和获取底部颜色 function set color(value:uint):void; function get color():uint; function set text(str:String):void; function get text():String; function set htmlText(str:String):void; function get htmlText():String; function move(x:Number,y:Number):void; function clone():*; } }

倘若再进行修改的话.让提示带一颜色的。可以设置Html

var str3:String="<font color='#FFFF00' size='12'><b>孙权</b></font> 吴 体力4\r"+ "<font color='#00ff00' size='12'><b>制衡</b></font>:\r出牌阶段,你可以弃掉任意数量的牌,然后摸取等量的牌\r每回合限用一次\r"+ "<font color='#00ff00' size='12'><b>救援</b></font>:\r主公技,锁定技,其他吴势力角色在你濒死状态下对你\r使用【桃】时,你额外回复1点体力。";

让textField 以html方式进行显示。

所以可以对ToolTipManager,加以改造。

在测试的时候,在播放器显示两种文本设置方式的时候,混在一起使用发现有一些不正常 在网页浏览器则显示正常。

设置text 和htmltext 方式的时候 遇到一个这样的问题。不清楚发生了什么事

package { import flash.display.DisplayObjectContainer; import flash.events.*; import flash.utils.Dictionary; public class ToolTipManager { private static var container:DisplayObjectContainer; private static var toolTip:ToolTip=null; private static var data:Dictionary=new Dictionary(); private static var typeData:Dictionary=new Dictionary(); public static const HTML:String="html"; public static const TEXT:String="text"; private static var type:String="text"; public function ToolTipManager() { } //初始化信息 public static function init(container:DisplayObjectContainer):void { ToolTipManager.container=container; if (toolTip==null) { toolTip=new ToolTip(); } } //显示信息 public static function show(str:String,offX:Number=0,offY:Number=0,type:String="text"):void { if (!container)return; if(type=="text") { toolTip.text=str; } else if(type=="html") { toolTip.htmlText=str; } toolTip.x=container.stage.mouseX+offX; toolTip.y=container.stage.mouseY+offY; container.addChild(toolTip); } //隐藏显示 public static function hide():void { if (!container)return; toolTip.text=""; toolTip.htmlText=""; if (container.contains(toolTip)) { container.removeChild(toolTip); } } //移动位置 public static function move(x:Number,y:Number):void { toolTip.move(x,y); } //获取toolTip对象 public static function get getToolTip():ToolTip { return toolTip; } //添加提示信息 public static function addToolTip(obj:*,str:String,offX:Number=0,offY:Number=0,type:String="text"):void { if (!obj.hasEventListener(MouseEvent.MOUSE_OVER)||!obj.hasEventListener(MouseEvent.MOUSE_OUT)) { obj.addEventListener(MouseEvent.MOUSE_OVER,onMouseOverHandler); obj.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutHandler); obj.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); function onMouseOverHandler(event:MouseEvent):void { ToolTipManager.show(str,offX,offY,type); } function onMouseOutHandler(event:MouseEvent):void { ToolTipManager.hide(); } function onMouseMoveHandler(event:MouseEvent):void { ToolTipManager.move(event.stageX+offX,event.stageY+offY); } } } //添加提示信息 public static function addToolTipByName(id:String,obj:*,str:String,offX:Number=0,offY:Number=0,type:String="text"):void { if (!obj.hasEventListener(MouseEvent.MOUSE_OVER)||!obj.hasEventListener(MouseEvent.MOUSE_OUT)) { obj.addEventListener(MouseEvent.MOUSE_OVER,onMouseOverHandler); obj.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutHandler); obj.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); function onMouseOverHandler(event:MouseEvent):void { ToolTipManager.show(str,offX,offY,type); } function onMouseOutHandler(event:MouseEvent):void { ToolTipManager.hide(); } function onMouseMoveHandler(event:MouseEvent):void { ToolTipManager.move(event.stageX+offX,event.stageY+offY); } var funs:Object={obj:obj,mouse_over:onMouseOverHandler,mouse_out:onMouseOutHandler,mouse_move:onMouseMoveHandler}; data[id]=funs; } } //删除监听 public static function removeListenerByName(id:String):void { if(data[id]==null)return; data[id].obj.removeEventListener(MouseEvent.MOUSE_OVER,data[id].mouse_over); data[id].obj.removeEventListener(MouseEvent.MOUSE_OUT,data[id].mouse_out); data[id].obj.removeEventListener(MouseEvent.MOUSE_MOVE,data[id].mouse_move); } } }

每天学一点flash(75) ToolTip 提示相关推荐

  1. as3 与 java_每天学一点Flash(48) As3.0 与 java 通信(1)

    在as2.0 已经有关于Socket 相关的编程,到了3.0后新增了Socket类,可以更加强大的进行Socket相关的编程,只是有一点Flash 还没有达到可以自己编写服务器相关的类,那只好借助ja ...

  2. 每天学一点flash(74) Flash搜索框

    今晚在这个博客看到一篇有趣的文章,于是跟着他的教程做了一个flash搜索框,他的题目是 用Flash制作一个基本的搜索引擎框 http://useswf.com/quick-tip/flash_cre ...

  3. 每天学一点flash(11) as3.0 与asp 通信 (1)

    经过几次的尝试啊,今天终于实现了as3.0与asp通信.我用access做了一个最简单的测试其目的就是调试代码方便.好现在开始吧 首先:必须准备asp 与access文件,而且要先用代码连接上acce ...

  4. 每天学一点flash(56)循环的小实验

    今晚,跟暗酷这两个网友和Flashstatt一晚都是在讨论As3的内容.感觉到自己越来越笨,对于As3的设计,感觉到越来越有学问,而之前所学的仅仅是小问题而已.今晚和FlashStar 讨论了界面和业 ...

  5. 每天学一点flash(76)百度MP3音乐APi接口使用

    百度MP3音乐API接口及应用 http://cloud21.javaeye.com/blog/611914 这里有一篇关于百度MP3音乐APi接口的应用,写了一下关于这个百度接口的应用,他可以提供一 ...

  6. 每天学一点Flash(55) 认识类的结构

    内容:类库是封装了各种方法和属性,我们的工作只需要好好利用这些类库. 类库是一个庞大的工具,仿佛是一个艺术家,Flash能够实现各种效果都是基于这些功能强大的类库,这个对美好充满期待的艺术家.因此认识 ...

  7. 每天学一点flash(67) 上传图片

    今天换个口味,制作一下上传图片,功能个人希望尽量简单化,方便理解:Flash cs4 对FileReference 类增加几项内容 如data 属性能够获取到一个data : ByteArray 这个 ...

  8. 每天学一点flash(5) actionscript 3.0 外部加载mp3音乐

    刚刚初学actionscript 3.0每天总结一点东西那么慢慢积累起来,这些笔记就会成为你一个很厉害的"法宝" 今天我刚刚测试一下外部加载mp3, 与as2.0有着很大的区别,但 ...

  9. 每天学一点flash 76 百度MP3音乐APi接口使用

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 百度MP ...

最新文章

  1. 关于while 和if
  2. 洛谷 P1865 A % B Problem[筛素数/前缀和思想/区间质数个数]
  3. 一个好用的ODBC数据库类CMYODBC
  4. java 并发demo_《Java并发编程实践》中4.3.5章demo的一个疑问?
  5. chrome浏览器中解决embed标签 loop=true 背景音乐无法循环的问题。
  6. 分布式面试 - 分布式服务接口请求的顺序性如何保证?
  7. 银行卡预留号码注销了怎么改?
  8. HIve map jion的原理、操作和使用场景
  9. hibernate could not resolve property
  10. 解决:Win10 程序切换/系统提示弹窗不在顶层
  11. 图灵之谜-《艾伦·图灵传》序
  12. PES,TS,PS,RTP等流的打包格式解析之PES流
  13. 易基因|3文解读:微量样本甲基化测序在肿瘤中的应用
  14. 计算机学生会大型户外活动,学生会大型户外素质拓展活动
  15. C语言 输入一个5行5列的数组。1.求数组主对角线上元素的和。2.求出辅对角线上元素的积。3.找出主对角线上最大的值及其位置
  16. 第9周 Python计算生态概览
  17. Unsupported major.minor version 51.0 (unable to load class
  18. HUAWEI WeAutomate RPA初级教程之网页自动化
  19. 华为ensp配置aaa认证
  20. Sgg:模糊聚类分析(数学建模)

热门文章

  1. zznu 1996 : 正三角形和圆的爱情
  2. 积极向上,努力工作,提高能力,提高战斗力,保持热情,保持创业热情。
  3. System.DBNull.Value与Null的区别
  4. RhinoMock入门(4)——次序和委托
  5. 中国搜 为人民服务 整合本地搜索引擎 出差旅游搜索国外国内当地服务网站 快速进行本地资源查找利用...
  6. mysql忘记密码怎末版_mysql忘记密码怎么办
  7. 阿里云的这个智能编码插件真心好用!Java 开发神器!!!
  8. 谈谈双亲委派模型的第四次破坏-模块化
  9. Java 14 发布了,再也不怕NullPointerException 了!?
  10. 美团技术:交易平台建设实践(视频+胶片)