首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

怎么在TWaver Flex中定制Tree的tooltip

2012-09-27 
如何在TWaver Flex中定制Tree的tooltip如果您显示过Tree的ToolTip,会发现这个tooltip离鼠标太远了;而且也

如何在TWaver Flex中定制Tree的tooltip

如果您显示过Tree的ToolTip,会发现这个tooltip离鼠标太远了;而且也无法跟随鼠标一起移动;最重要的是,如果想动态更改tooltip也很麻烦。

怎么在TWaver Flex中定制Tree的tooltip

还是自定义ToolTip灵活:

1. 设置tree.toolTipFunction,关闭默认的tooltip

完整代码:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"xmlns:tw="http://www.servasoftware.com/2009/twaver/flex"paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" backgroundColor="#FFFFFF"creationComplete="init()"><mx:Script><![CDATA[import mx.core.IToolTip;import mx.core.UIComponent;import mx.core.UITextField;import mx.managers.ToolTipManager;import twaver.DataBox;import twaver.IData;import twaver.Link;import twaver.Node;import twaver.controls.TreeData;private var _toolTip:IToolTip;private var _lastData:IData = null;private var _timer:uint = 0;private function init():void {var box:DataBox = tree.dataBox;tree.toolTipFunction = function(element:IData):String {return null;};tree.addEventListener(MouseEvent.MOUSE_MOVE, function(e:MouseEvent):void {handleMouseMove(e);});tree.callLater2(function():void {tree.expandAll();});var from:Node = new Node();from.name = "From";from.toolTip = "From";from.centerLocation = new Point(100, 100);box.add(from);var to:Node = new Node();to.name = "To";to.toolTip = "To";to.centerLocation = new Point(300, 400);box.add(to);var link:Link = new Link(from, to);link.name = "Link";link.toolTip = "Link";box.add(link);}private function handleMouseMove(e:MouseEvent):void {var treeData:TreeData = tree.getTreeDataByMouseEvent(e);var data:IData = (showToolTip() && treeData && treeData.data) ? treeData.data : null;if(data != null){var x:Number = tree.mouseX + 10, y:Number = tree.mouseY + 10;if(data != _lastData){if(_toolTip != null){ToolTipManager.destroyToolTip(_toolTip);}_toolTip = ToolTipManager.createToolTip(data.toolTip, x, y);if(_timer){clearTimeout(_timer);}_timer = setTimeout(function():void {_timer = 0;if(_toolTip){_toolTip.text = "test\n" + _toolTip.text;}}, 1000);}else{_toolTip.x = x;_toolTip.y = y;}}else{if(_toolTip != null){ToolTipManager.destroyToolTip(_toolTip);}_toolTip = null;}_lastData = data;}private function showToolTip():Boolean {var obj:InteractiveObject = null;var mousePoint:Point = new Point(stage.mouseX, stage.mouseY);var objects:Array = stage.getObjectsUnderPoint(mousePoint);for (var i:int = objects.length-1; i>=0; i--) {if (objects[i] is InteractiveObject) {obj = objects[i] as InteractiveObject;break;} else {if (objects[i] is Shape && (objects[i] as Shape).parent) {obj = (objects[i] as Shape).parent;break;}}}return obj is UIComponent || obj is UITextField;}]]></mx:Script><tw:Tree id="tree" width="30%" height="100%"/></mx:Application>

完整代码见附件:见原文最下方

热点排行