在学习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);
}
}
}