zoukankan      html  css  js  c++  java
  • flex中toolTip汇总 转

    1.toolTip换行符 

    <mx:Button id="btn1" toolTip="在工具条提示中&#13; 使用换行符"/> 

    2.设定工具条提示的样式 

    [javascript] view plaincopy
    1. <mx:Style>    
    2.     ToolTip    
    3.     {    
    4.         fontSize:19;    
    5.         color:#FF6699;    
    6.     }    
    7. </mx:Style>    


    3.设定工具提示宽度 

    [javascript] view plaincopy
    1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">    
    2. <mx:Script>    
    3.     <![CDATA[    
    4.         import mx.controls.ToolTip;    
    5.         public function init():void    
    6.         {    
    7.             ToolTip.maxWidth=100;    
    8.         }    
    9.         ]]>    
    10. </mx:Script>    


    4.使用工具条提示事件 
    toolTipCrate 
    toolTipEnd 
    toolTipHide 
    toolTipShow 
    toolTipShown 
    toolTipStart 

    [javascript] view plaincopy
    1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">    
    2. <mx:Script>    
    3.     <![CDATA[    
    4.         import mx.events.ToolTipEvent;    
    5.         import flash.media.Sound;    
    6.         [Embed(source="demo.mp3")]    
    7.         private var beepSound:Class;    
    8.         private var myClip:Sound;    
    9.         public function init():void    
    10.         {    
    11.             TooTip.maxWidth=100;    
    12.         }    
    13.     
    14.         public function playSoune():void    
    15.         {    
    16.             myClip.play();    
    17.         }    
    18.     
    19.         public function myListener(event:ToolTipEvent):void    
    20.         {    
    21.             playSoune();    
    22.         }    
    23.             
    24.         public function init():void    
    25.         {    
    26.             lbl.addEventListener(ToolTipEvent.TOOL_TIP_SHOW,myListener);    
    27.             myClip=new beepSound();    
    28.         }    
    29.         ]]>    
    30. </mx:Script>    
    31. <mx:Label id="lbl" toolTip="demo ToolTip" text="mouse over here" />   


    5.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.在工具条上使用动画效果 

    [javascript] view plaincopy
    1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">    
    2. <mx:Script>    
    3.     <![CDATA[    
    4.         import mx.managers.ToolTipManager;    
    5.         import mx.events.ToolTipEvent;    
    6.         import flash.media.Sound;    
    7.         [Embed(source="demo.mp3")]    
    8.         private var beepSound:Class;    
    9.         private var myClip:Sound;    
    10.         public function init():void    
    11.         {    
    12.             TooTip.maxWidth=100;    
    13.             ToolTipManager.showEffect=fadeIn;    
    14.         }    
    15.         ]]>    
    16. </mx:Script>    
    17. <mx:Label id="lbl" toolTip="demo ToolTip" text="mouse over here" />    
    18. <mx:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="1000" />    
    19. <mx:Panel >    
    20.     <mx:Button id="btn" toolTip="demoasdf" />    
    21. </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.建立用户自定义的工具条提示 

    1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >  
    2. <mx:Script>  
    3.     <![CDATA[  
    4.         import mx.managers.ToolTipManager;  
    5.         import mx.events.ToolTip;  
    6.         public var myTip:ToolTip;  
    7.   
    8.         public function init():void  
    9.         {  
    10.             var s:String ="保存,应用,退出";  
    11.             myTip=ToolTipManager.createToolTip(s,10,10) as ToolTip;  
    12.             myTip.setStyle("backgroundColor",0xFFCC00);  
    13.             myTip.width=300;  
    14.             myTip.height=40;  
    15.         }  
    16.   
    17.         public funciton destroyBigTip():void  
    18.         {  
    19.             ToolTipManager.destroyToolTip(myTip);  
    20.         }  
    21.         ]]>  
    22. </mx:Script>  
    23.     <mx:Button id="btn" toolTip="test toolTip" rollOver="init()" rollOut="destroyBigTip()"/>  

    6.使用错误信息提示工具条 

    As代码  收藏代码
    1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >  
    2. <mx:Script>  
    3.     <![CDATA[  
    4.         import mx.managers.ToolTipManager;  
    5.         import mx.events.ToolTip;  
    6.         public var errorTip:ToolTip;  
    7.     private function validatefun(type:String,event:Object):void  
    8.     {  
    9.         errorTip=" demo test ";  
    10.         errorTip=ToolTipManager.createToolTip(errorTip,event.currentTarget.x,event.currentTarget.y) as ToolTip;  
    11.         errorTip.setStyle("styleName","errorTip");  
    12.     }  
    13. <mx:TextInput id="txt" enter="validatefun('demo',event)" />  



    7.重写工具条皮肤 
    ToolTip皮肤存在mx.skins.ToolTipBorder.as文件中 
    当然需要重写的时候就可以 ToolTipBorder 类继承的类就可以了 
    例如: 

    Java代码  收藏代码
    1. package  
    2. {  
    3.     import mx.skins.RectangularBorder;  
    4.   
    5.     public class MyToolTipBorder extends RectangularBorder  
    6.     {  
    7.         public function MyToolTipBorder()  
    8.         {  
    9.             super();  
    10.         }  
    11.           
    12.         override protected function updateDisplayList(unscaledWidth:Number,  
    13.                                                   unscaledHeight:Number):void  
    14.         {  
    15.               
    16.         }  
    17.           
    18.          override   public function layoutBackgroundImage():void {  
    19.                   
    20.             }  
    21.     }  
    22. }mxml中使用  
    23. <mx:Style>  
    24.     ToolTip  
    25.     {  
    26.         borderSkin:ClassReference("MyToolTipBorder");  
    27.     }  
    28. </mx:Style>  



    自定义皮肤 参见:http://demojava.iteye.com/blog/1175446 
    自定义DateGird Item ToolTip 
    效果图: 
     
    自定义ToolTip 

    renderers.MenuToolTipRenderer as 实现接口   IMenuItemRenderer, IDataRenderer, IListItemRenderer 

    Xml代码  收藏代码
    1. package renderers  
    2. {  
    3. import flash.events.Event;  
    4. import flash.events.MouseEvent;  
    5. import flash.text.TextFieldAutoSize;  
    6.   
    7. import mx.controls.Alert;  
    8. import mx.controls.LinkButton;  
    9. import mx.controls.Menu;  
    10. import mx.controls.listClasses.IListItemRenderer;  
    11. import mx.controls.menuClasses.IMenuItemRenderer;  
    12. import mx.core.EdgeMetrics;  
    13. import mx.core.IDataRenderer;  
    14. import mx.core.UIComponent;  
    15. import mx.core.UITextField;  
    16. import mx.events.FlexEvent;  
    17.   
    18.   
    19. public class MenuToolTipRenderer extends UIComponent implements IMenuItemRenderer, IDataRenderer, IListItemRenderer  
    20. {  
    21.       
    22.   
    23.     private var textField:UITextField;  
    24.     private var clickText:LinkButton;  
    25.     public function get measuredTypeIconWidth():Number//类型图标(单选/复选)的宽度   
    26.     {  
    27.         return 33;  
    28.     }  
    29.     public function get measuredBranchIconWidth():Number//分支图标的宽度   
    30.     {  
    31.         return 33;  
    32.     }  
    33.     public function get measuredIconWidth():Number//图标的宽度  
    34.     {  
    35.         return 33;  
    36.     }  
    37.   
    38.       
    39.     //-------------------------------------------------------------------------  
    40.       
    41.     public function MenuToolTipRenderer()  
    42.     {  
    43.         super();  
    44.         this.addEventListener(FlexEvent.DATA_CHANGE, renderComponent);  
    45.         this.setStyle("cornerRadius", 5);  
    46.         this.maxWidth = 250;  
    47.   
    48.     }  
    49.       
    50.     //-------------------------------------------------------------------------  
    51.       
    52.     // Internal variable for the property value.  
    53.     private var _menu:Menu;  
    54.   
    55.     public function get menu():Menu  
    56.     {  
    57.         return _menu;  
    58.     }  
    59.   
    60.     public function set menu(value:Menu):void  
    61.     {  
    62.         _menu = value;  
    63.     }  
    64.       
    65.     //-------------------------------------------------------------------------  
    66.       
    67.   
    68.     private var _data:Object;  
    69.       
    70.   
    71.     [Bindable("dataChange")]  
    72.     public function get data():Object {  
    73.     return _data;  
    74.     }  
    75.   
    76.     public function set data(value:Object):void {  
    77.     _data = value;  
    78.       
    79.     dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));  
    80.     }  
    81.       
    82.     //-------------------------------------------------------------------------  
    83.       
    84.     private function get borderMetrics():EdgeMetrics  
    85.     {  
    86.         return EdgeMetrics.EMPTY;  
    87.     }  
    88.       
    89.     //-------------------------------------------------------------------------  
    90.       
    91.     private function renderComponent(event:FlexEvent):void  
    92.     {  
    93.         if(_data != null && _data != "null")  
    94.         {  
    95.             textField.htmlText = data.label;  
    96.             invalidateProperties();  
    97.             invalidateSize();  
    98.             invalidateDisplayList();  
    99.               
    100.         }  
    101.     }  
    102.       
    103.     //-------------------------------------------------------------------------  
    104.       
    105.     private function buttonClick(event:Event):void  
    106.     {  
    107.         mx.controls.Alert.show("button click");  
    108.     }  
    109.       
    110.     //-------------------------------------------------------------------------  
    111.       
    112.     override protected function createChildren():void  
    113.     {  
    114.         super.createChildren();  
    115.   
    116.         // Create the TextField that displays the tooltip text.  
    117.         if (!textField)  
    118.         {  
    119.             textField = new UITextField();  
    120.             textField.autoSize = TextFieldAutoSize.LEFT;  
    121.             textField.mouseEnabled = false;  
    122.             textField.multiline = true;  
    123.             textField.selectable = false;  
    124.             textField.wordWrap = true;  
    125.             textField.styleName = this;  
    126.             addChild(textField);      
    127.         }  
    128.     }  
    129.       
    130.     //-------------------------------------------------------------------------  
    131.       
    132.       
    133.     override protected function measure():void  
    134.     {  
    135.         super.measure();  
    136.   
    137.         var bm:EdgeMetrics = borderMetrics;  
    138.   
    139.         var leftInset:Number = bm.left + getStyle("paddingLeft");  
    140.         var topInset:Number = bm.top + getStyle("paddingTop");  
    141.         var rightInset:Number = bm.right + getStyle("paddingRight");  
    142.         var bottomInset:Number = bm.bottom + getStyle("paddingBottom");  
    143.   
    144.         var widthSlop:Number = leftInset + rightInset;  
    145.         var heightSlop:Number = topInset + bottomInset;  
    146.   
    147.         textField.wordWrap = false;  
    148.   
    149.         if (textField.textWidth + widthSlop > this.maxWidth)  
    150.         {  
    151.             textField.width = this.maxWidth - widthSlop;  
    152.             textField.wordWrap = true;  
    153.         }  
    154.   
    155.         measuredWidth = textField.width + widthSlop;  
    156.         measuredHeight = textField.height + heightSlop;  
    157.           
    158.         thisthis.parent.parent.height = this.parent.height = this.height = measuredHeight + 25;  
    159.         thisthis.parent.parent.width = this.parent.width = this.width = measuredWidth;  
    160.           
    161.         createAdditionalContent(measuredWidth, measuredHeight);  
    162.     }  
    163.       
    164.     private function createAdditionalContent(measuredWidth:Number, measuredHeight:Number):void  
    165.     {  
    166.         clickText = new LinkButton();  
    167.         clickText.label = "More Info";  
    168.         clickText.width = 70;  
    169.         clickText.height = 18;  
    170.         clickText.setStyle("fontSize", 9);  
    171.         clickText.setStyle("color", "blue");  
    172.         clickText.buttonMode = true;  
    173.         clickText.visible = true;  
    174.         clickText.y = measuredHeight;  
    175.         clickText.x = measuredWidth - clickText.width - 8;  
    176.           
    177.         clickText.addEventListener(MouseEvent.CLICK, dispatchClick);  
    178.   
    179.         addChild(clickText);  
    180.     }  
    181.       
    182.     private function dispatchClick(e:Event):void  
    183.     {  
    184.         this.dispatchEvent(new Event("buttonClicked", true))  
    185.     }  
    186. }  
    187. }  



    Application.xml 

    Xml代码  收藏代码
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()"   
    3.             viewSourceURL="srcview/index.html" width="600" height="300">  
    4.   
    5. <mx:DataGrid id="dg" dataProvider="{tmpArray}" width="550"  
    6.              mouseOut="dgMouseOut(event)" mouseOver="dgMouseOver(event)" mouseMove="dgMouseMove(event)">  
    7.     <mx:columns>  
    8.         <mx:Array>  
    9.             <mx:DataGridColumn headerText="Label" dataField="label" showDataTips="true" />  
    10.             <mx:DataGridColumn headerText="Data" dataField="data" />  
    11.         </mx:Array>  
    12.     </mx:columns>  
    13. </mx:DataGrid>  
    14.   
    15. <mx:Style>  
    16.       
    17.     .menuToolTip {  
    18.            backgroundAlpha: 1;  
    19.            backgroundColor: #ffffcc;  
    20.            useRollOver: false;  
    21.            borderStyle: solid;  
    22.            borderThickness: 0;  
    23.            borderColor: #000000;  
    24.            selectionColor: #7fcdfe;  
    25.            dropShadowEnabled: true;  
    26.            cornerRadius: 5;  
    27.            paddingLeft: 3; paddingRight: 3; paddingTop: 3; paddingBottom: 3;  
    28.              
    29.         }  
    30.       
    31. </mx:Style>  
    32.   
    33. <mx:Script>  
    34.     <![CDATA[ 
    35.         import mx.automation.delegates.controls.ListBaseContentHolderAutomationImpl; 
    36.         import mx.controls.listClasses.ListBase; 
    37.         import renderers.MenuToolTipRenderer; 
    38.         import mx.controls.dataGridClasses.DataGridItemRenderer; 
    39.          
    40.         import mx.managers.ToolTipManager; 
    41.         import mx.controls.Menu; 
    42.         import mx.events.MenuEvent; 
    43.         import flash.geom.Point; 
    44.          
    45.         [Bindable] private var dgMouseX:Number = 0; 
    46.         [Bindable] private var dgMouseY:Number = 0; 
    47.          
    48.         private var toolTipMenu:Menu; 
    49.         private var toolTipTimer:Timer; 
    50.          
    51.         [Bindable] 
    52.         public var tmpArray:Array = [{label: '<b>mary</b> had a little lamb', data: 55, link:'http://www.meutzner.com/blog'},  
    53.                                      {label: 'All the kings men, and all the kings horses', data: 56, link:'http://www.meutzner.com/blog'},  
    54.                                      {label: 'baa baa black sheep, have you any wool', data: 57, link:'http://www.meutzner.com/blog'},  
    55.                                      {label: 'jack and jill went up the hill', data: 58, link:'http://www.meutzner.com/blog'},  
    56.                                      {label: 'little miss muffet, sat on a tuffet, eating her curds and whey', data: 59, link:'http://www.meutzner.com/blog'} 
    57.                                     ]; 
    58.          
    59.         //------------------------------------------------------------------------- 
    60.          
    61.         public function init():void 
    62.         { 
    63.             ToolTipManager.enabled = false; 
    64.         } 
    65.          
    66.         //------------------------------------------------------------------------- 
    67.          
    68.         private function createMenu(data:Object):void  
    69.     { 
    70.     toolTipTimer.stop(); 
    71.     var menuData:Array = [{label: data.label, link: data.link}]; 
    72.      
    73.      
    74.      
    75.     toolTipMenu = Menu.createMenu(this, menuData, false); 
    76.     toolTipMenu.labelField="label"; 
    77.     toolTipMenu.width = 250; 
    78.     toolTipMenu.setStyle("fontSize", 10); 
    79.     toolTipMenu.setStyle("themeColor", 0xFF9900); 
    80.     toolTipMenu.itemRenderer = new ClassFactory(renderers.MenuToolTipRenderer); 
    81.     toolTipMenu.data = data; 
    82.     toolTipMenu.selectable = false; 
    83.     toolTipMenu.setStyle("styleName", "menuToolTip"); 
    84.     toolTipMenu.setStyle("openDuration", 0); 
    85.  
    86.     //toolTipMenu.setStyle("selectionEasingFunction", myEasingFunction); 
    87.     toolTipMenu.addEventListener(MouseEvent.ROLL_OUT, hideToolTip); 
    88.     toolTipMenu.addEventListener("buttonClicked", catchButtonClick); 
    89.      
    90.     var pt1:Point = new Point(this.dgMouseX, this.dgMouseY); 
    91.             pt1 = dg.localToGlobal(pt1); 
    92.             //offset this for now to fix slight bug where immediate mouseover of tooltip causes it to hide 
    93.     toolTipMenu.show(pt1.x+10, pt1.y+0); 
    94.      
    95.     } 
    96.      
    97.     //------------------------------------------------------------------------- 
    98.      
    99.     private function hideToolTip(event:MouseEvent):void 
    100.     { 
    101.     //trace("MENU --- " + event.relatedObject + " - " + event.target + " - " + event.currentTarget); 
    102.     toolTipMenu.hide(); 
    103.     } 
    104.      
    105.     //------------------------------------------------------------------------- 
    106.      
    107.     private function dgMouseMove(event:MouseEvent):void 
    108.     { 
    109.     this.dgMouseX = dg.mouseX; 
    110.     this.dgMouseY = dg.mouseY; 
    111.     } 
    112.      
    113.      
    114.     //------------------------------------------------------------------------- 
    115.      
    116.     private function dgMouseOver(event:MouseEvent):void 
    117.     { 
    118.     this.dgMouseX = dg.mouseX; 
    119.     this.dgMouseY = dg.mouseY; 
    120.     //trace("DATAGRID OVER --- " + event.target + " - " + event.currentTarget + " - " + event.relatedObject); 
    121.     if(event.target is DataGridItemRenderer) 
    122.     { 
    123.         if(toolTipMenu != null) 
    124.         { 
    125.             if(toolTipMenu.visible && toolTipMenu.data == event.target.data)  
    126.                 return; 
    127.         } 
    128.         if(!DataGridItemRenderer(event.target).styleName.showDataTips) 
    129.             return; 
    130.              
    131.         toolTipTimer = new Timer(1000, 0); 
    132.         toolTipTimer.addEventListener(TimerEvent.TIMER, function():void  
    133.                                                                  {  
    134.                                                                     createMenu(event.target.data); 
    135.                                                                  }  
    136.                                       ); 
    137.         toolTipTimer.start(); 
    138.     } 
    139.     } 
    140.      
    141.     //------------------------------------------------------------------------- 
    142.      
    143.     private function dgMouseOut(event:MouseEvent):void 
    144.     { 
    145.     if(toolTipTimer) toolTipTimer.stop(); 
    146.     //trace("DATAGRID OUT --- " + event.target + " - " + event.currentTarget + " - " + event.relatedObject); 
    147.     if(event.relatedObject is mx.controls.listClasses.ListBaseContentHolder || event.relatedObject is MenuToolTipRenderer) 
    148.     { 
    149.         return; 
    150.     } 
    151.     if(event.target is DataGridItemRenderer) 
    152.     { 
    153.         if(event.relatedObject is Menu || !event.relatedObject is MenuToolTipRenderer) return; 
    154.         if(toolTipMenu != null) toolTipMenu.hide(); 
    155.         } 
    156.     } 
    157.      
    158.     //------------------------------------------------------------------------- 
    159.      
    160.     private function catchButtonClick(e:Event):void  
    161.         { 
    162.     mx.controls.Alert.show(e.target.data.label + " was clicked to take you to " + e.target.data.link); 
    163.     } 
    164.  
    165.          
    166.     ]]>  
    167. </mx:Script>  
    168.   
    169. </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 
     
    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 
    sdks3.0.0frameworksprojectsframeworksrcmxskinshaloToolTipBorder 
    引入包的路径: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 

    Xml代码  收藏代码
    1. <mx:Script>  
    2.     <![CDATA[ 
    3. import mx.managers.ToolTipManager; 
    4. public var myTip:ToolTip; 
    5. private function showTip(event:MouseEvent,type:String):void 
    6. Tip=ToolTipManager.createToolTip(str,event.stageX,event.stageY) as ToolTip; 
    7. //根据需要动态设置tooltip的style属性 
    8. myTip.move(event.stageX,event.stageY); 
    9. private function hideTip():void 
    10.     { 
    11.         ToolTipManager.destroyToolTip(myTip); 
    12.     } 
    13.     ]]>  
    14. </mx:Script>  


    5. 实现mx.core.IToolTip接口自定义toolTip的外观(可选as实现该接口,mxml实现该接口) 
    现已mxml实现该接口为例(简单), MyPanelToolTip.mxml 

    Xml代码  收藏代码
    1. <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"    
    2.     implements="mx.core.IToolTip"    
    3.     width="212"    
    4.     borderThickness="2"    
    5.    backgroundColor="0xCCCCCC"    
    6.    dropShadowEnabled="true"    
    7.    borderColor="black"    
    8.    roundedBottomCorners="true"  
    9.     height="90">     
    10.    <mx:Script>  
    11.    <![CDATA[   
    12.    //注意 Panel 中的  implements="mx.core.IToolTip"   
    13.    [Bindable]    
    14.    private var _text:String="";   
    15.    public function get text():String {   
    16.    return _text ; 
    17.    }   
    18.    public function set text(value:String):void { 
    19.         this._text=value;   
    20.    }   
    21.    ]]></mx:Script>    
    22.    <mx:Text text="{text}" percentWidth="100"/>    
    23.    </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://blog.csdn.net/xingfeng0501/article/details/7341148

  • 相关阅读:
    SharePoint Framework (SPFx) 开发入门教程
    SharePoint 2013 Designer 入门教程
    SharePoint 2013 开发教程
    SharePoint 2013 入门教程
    SharePoint Online 部署SPFx Web部件
    SharePoint Online SPFx Web部件绑定数据
    SharePoint Online 创建SPFx客户端Web部件
    SharePoint Online 配置框架(SPFx)开发环境
    SharePoint Online 创建应用程序目录
    SharePoint Online 启用 IRM
  • 原文地址:https://www.cnblogs.com/regalys168/p/3895012.html
Copyright © 2011-2022 走看看