- 浏览: 551300 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
coosummer:
推荐使用http://buttoncssgenerator.c ...
【转载】CSS圆角按钮(一) -
saiarmuluo:
不错,支持。
java log4j日志 写入数据库 -
springdata_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
Freemarker 使用 -
zlbdexiaohao:
棒棒的
flex ToolTip汇总 -
hw_128:
demo的代码的,能不能发一下,谢谢 qq257515270 ...
java log4j日志 写入数据库
flex ToolTip
1.toolTip换行符
<mx:Button id="btn1" toolTip="在工具条提示中 使用换行符"/>
2.设定工具条提示的样式
3.设定工具提示宽度
3.使用工具条提示事件
toolTipCrate
toolTipEnd
toolTipHide
toolTipShow
toolTipShown
toolTipStart
4.ToolTip Manager
ToolTip Manager 类用来管理toolTip属性,包含在mx.managers包中
使用ToolTip Manager 延迟工具条显示的时间,在工具条上使用行为效果
建立动态的工具条提示,使用自定义的工具条提示
公共属性
currentTarget : DisplayObject
当前显示工具提示的 UIComponent;如果未显示工具提示,则为 null。 ToolTipManager
currentToolTip : IToolTip
当前可见的 ToolTip 对象;如果未显示 ToolTip 对象,则为 null。 ToolTipManager
enabled : Boolean
如果为 true,则当用户将鼠标指针移至组件上方时,ToolTipManager 会自动显示工具提示。 ToolTipManager
hideDelay : Number
自工具提示出现时起,Flex 要隐藏此提示前所需等待的时间量(以毫秒为单位)。 ToolTipManager
hideEffect : IAbstractEffect
隐藏工具提示时播放的效果;如果工具提示在消失时不应显示任何效果,则为 null。 ToolTipManager
prototype : Object
对类或函数对象的原型对象的引用。 Object
scrubDelay : Number
在 Flex 再次等待 showDelay 持续显示工具提示之前,用户在各控件间移动鼠标时可以花费的时间(以毫秒为单位)。 ToolTipManager
showDelay : Number
当用户将鼠标移至具有工具提示的组件上方时,Flex 等待 ToolTip 框出现所需的时间(以毫秒为单位)。 ToolTipManager
showEffect : IAbstractEffect
显示工具提示时播放的效果;如果工具提示在显示时不应显示任何效果,则为 null。 ToolTipManager
toolTipClass : Class
创建工具提示要用到的类。
1.控制工具条的显示隐藏
ToolTip Manager enabled属性来定义工具条提示状态,默认为true,设定为false就表示禁用
2.延迟工具条的提示时间
showDelay 默认为500毫秒 当鼠标在控件之间移动时,flex等待显示工具条提示的时间长度
hideDelay 默认值为10000毫秒 如果设定hideDelay属性值为0,flex不显示工具条提示,如果设定为Infinity,flex则一致显示工具提示
直到下一个动作,或者鼠标离开主键
例如:
ToolTipManager.showDelay=0;//立即显示
ToolTipManager.hideDelay=3000;//3s秒后隐藏
3.在工具条上使用动画效果
4.建立动态工具条体提示
ToolTipManager有两种方法,即:createToolTip()和destroyToolTip()
建立一个工具条提示对象时,可以定义其属性,样式,事件和效果。
crateToolTip()方法结构
createToolTip(text:String, x:Number, y:Number, errorTipBorderStyle:String = null, context:IUIComponent = null):IToolTip
[] 使用指定的文本创建 ToolTip 类的实例,然后在舞台坐标中的指定位置显示此实例。 ToolTipManager
destroyToolTip(toolTip:IToolTip):void
[] 销毁由 createToolTip() 方法创建的指定 ToolTip。
例如:
<mx:Label id="lbl" toolTip="demo ToolTip" text="mouse over here" />
<mx:Button id="btn1" toolTip="填写的是{lbl.text}"/>
5.建立用户自定义的工具条提示
6.使用错误信息提示工具条
7.重写工具条皮肤
ToolTip皮肤存在mx.skins.ToolTipBorder.as文件中
当然需要重写的时候就可以 ToolTipBorder 类继承的类就可以了
例如:
自定义皮肤 参见:http://demojava.iteye.com/blog/1175446
简单DateGird Item ToolTip
1.使用 dataTipFunction函数
<mx:DataGrid id="dg" width="100%" height="100%" rowHeight="22" dataTipFunction="buildToolTip">
2.DataGridColumn 上设置:
<mx:DataGridColumn headerText="Text" dataField="text" dataTipField="text" showDataTips="true" />
自定义DateGird Item ToolTip
效果图:
自定义ToolTip
renderers.MenuToolTipRenderer as 实现接口 IMenuItemRenderer, IDataRenderer, IListItemRenderer
Application.xml
附件为源文件
1. 设置ToolTip风格(通过css来设置)
ToolTip {
fontFamily: "Arial";
fontSize: 13;
fontStyle: "italic";
color: #FF6699;
backgroundColor: #33CC99;
}
当然这个可以通过css来动态设置例如:
StyleManager.getStyleDeclaration("ToolTip").setStyle("fontStyle","italic");
2. 错误提示errotTip
errorTip
{
border-style:"errorTipRight";
}
其中border-style其对应的格式决定小三角的方位,可选值:[toolTip,errorTipRight,errorTipAbove,errorTipBelow]
<mx:TextInput x="85" y="118" text="021-阿萨德发送" errorString="输入有误!" />
如果想修改源码,改变小三角的大小或者位置的话就需要自定义border-skin
ToolTip
{
border-skin:ClassReference("com.MyToolTipBorder");
}
其中 com.MyToolTipBorder其中是一个继承了RectangularBorder的类,源码参见附件, ToolTip默认的skin-class路径在sdk
sdks\3.0.0\frameworks\projects\framework\src\mx\skins\halo\ToolTipBorder
引入包的路径:import mx.skins.halo.ToolTipBorder;
笔者发现 ToolTipBorder 的类对于4个方向支持不是很好,其中最右边的提示,也就是小三角在右边的没有,把源码修改了下(附件中有MyToolTipBorder)
改变默认的错误提示的背景色设置4个方向的提示
3. 使用ToolTipManager动态创建自定义的tooltip;
使用ToolTipManager管理器类能够让你设置基本的ToolTip功能。比如显示延迟,以及控制是否显示ToolTip信息内容。
你可以在程序中激活和停止使用ToolTips.
可以使用enabled这个属性来激活或者停止使用ToolTips,如果停止使用,在鼠标移到到组件上方的时候就不会用ToolTips的框显示出来,不管那个组件是否设置了toolTip这个属性值
设置ToolTipManager的常用属性介绍
ToolTipManager.enabled = true;//鼠标移入控件自动显示工具提示
ToolTipManager.showDelay = 0; //flex 等待tooltip出现的时间单位毫秒默认500
ToolTipManager. hideDelay=3000; //flex 隐藏tooltip所需的事件等待量 单位毫秒,默认500
ToolTipManager.showEffect= fadeIn; //显示tooltip的特效
ToolTipManager. hideEffect= fadeIn; //隐藏 tooltip的特效
<mx:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="1000"/>
4. 使用ToolTipManager createToolTip,destroyToolTip来动态创建自定义tooltip
一般自定义tooltip都是在控件的
MouseEvent. ROLL_OVER(rollOver)
MouseEvent. MOUSE_OVER (mouseOver)
控制自定义tooltip的显示
MouseEvent. ROLL_OUT (rollOut)
MouseEvent. MOUSE_OUT (mouseOut)
控制自定义tooltip的隐藏
现已rollOver结合ToolTipManager实现自定义tooltip
5. 实现mx.core.IToolTip接口自定义toolTip的外观(可选as实现该接口,mxml实现该接口)
现已mxml实现该接口为例(简单), MyPanelToolTip.mxml
使用时:
private function createCustomTip(title:String, body:String, event:ToolTipEvent):void
{
var pan:MyPanelToolTip = new MyPanelToolTip();
pan.title = title;
pan.text=body;
event.toolTip = pan;
}
<mx:Button id="btn3" label="button" x="275.5" toolTip="demo" toolTipCreate="createCustomTip('自定义tooltip','该tooltip实现mx.core.IToolTip接口,注意是控件必须设置toolTip属性的值',event)" y="187"/>
6. 自定义组件(继承UIComponent)结合mouseover事件形式
效果图:
1.toolTip换行符
<mx:Button id="btn1" toolTip="在工具条提示中 使用换行符"/>
2.设定工具条提示的样式
<mx:Style> ToolTip { fontSize:19; color:#FF6699; } </mx:Style>
3.设定工具提示宽度
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.controls.ToolTip; public function init():void { ToolTip.maxWidth=100; } ]]> </mx:Script>
3.使用工具条提示事件
toolTipCrate
toolTipEnd
toolTipHide
toolTipShow
toolTipShown
toolTipStart
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.events.ToolTipEvent; import flash.media.Sound; [Embed(source="demo.mp3")] private var beepSound:Class; private var myClip:Sound; public function init():void { TooTip.maxWidth=100; } public function playSoune():void { myClip.play(); } public function myListener(event:ToolTipEvent):void { playSoune(); } public function init():void { lbl.addEventListener(ToolTipEvent.TOOL_TIP_SHOW,myListener); myClip=new beepSound(); } ]]> </mx:Script> <mx:Label id="lbl" toolTip="demo ToolTip" text="mouse over here" />
4.ToolTip Manager
ToolTip Manager 类用来管理toolTip属性,包含在mx.managers包中
使用ToolTip Manager 延迟工具条显示的时间,在工具条上使用行为效果
建立动态的工具条提示,使用自定义的工具条提示
公共属性
currentTarget : DisplayObject
当前显示工具提示的 UIComponent;如果未显示工具提示,则为 null。 ToolTipManager
currentToolTip : IToolTip
当前可见的 ToolTip 对象;如果未显示 ToolTip 对象,则为 null。 ToolTipManager
enabled : Boolean
如果为 true,则当用户将鼠标指针移至组件上方时,ToolTipManager 会自动显示工具提示。 ToolTipManager
hideDelay : Number
自工具提示出现时起,Flex 要隐藏此提示前所需等待的时间量(以毫秒为单位)。 ToolTipManager
hideEffect : IAbstractEffect
隐藏工具提示时播放的效果;如果工具提示在消失时不应显示任何效果,则为 null。 ToolTipManager
prototype : Object
对类或函数对象的原型对象的引用。 Object
scrubDelay : Number
在 Flex 再次等待 showDelay 持续显示工具提示之前,用户在各控件间移动鼠标时可以花费的时间(以毫秒为单位)。 ToolTipManager
showDelay : Number
当用户将鼠标移至具有工具提示的组件上方时,Flex 等待 ToolTip 框出现所需的时间(以毫秒为单位)。 ToolTipManager
showEffect : IAbstractEffect
显示工具提示时播放的效果;如果工具提示在显示时不应显示任何效果,则为 null。 ToolTipManager
toolTipClass : Class
创建工具提示要用到的类。
1.控制工具条的显示隐藏
ToolTip Manager enabled属性来定义工具条提示状态,默认为true,设定为false就表示禁用
2.延迟工具条的提示时间
showDelay 默认为500毫秒 当鼠标在控件之间移动时,flex等待显示工具条提示的时间长度
hideDelay 默认值为10000毫秒 如果设定hideDelay属性值为0,flex不显示工具条提示,如果设定为Infinity,flex则一致显示工具提示
直到下一个动作,或者鼠标离开主键
例如:
ToolTipManager.showDelay=0;//立即显示
ToolTipManager.hideDelay=3000;//3s秒后隐藏
3.在工具条上使用动画效果
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.managers.ToolTipManager; import mx.events.ToolTipEvent; import flash.media.Sound; [Embed(source="demo.mp3")] private var beepSound:Class; private var myClip:Sound; public function init():void { TooTip.maxWidth=100; ToolTipManager.showEffect=fadeIn; } ]]> </mx:Script> <mx:Label id="lbl" toolTip="demo ToolTip" text="mouse over here" /> <mx:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="1000" /> <mx:Panel > <mx:Button id="btn" toolTip="demoasdf" /> </mx:Panel >
4.建立动态工具条体提示
ToolTipManager有两种方法,即:createToolTip()和destroyToolTip()
建立一个工具条提示对象时,可以定义其属性,样式,事件和效果。
crateToolTip()方法结构
createToolTip(text:String, x:Number, y:Number, errorTipBorderStyle:String = null, context:IUIComponent = null):IToolTip
[] 使用指定的文本创建 ToolTip 类的实例,然后在舞台坐标中的指定位置显示此实例。 ToolTipManager
destroyToolTip(toolTip:IToolTip):void
[] 销毁由 createToolTip() 方法创建的指定 ToolTip。
例如:
<mx:Label id="lbl" toolTip="demo ToolTip" text="mouse over here" />
<mx:Button id="btn1" toolTip="填写的是{lbl.text}"/>
5.建立用户自定义的工具条提示
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:Script> <![CDATA[ import mx.managers.ToolTipManager; import mx.events.ToolTip; public var myTip:ToolTip; public function init():void { var s:String ="保存,应用,退出"; myTip=ToolTipManager.createToolTip(s,10,10) as ToolTip; myTip.setStyle("backgroundColor",0xFFCC00); myTip.width=300; myTip.height=40; } public funciton destroyBigTip():void { ToolTipManager.destroyToolTip(myTip); } ]]> </mx:Script> <mx:Button id="btn" toolTip="test toolTip" rollOver="init()" rollOut="destroyBigTip()"/>
6.使用错误信息提示工具条
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:Script> <![CDATA[ import mx.managers.ToolTipManager; import mx.events.ToolTip; public var errorTip:ToolTip; private function validatefun(type:String,event:Object):void { errorTip=" demo test "; errorTip=ToolTipManager.createToolTip(errorTip,event.currentTarget.x,event.currentTarget.y) as ToolTip; errorTip.setStyle("styleName","errorTip"); } <mx:TextInput id="txt" enter="validatefun('demo',event)" />
7.重写工具条皮肤
ToolTip皮肤存在mx.skins.ToolTipBorder.as文件中
当然需要重写的时候就可以 ToolTipBorder 类继承的类就可以了
例如:
package { import mx.skins.RectangularBorder; public class MyToolTipBorder extends RectangularBorder { public function MyToolTipBorder() { super(); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { } override public function layoutBackgroundImage():void { } } }mxml中使用 <mx:Style> ToolTip { borderSkin:ClassReference("MyToolTipBorder"); } </mx:Style>
自定义皮肤 参见:http://demojava.iteye.com/blog/1175446
简单DateGird Item ToolTip
1.使用 dataTipFunction函数
<mx:DataGrid id="dg" width="100%" height="100%" rowHeight="22" dataTipFunction="buildToolTip">
private function buildToolTip(item:Object):String{ mx.styles.StyleManager.getStyleDeclaration("ToolTip").setStyle("fontSize",12); var myString:String = ""; if(item != null) { myString = myString + "Firstname : "+item.firstname+ "/n"; myString = myString + "Lastname : " + item.lastname+"/n" } return myString; }
2.DataGridColumn 上设置:
<mx:DataGridColumn headerText="Text" dataField="text" dataTipField="text" showDataTips="true" />
自定义DateGird Item ToolTip
效果图:
![](http://dl.iteye.com/upload/attachment/0061/7777/385de7b4-520e-39f0-a89c-2bac869d65ff.jpg)
自定义ToolTip
renderers.MenuToolTipRenderer as 实现接口 IMenuItemRenderer, IDataRenderer, IListItemRenderer
package renderers { import flash.events.Event; import flash.events.MouseEvent; import flash.text.TextFieldAutoSize; import mx.controls.Alert; import mx.controls.LinkButton; import mx.controls.Menu; import mx.controls.listClasses.IListItemRenderer; import mx.controls.menuClasses.IMenuItemRenderer; import mx.core.EdgeMetrics; import mx.core.IDataRenderer; import mx.core.UIComponent; import mx.core.UITextField; import mx.events.FlexEvent; public class MenuToolTipRenderer extends UIComponent implements IMenuItemRenderer, IDataRenderer, IListItemRenderer { private var textField:UITextField; private var clickText:LinkButton; public function get measuredTypeIconWidth():Number//类型图标(单选/复选)的宽度 { return 33; } public function get measuredBranchIconWidth():Number//分支图标的宽度 { return 33; } public function get measuredIconWidth():Number//图标的宽度 { return 33; } //------------------------------------------------------------------------- public function MenuToolTipRenderer() { super(); this.addEventListener(FlexEvent.DATA_CHANGE, renderComponent); this.setStyle("cornerRadius", 5); this.maxWidth = 250; } //------------------------------------------------------------------------- // Internal variable for the property value. private var _menu:Menu; public function get menu():Menu { return _menu; } public function set menu(value:Menu):void { _menu = value; } //------------------------------------------------------------------------- private var _data:Object; [Bindable("dataChange")] public function get data():Object { return _data; } public function set data(value:Object):void { _data = value; dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); } //------------------------------------------------------------------------- private function get borderMetrics():EdgeMetrics { return EdgeMetrics.EMPTY; } //------------------------------------------------------------------------- private function renderComponent(event:FlexEvent):void { if(_data != null && _data != "null") { textField.htmlText = data.label; invalidateProperties(); invalidateSize(); invalidateDisplayList(); } } //------------------------------------------------------------------------- private function buttonClick(event:Event):void { mx.controls.Alert.show("button click"); } //------------------------------------------------------------------------- override protected function createChildren():void { super.createChildren(); // Create the TextField that displays the tooltip text. if (!textField) { textField = new UITextField(); textField.autoSize = TextFieldAutoSize.LEFT; textField.mouseEnabled = false; textField.multiline = true; textField.selectable = false; textField.wordWrap = true; textField.styleName = this; addChild(textField); } } //------------------------------------------------------------------------- override protected function measure():void { super.measure(); var bm:EdgeMetrics = borderMetrics; var leftInset:Number = bm.left + getStyle("paddingLeft"); var topInset:Number = bm.top + getStyle("paddingTop"); var rightInset:Number = bm.right + getStyle("paddingRight"); var bottomInset:Number = bm.bottom + getStyle("paddingBottom"); var widthSlop:Number = leftInset + rightInset; var heightSlop:Number = topInset + bottomInset; textField.wordWrap = false; if (textField.textWidth + widthSlop > this.maxWidth) { textField.width = this.maxWidth - widthSlop; textField.wordWrap = true; } measuredWidth = textField.width + widthSlop; measuredHeight = textField.height + heightSlop; this.parent.parent.height = this.parent.height = this.height = measuredHeight + 25; this.parent.parent.width = this.parent.width = this.width = measuredWidth; createAdditionalContent(measuredWidth, measuredHeight); } private function createAdditionalContent(measuredWidth:Number, measuredHeight:Number):void { clickText = new LinkButton(); clickText.label = "More Info"; clickText.width = 70; clickText.height = 18; clickText.setStyle("fontSize", 9); clickText.setStyle("color", "blue"); clickText.buttonMode = true; clickText.visible = true; clickText.y = measuredHeight; clickText.x = measuredWidth - clickText.width - 8; clickText.addEventListener(MouseEvent.CLICK, dispatchClick); addChild(clickText); } private function dispatchClick(e:Event):void { this.dispatchEvent(new Event("buttonClicked", true)) } } }
Application.xml
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()" viewSourceURL="srcview/index.html" width="600" height="300"> <mx:DataGrid id="dg" dataProvider="{tmpArray}" width="550" mouseOut="dgMouseOut(event)" mouseOver="dgMouseOver(event)" mouseMove="dgMouseMove(event)"> <mx:columns> <mx:Array> <mx:DataGridColumn headerText="Label" dataField="label" showDataTips="true" /> <mx:DataGridColumn headerText="Data" dataField="data" /> </mx:Array> </mx:columns> </mx:DataGrid> <mx:Style> .menuToolTip { backgroundAlpha: 1; backgroundColor: #ffffcc; useRollOver: false; borderStyle: solid; borderThickness: 0; borderColor: #000000; selectionColor: #7fcdfe; dropShadowEnabled: true; cornerRadius: 5; paddingLeft: 3; paddingRight: 3; paddingTop: 3; paddingBottom: 3; } </mx:Style> <mx:Script> <![CDATA[ import mx.automation.delegates.controls.ListBaseContentHolderAutomationImpl; import mx.controls.listClasses.ListBase; import renderers.MenuToolTipRenderer; import mx.controls.dataGridClasses.DataGridItemRenderer; import mx.managers.ToolTipManager; import mx.controls.Menu; import mx.events.MenuEvent; import flash.geom.Point; [Bindable] private var dgMouseX:Number = 0; [Bindable] private var dgMouseY:Number = 0; private var toolTipMenu:Menu; private var toolTipTimer:Timer; [Bindable] public var tmpArray:Array = [{label: '<b>mary</b> had a little lamb', data: 55, link:'http://www.meutzner.com/blog'}, {label: 'All the kings men, and all the kings horses', data: 56, link:'http://www.meutzner.com/blog'}, {label: 'baa baa black sheep, have you any wool', data: 57, link:'http://www.meutzner.com/blog'}, {label: 'jack and jill went up the hill', data: 58, link:'http://www.meutzner.com/blog'}, {label: 'little miss muffet, sat on a tuffet, eating her curds and whey', data: 59, link:'http://www.meutzner.com/blog'} ]; //------------------------------------------------------------------------- public function init():void { ToolTipManager.enabled = false; } //------------------------------------------------------------------------- private function createMenu(data:Object):void { toolTipTimer.stop(); var menuData:Array = [{label: data.label, link: data.link}]; toolTipMenu = Menu.createMenu(this, menuData, false); toolTipMenu.labelField="label"; toolTipMenu.width = 250; toolTipMenu.setStyle("fontSize", 10); toolTipMenu.setStyle("themeColor", 0xFF9900); toolTipMenu.itemRenderer = new ClassFactory(renderers.MenuToolTipRenderer); toolTipMenu.data = data; toolTipMenu.selectable = false; toolTipMenu.setStyle("styleName", "menuToolTip"); toolTipMenu.setStyle("openDuration", 0); //toolTipMenu.setStyle("selectionEasingFunction", myEasingFunction); toolTipMenu.addEventListener(MouseEvent.ROLL_OUT, hideToolTip); toolTipMenu.addEventListener("buttonClicked", catchButtonClick); var pt1:Point = new Point(this.dgMouseX, this.dgMouseY); pt1 = dg.localToGlobal(pt1); //offset this for now to fix slight bug where immediate mouseover of tooltip causes it to hide toolTipMenu.show(pt1.x+10, pt1.y+0); } //------------------------------------------------------------------------- private function hideToolTip(event:MouseEvent):void { //trace("MENU --- " + event.relatedObject + " - " + event.target + " - " + event.currentTarget); toolTipMenu.hide(); } //------------------------------------------------------------------------- private function dgMouseMove(event:MouseEvent):void { this.dgMouseX = dg.mouseX; this.dgMouseY = dg.mouseY; } //------------------------------------------------------------------------- private function dgMouseOver(event:MouseEvent):void { this.dgMouseX = dg.mouseX; this.dgMouseY = dg.mouseY; //trace("DATAGRID OVER --- " + event.target + " - " + event.currentTarget + " - " + event.relatedObject); if(event.target is DataGridItemRenderer) { if(toolTipMenu != null) { if(toolTipMenu.visible && toolTipMenu.data == event.target.data) return; } if(!DataGridItemRenderer(event.target).styleName.showDataTips) return; toolTipTimer = new Timer(1000, 0); toolTipTimer.addEventListener(TimerEvent.TIMER, function():void { createMenu(event.target.data); } ); toolTipTimer.start(); } } //------------------------------------------------------------------------- private function dgMouseOut(event:MouseEvent):void { if(toolTipTimer) toolTipTimer.stop(); //trace("DATAGRID OUT --- " + event.target + " - " + event.currentTarget + " - " + event.relatedObject); if(event.relatedObject is mx.controls.listClasses.ListBaseContentHolder || event.relatedObject is MenuToolTipRenderer) { return; } if(event.target is DataGridItemRenderer) { if(event.relatedObject is Menu || !event.relatedObject is MenuToolTipRenderer) return; if(toolTipMenu != null) toolTipMenu.hide(); } } //------------------------------------------------------------------------- private function catchButtonClick(e:Event):void { mx.controls.Alert.show(e.target.data.label + " was clicked to take you to " + e.target.data.link); } ]]> </mx:Script> </mx:Application>
附件为源文件
1. 设置ToolTip风格(通过css来设置)
ToolTip {
fontFamily: "Arial";
fontSize: 13;
fontStyle: "italic";
color: #FF6699;
backgroundColor: #33CC99;
}
当然这个可以通过css来动态设置例如:
StyleManager.getStyleDeclaration("ToolTip").setStyle("fontStyle","italic");
2. 错误提示errotTip
![](http://dl.iteye.com/upload/attachment/0062/6199/dbe0e427-0ef4-34d2-a3de-cdbb6d88496d.png)
errorTip
{
border-style:"errorTipRight";
}
其中border-style其对应的格式决定小三角的方位,可选值:[toolTip,errorTipRight,errorTipAbove,errorTipBelow]
<mx:TextInput x="85" y="118" text="021-阿萨德发送" errorString="输入有误!" />
如果想修改源码,改变小三角的大小或者位置的话就需要自定义border-skin
ToolTip
{
border-skin:ClassReference("com.MyToolTipBorder");
}
其中 com.MyToolTipBorder其中是一个继承了RectangularBorder的类,源码参见附件, ToolTip默认的skin-class路径在sdk
sdks\3.0.0\frameworks\projects\framework\src\mx\skins\halo\ToolTipBorder
引入包的路径:import mx.skins.halo.ToolTipBorder;
笔者发现 ToolTipBorder 的类对于4个方向支持不是很好,其中最右边的提示,也就是小三角在右边的没有,把源码修改了下(附件中有MyToolTipBorder)
改变默认的错误提示的背景色设置4个方向的提示
![](http://dl.iteye.com/upload/attachment/0062/6201/3ab42659-c5ac-3252-be2f-2318150b8fb4.png)
![](http://dl.iteye.com/upload/attachment/0062/6205/57953acd-9570-3a9b-b66a-9098325bc88f.png)
![](http://dl.iteye.com/upload/attachment/0062/6203/8a5d3813-43c1-3a47-a207-f297d821a5d8.png)
![](http://dl.iteye.com/upload/attachment/0062/6207/49f578f4-e6a2-3710-a31d-7efdeb1f8b53.png)
3. 使用ToolTipManager动态创建自定义的tooltip;
使用ToolTipManager管理器类能够让你设置基本的ToolTip功能。比如显示延迟,以及控制是否显示ToolTip信息内容。
你可以在程序中激活和停止使用ToolTips.
可以使用enabled这个属性来激活或者停止使用ToolTips,如果停止使用,在鼠标移到到组件上方的时候就不会用ToolTips的框显示出来,不管那个组件是否设置了toolTip这个属性值
设置ToolTipManager的常用属性介绍
ToolTipManager.enabled = true;//鼠标移入控件自动显示工具提示
ToolTipManager.showDelay = 0; //flex 等待tooltip出现的时间单位毫秒默认500
ToolTipManager. hideDelay=3000; //flex 隐藏tooltip所需的事件等待量 单位毫秒,默认500
ToolTipManager.showEffect= fadeIn; //显示tooltip的特效
ToolTipManager. hideEffect= fadeIn; //隐藏 tooltip的特效
<mx:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="1000"/>
4. 使用ToolTipManager createToolTip,destroyToolTip来动态创建自定义tooltip
一般自定义tooltip都是在控件的
MouseEvent. ROLL_OVER(rollOver)
MouseEvent. MOUSE_OVER (mouseOver)
控制自定义tooltip的显示
MouseEvent. ROLL_OUT (rollOut)
MouseEvent. MOUSE_OUT (mouseOut)
控制自定义tooltip的隐藏
现已rollOver结合ToolTipManager实现自定义tooltip
<mx:Script> <![CDATA[ import mx.managers.ToolTipManager; public var myTip:ToolTip; private function showTip(event:MouseEvent,type:String):void { Tip=ToolTipManager.createToolTip(str,event.stageX,event.stageY) as ToolTip; //根据需要动态设置tooltip的style属性 myTip.move(event.stageX,event.stageY); } private function hideTip():void { ToolTipManager.destroyToolTip(myTip); } ]]> </mx:Script>
5. 实现mx.core.IToolTip接口自定义toolTip的外观(可选as实现该接口,mxml实现该接口)
现已mxml实现该接口为例(简单), MyPanelToolTip.mxml
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.core.IToolTip" width="212" borderThickness="2" backgroundColor="0xCCCCCC" dropShadowEnabled="true" borderColor="black" roundedBottomCorners="true" height="90"> <mx:Script> <![CDATA[ //注意 Panel 中的 implements="mx.core.IToolTip" [Bindable] private var _text:String=""; public function get text():String { return _text ; } public function set text(value:String):void { this._text=value; } ]]></mx:Script> <mx:Text text="{text}" percentWidth="100"/> </mx:Panel>
使用时:
private function createCustomTip(title:String, body:String, event:ToolTipEvent):void
{
var pan:MyPanelToolTip = new MyPanelToolTip();
pan.title = title;
pan.text=body;
event.toolTip = pan;
}
<mx:Button id="btn3" label="button" x="275.5" toolTip="demo" toolTipCreate="createCustomTip('自定义tooltip','该tooltip实现mx.core.IToolTip接口,注意是控件必须设置toolTip属性的值',event)" y="187"/>
6. 自定义组件(继承UIComponent)结合mouseover事件形式
效果图:
![](http://dl.iteye.com/upload/attachment/0062/6209/b0a30eaf-512b-3576-9316-85f69428bf8f.png)
![](http://dl.iteye.com/upload/attachment/0062/6211/3601e07f-22ed-3d69-b5db-61827a3888de.png)
- MyToolTip.rar (499.7 KB)
- 下载次数: 316
- MyToolTip.rar (579.6 KB)
- 下载次数: 491
发表评论
-
Flex4 模块 [转载]
2012-11-05 09:30 0使用flex4模块(1):传递数据到模块 在主程序与模块 ... -
Flex4 List改变了dataProvider,怎么锁定选中Item【转载】
2012-11-05 09:29 1108sfList.dataProvider = sfData; i ... -
解决flex嵌入字体导致文件过大的问题[转载]
2012-11-05 09:25 0众所周知,Flex嵌入字体 ... -
flex DataGrid 行列颜色设置
2012-05-06 20:00 9151群里一哥们问了个问题,就写了个这个demo DataGrid ... -
flex4 Spark DataGrid,title的字体居中
2012-03-20 21:23 6280【原创】flex4 Spark DataGrid,title的 ... -
flex4 Application backgroundImage
2012-03-10 15:13 2930群里一哥们问我 f4 设置 Application 的 bac ... -
flex 无法将“<mx:>”解析为组件执行.解决办法:
2012-03-09 16:34 8298flex项目导入早期版本 无法将“<mx:******& ... -
flex component 去掉点击加亮边框
2012-03-09 16:35 1101群里有人问我怎么去掉TextInput的文本框加亮。写下来 ... -
flex ProgressBar skin 修改
2012-03-09 16:36 2974f3的形式修改border: 其中 barSkin 是外边框 ... -
flex Draggable Flex Components
2012-03-08 20:38 1026Creating Resizable and Draggabl ... -
flex 3d云标签
2012-03-08 20:37 1624来自:http://downloads.wordpress.o ... -
AS html 形式超链接设置
2012-03-08 20:36 1651lbl.htmlText = " <b& ... -
flex IViewCursor 的应用
2012-03-08 20:35 1100IViewCursor 的应用 demo 效果图:可以上下 ... -
f4 spark 占位控件
2012-03-08 20:33 993halo的占位控件。<mx:Spacer width=& ... -
halo的grid DataGridColumn itemRenderer 混用 spark 组件
2012-03-03 14:20 1419halo的grid DataGridColumn itemRe ... -
flex DeferredInstanceFromFunction 使用
2012-03-02 21:54 1588flex DeferredInstanceFromFuncti ... -
flex ContextMenuItem 根据状态隐藏选项
2012-02-27 18:28 1391因群里一个群员的要求,写了这个demo,代码粗糙,根据一个控件 ... -
动态设置itemRenderer
2012-02-18 19:34 0<mx:TileList id="tl&quo ... -
【转】解决RemoteClass alias信息丢失
2012-02-18 19:15 800问题发生场景:flex程序中存在多个module都调用一个标记 ... -
flex tree icon
2012-02-14 19:53 33561.tree 改变每一项的 icon图标 <?xml ...
相关推荐
标题中的“flex tooltip”指的是Adobe Flex中的一种交互设计元素,Tooltip。在Flex应用程序开发中,Tooltip是用来显示鼠标悬停在某个组件上时提供额外信息的小型弹出窗口。它可以帮助用户理解控件的功能或者显示一些...
### Flex自定义ToolTip详解 在Flex开发中,`ToolTip`是一种非常实用的界面元素,用于在用户悬停或聚焦某个控件时显示额外的信息。默认情况下,Flex提供了基本的`ToolTip`功能,但有时为了满足特定的设计需求或者...
这种自定义的ToolTip在Flex组件上特别有用,Flex是一种强大的富互联网应用程序(RIA)开发框架,由Adobe提供。 ToolTip通常是在鼠标悬停在某个元素上时显示的一小段文本,用于提供额外的上下文信息。在标准的DataGrid...
【Tooltip】是一个在软件开发中常见的用户界面元素,它的全称是“工具提示”,用于向用户提供额外的信息。当用户将鼠标悬停在某个控件上时,Tooltip会显示一个小窗口,展示该控件的功能或者相关说明,帮助用户理解不...
微信小程序-ToolTip信息提示组件导入将ToolTip文件夹复制到pages文件夹内使用在需要使用ToolTip的页面对应的.wxml文件中添加: src="../ToolTip/toolTip.wxml"/> <!-- 引入toolTip模板 --> is=...
在Windows Presentation Foundation (WPF) 中,Tooltip是一个用于显示与鼠标指针相关的简短提示信息的控件。它通常在用户将鼠标悬停在其他UI元素上时出现,提供额外的信息。在默认情况下,Tooltip的样式是有限的,但...
【标题】中的“c# ToolTip 几十种效果”是指使用C#编程语言实现的ToolTip控件的各种显示效果集合。ToolTip控件是Windows Forms或WPF应用中常见的一种组件,它通常用于在鼠标悬停在某个控件上时显示额外的信息。这个...
在IT行业中,"tooltip"是一个常见的交互元素,主要用于在用户将鼠标悬停在特定元素上时显示额外的信息。这个压缩包文件包含了一些关于tooltip实现的基本资源,如样式表(tooltip.css),HTML页面(tooltip.htm),...
在PowerBuilder(PB)环境中,"标准控件"和"数据窗口"是两个核心元素,而"tooltip"则是一种非常实用的功能,可以显示在鼠标悬停时提供额外帮助文本的工具提示。本示例主要探讨如何在SLE(Single Line Edit,单行编辑...
"TOOLTIP提示框"是这种设计中的一个重要元素,它为用户提供简洁而快速的信息提示,无需打开额外的窗口或阅读冗长的帮助文档。在C++编程环境中,创建和使用TOOLTIP提示框能够极大地提升用户体验。本实例将详细介绍...
【Ajax Tooltip】是一种交互式用户界面元素,它利用Ajax(异步JavaScript和XML)技术来动态显示与鼠标指针相关的提示信息。在网页设计中,Tooltip通常用于提供额外的上下文信息,当用户将鼠标悬停在某个元素上时,会...
【ToolTip提示脚本文件】 在IT领域,ToolTip是一种常见的用户界面元素,用于向用户提供额外的信息。当鼠标指针悬停在某个元素上时,ToolTip会显示一个包含详细说明的小窗口,帮助用户理解该元素的功能或内容。在...
"带有图像的ToolTip显示功能"是一个增强UI交互性的技术,它允许在鼠标悬停时显示不仅包含文本,还包含图像的提示信息。这样的功能在很多应用场景下都非常有用,比如在帮助用户理解复杂图标或按钮的含义时,或者在...
在Flex应用中,将`MyToolTip`组件设置为需要显示工具提示的组件的`toolTip`属性。例如,对于一个数据网格(DataGrid),可以在`UsingDataTipInDataGrid.mxml`文件中,遍历每个单元格,根据数据项设置自定义工具提示...
在VC++编程环境中,Tooltip是一种常见的用户界面组件,它能够在鼠标悬停在某个控件上时,显示简短的信息提示。"vc中tooltip应用"这个主题着重于如何在Visual C++项目中有效地利用Tooltip控件,提升用户体验。下面将...
在Microsoft Foundation Class (MFC)库中,ToolTip控件是一个非常实用的功能,它可以在用户将鼠标悬停在某个控件上时显示简短的帮助文本。`MFC最全ToolTip例子+源文件`这个资源包提供了关于如何在MFC应用程序中使用...
在Windows Forms(Winform)开发中,Tooltip是一个非常常见的组件,用于显示鼠标悬停在控件上时的简短提示信息。默认的Tooltip组件虽然功能简单,但在某些情况下可能无法满足复杂的用户界面需求。因此,自定义...
在前端开发中,提示工具(Tooltip)是一种常见且实用的UI元素,用于向用户提供额外的信息或解释某些元素的功能。在本教程中,我们将探讨如何基于Vue框架创建一个简单的Tooltip工具,这将帮助开发者更好地理解Vue组件...