AS3 toolTip 的简单设计

在学习C# WPF时,内有介绍一些控件内置的ToolTip功能时;

想起之前的页游制作时,的ToolTip功能;

1)、每个需要ToolTip都加个Over,Out事件,并指定数据,构造并显示到ToolTip;

2)、每个需要需要ToolTip的组件,都由一个ToolTip管理器去注册,与注销ToolTip处理(也就是,Over,Out事件处理)

今天看到的这种,也随手写一下;

也有他存在的意义,一般比较适用于:不变动的ToolTip内容使用,比较适合;

毕竟目前无法实现,与WPF中的ToolTip那样强大;

可以直接在.xaml中,写自己想要的可视元素都可以(里面的,布局,数据,都可以自定),非常方便;


大概实现底层封装:

	//WPF中的ToolTip功能,在以往的游戏中,可以使用这种封装结构;
	//方便、灵活;
	//如as3 code:随手写的伪代码
	public class GameDspObj : DisplayObject{
	
		private var _toolTip:DisplayObject;
		
		public function get toolTip():void{
			return _toolTip;
		}
		
		public function set toolTip(value:Object):void{
			var result:Object;
			if(value is DisplayObject){
				// control show or hide
				result = value;
			}else{
				value = value.toString();
				// default toolTip dspObj show or hide
				result = new DefualtToolTip(value);
			}
			_toolTip = result;
		}
		
		public GameDspObj(){
			addEventListener(MouseEvent.HOVER, onHover);
			addEventListener(MouseEvent.OUT, onOut);
		}
		
		protected function onHover(e:MouseEvent):void{
			// show toolTip dspObj
			LayerMgr.getL(EnumLayer.ToolTip).addChild(toolTip);
		}
		
		protected function onOut(e:MouseEvent):void{
			// hide toolTip dspObj
			if(toolTip && toolTip.parent){
				toolTip.parent.removeChild(toolTip);
			}
		}
	}


你可能感兴趣的:(AS3 toolTip 的简单设计)