`
wgcode
  • 浏览: 591521 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自定义AS3ToolTips

阅读更多
package  {
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextFormat;
	import flash.display.DisplayObjectContainer;
	import flash.display.InteractiveObject;

	/**
	 * 提示文本
	 */
	public class AS3ToolTip {

		
		//目标对象数组
		static public  var tips : Array = new  Array();

		public function AS3ToolTip() {
		}
		/**
		 * 新建一个提示文本
		 *
		 * @param   owner  要设置提示文本的目标对象
		 * @param   text  提示文本的内容
		 */
		public function create(owner : InteractiveObject, text : String) : void {
			Create(owner, text);
		}

		/**
		 * 新建一个提示文本
		 *
		 * @param   owner  要设置提示文本的目标对象
		 * @param   text  提示文本的内容
		 */

		static public  function Create(owner : InteractiveObject, text : String) : void {
			for(var a in tips) {
				if(tips[a].owner == owner) {
					tips[a].text = text;
					return;	
				}	
			}
			
			var toolTip : MyTip = new MyTip(owner, text);
			tips.push(toolTip);
			var showToolFunction : Function = function(e : MouseEvent):void {
				if(owner.stage == null) {
					return;	
				}

				owner.stage.addChild(toolTip);
				owner.addEventListener(MouseEvent.MOUSE_OUT, hideToolFunction);
				owner.removeEventListener(MouseEvent.MOUSE_OVER, showToolFunction);
			};
			var hideToolFunction : Function = function():void {
				if(owner.stage == null) {
					toolTip = null;
					return;	
				}
				owner.stage.removeChild(toolTip); 
				owner.addEventListener(MouseEvent.MOUSE_OVER, showToolFunction);
				owner.removeEventListener(MouseEvent.MOUSE_OUT, hideToolFunction);
			};
			owner.addEventListener(MouseEvent.MOUSE_OVER, showToolFunction);
		}
	}
}

import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.display.InteractiveObject;
import flash.events.Event;
import flash.events.MouseEvent;

class MyTip extends Sprite {
	public var owner : InteractiveObject;
	private var toolTip : TextField;
	private var _text : String;

	public function get text() : String {
		return _text;	
	}

	public function set text(_s : String) : void {
		_text = _s;	
		toolTip.text = _s;
	}

	
	public function MyTip(_ower : InteractiveObject ,txt : String) : void {
		owner = _ower;
		_text = txt;
		this.addEventListener(Event.ADDED_TO_STAGE, listener);
		this.addEventListener(Event.REMOVED_FROM_STAGE, relistener);
		toolTip = new TextField();
		toolTip.visible = true;
		toolTip.text = txt;
		toolTip.background = true;
		toolTip.backgroundColor = 0xFFCC66;
		toolTip.border = true;
		toolTip.borderColor = 0x000000;
		toolTip.multiline = false;
		toolTip.wordWrap = false;
		toolTip.autoSize = TextFieldAutoSize.LEFT;
		toolTip.selectable = false;
		toolTip.mouseEnabled = false;
				
		//设置动态文本样式
		var format : TextFormat = new TextFormat();
		format.font = "_sans";
		format.leftMargin = 4;
		format.rightMargin = 4;
		format.size = 12;
		toolTip.setTextFormat(format);
		this.addChild(toolTip);
		this.alpha = 0.5;
	}

	private function relistener(e : Event) : void {
		
		stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);	
	}

	private function listener(e : Event) : void {
		this.x = this.parent.mouseX + 12;
		this.y = this.parent.mouseY + 12;
		stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
	}

	private function onMouseMove(e : MouseEvent) : void {
		//trace(1);
		if(owner.stage != null)
		{
			this.x = this.parent.mouseX + 12;
			this.y = this.parent.mouseY + 12;
		}else
		{
			this.parent.removeChild(this);	
			//stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
		}
	}
}







 

分享到:
评论

相关推荐

    VB中给listview的item添加多行气泡式Tooltip

    Private Const TTDT_INITIAL = 3 Private Const TOOLTIPS_CLASSA = "tooltips_class32" ``` 这里定义了一系列用于配置工具提示窗口的常量,包括消息ID、样式标志等。 ##### Tooltip 窗口类型 ```vb Private Type ...

    VB6.0源码示例之 定制自已的提示栏

    - **导入所需的控件**:VB6.0不包含专门的工具提示控件,但我们可以通过添加第三方控件,如Microsoft ToolTip Control 6.0 (TOOLTIPS_CLASS32),来实现自定义功能。 - **设置属性**:一旦导入控件,可以为其设置...

    在listbox中显示每个Item的Tooltip

    3. **设置每个Item的Tooltip文本**:对于Listbox中的每个Item,你需要设置其对应的Tooltip文本。这通常在Item的`Click`或`MouseHover`事件中处理。例如: ```vba Private Sub ListBox1_MouseMove(ByVal Button As ...

    vsflex8_8.0.20182.321_ListView_

    【描述】"ListView Controls As Well As ToolTips For Visual Basic Userform and Controls" 描述了这个控件不仅提供了ListView的高级功能,还支持Tooltip。Tooltip是Windows应用中的一个小窗口,当鼠标悬停在某个...

    vb气泡提示的类,文字可换行,只要设置对应的控件即可

    ##### 3. 类的核心方法 - **`Create()` 方法**: - 功能:创建并显示工具提示。 - 实现: - 使用 `DestroyWindow` 销毁已存在的工具提示窗口。 - 通过 `CreateWindowEx` 创建一个新的工具提示窗口。 - 获取关联...

    JFreeChart入门_-_使用JFreeChart开发Pie(饼状图)

    pieDataset.setValue("Category 3", 20); pieDataset.setValue("Category 4", 10); return pieDataset; } ``` **根据 Dataset 生成 JFreeChart 对象及设置** 创建好数据集后,我们需要使用 `ChartFactory....

    Python如何使用bokeh包和geojson数据绘制地图

    p.add_tools(HoverTool(tooltips=[("Name", "@name")])) ``` 这里,`@name`指的是GeoJSON数据中的属性名,它将在鼠标悬停时显示。 最后,你还可以使用Bokeh的色彩映射功能,根据特定属性对区域进行着色。例如,...

    Visual C++ 编程资源大全(英文控件)

    1,01.zip Toolbar - Custom status messages and tooltips 用户状态信息与工具提示(3KB)<END><br>2,02.zip Remove system menu from floating toolbar 从浮动工具条中去除系统菜单(2KB)<END><br>3,03....

    PB-类Outlook工具栏界面实现

    例如,制作Splash窗口、状态条、图标栏应用、MDI窗口背景图片、控件显示Tooltips、定制命令按钮、导航图界面、图文并茂的菜单、控件大小与窗口大小同步、动态创建控件以及控件融合技术等,都是提升界面用户体验的...

    安卓语法高亮编辑器HighlightTextEditor.zip

    HighlightTextEditor是一个安卓代码语法高亮控件,目前已经支持200多种语言,近90多种主题配色方案,同时支持lua扩展,以及自定义语言配置。强烈推荐,一款不可多得的开源控件。 支持的语言: abap4.lang ...

    Visual C++ 编程资源大全(英文源码 表单)

    18.zip Color Dialog with Persistent Custom Colors 对话框继承了上一次的颜色风格(12KB)<END><br>19,19.zip A Base Dialog Class for Modal/Modeless Dialog with Custom Background Color 自定义背景...

    解读Bootstrap v4 sass设计

    - **组件JS**:与JavaScript交互的组件,如`modal`和`tooltips`。 - **实用工具**:提供通用的类,如`clearfix`和`center-block`,方便快速布局。 5. **使用和修改Bootstrap v4的样式**: 如果直接使用CSS,可以...

Global site tag (gtag.js) - Google Analytics