FLEX的DataTips显示位置是在中间的,项目中有时要用到自定义显示位置,可以利用以下类来设定.
- package utils
- {
- import flash.display.Stage;
- import flash.events.Event;
- import flash.utils.setTimeout;
- import mx.controls.ToolTip;
- import mx.core.UITextField;
- import mx.events.ListEvent;
- /**
- * 自定义DataTip
- * @author 黄建文
- * @version V1.0
- * @email: hjwtp2005@qq.com
- * @url www.emtit.com
- */
- public class myDataTip
- {
- private var currentItem:Object;
- public function myDataTip(stage:Stage)
- {
- stage.addEventListener(Event.ADDED,_added)
- }
- private function _added(e:Event):void{
- //判断是不是ToolTip;
- if(e.target is UITextField && e.target.parent is ToolTip)
- {
- e.target.visible = false;
- e.target.parent["getChildAt"](0)["visible"] = false;
- setTimeout(_setPoint,50,e.target);
- }
- }
- private function _setPoint(target:Object):void{
- //如果该ToolTip为当前项目的ToolTip~设置坐标
- target.parent.y = currentItem.y+145;
- target.parent.x = currentItem.x+290;
- target.visible = true;
- target.parent["getChildAt"](0)["visible"] = true;
- }
- //保存当前鼠标所在位置的项目
- public function _over(e:ListEvent):void{
- currentItem = e.itemRenderer;
- }
- }
- }
调用方法,在模块加臷时
setTip:myDataTips=new myDataTips(stage);
设定位置
setTip._over(event);