由于Flex的组件提示时间很短,我们可以通过2个办法来延长那个提示时间:
1。增加一个提示特效
(如果是在主程序里使用,所有设置了提示字符串的组件都有本特效)
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="99%"
height="99%"
pageTitle="统一网管系统"
creationComplete="init();">
<fx:Declarations>
<mx:Rotate id="rotate" />
<mx:Zoom id="zoom" />
</fx:Declarations>
<fx:Script>
<![CDATA[
private function init():void
{
//提示动画效果
ToolTipManager.hideDelay = 2000;
ToolTipManager.showEffect = rotate;
ToolTipManager.hideEffect = zoom;
//拓扑图数据展示
//fromSmallDataButton.x=10;
//fromSmallDataButton.y=117;
//fromSmallDataButton.visible=false;
//sigImg.addElement(fromSmallDataButton);
//注册拓扑网元监控
//getAllNe.subscribe();//订阅远端目标
}
]]>
<!--没有图片是可以删icon属性,和click方法-->
<mx:LinkButton id="selectnode" toolTip="这是一个测试" icon="@Embed(source='images/zoomimage/select.png')" click="btnclickHandler(event)"/>
</s:Application>
2.自己创建提示组件,鼠标移到组件时提示,移开就删除
代码片段(tree) rollOver="item_rollOverHandler(event)" rollOut="itemRollOutHandler(event)"
一般UI组件(Canvas,Panel)
(UI组件)
Tree组件
<mx:Tree id="tree"
width="300"
height="100%"
dataProvider="{treedata}"
iconFunction="setIcon"
labelFunction="tree_labelFunc"
labelField="name"
itemRollOver="itemRollOverHandler(event)" itemRollOut="itemRollOutHandler(event)"
itemClick="tree_itemClickHandler(event)">
//as代码 青放入 <fx:Script>代码块内
//树的每一项提示
private var myToolTip:ToolTip; //存放创建的ToolTip类传递给销毁中用的参数
///当鼠标移动到一个tree中条目上创建ToolTip,并显示出需要的数据格式
private function itemRollOverHandler(event:ListEvent):void
{
//tree
var o:Object=event.itemRenderer.data;
var toolTip:String;
if(o.hasOwnProperty("hasDevice")){
toolTip="区名:" + o.name;
}
if(o.hasOwnProperty("ip")){
var ipstr:String=o.ip;
if(ipstr=="0.0.0.0"){
toolTip="MAC:" + o.macAddr;
}else{
toolTip="IP:" +ipstr;
}
//var atretype:String="\n区域:"+o.zoneName;
toolTip+="\n类型:"+o.typeName;
}
var p:Point=new Point();
p.x=mouseX;
p.y=mouseY;
if (myToolTip != null)
{
ToolTipManager.destroyToolTip(myToolTip);
}
var ltg:Point=tree.contentToLocal(p);
myToolTip=ToolTipManager.createToolTip(toolTip, ltg.x, ltg.y) as ToolTip;
}
//鼠标离开树组件即删除提示
private function itemRollOutHandler(event:ListEvent):void
{
if (myToolTip is ToolTip)
ToolTipManager.destroyToolTip(myToolTip);
myToolTip=null;
}