六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 148|回复: 0

[转]flex ToolTip专题

[复制链接]

升级  50.4%

234

主题

234

主题

234

主题

进士

Rank: 4

积分
752
 楼主| 发表于 2013-2-7 22:18:06 | 显示全部楼层 |阅读模式
http://nianshi.iteye.com/blog/743808

1 创建ToolTips

    每一个可视化的Flex组件都继承了UIComponent类(它实现了IToolTipManagerClient接口)来支持toolTip属性。这个属性从UIComponent类继承而来。你设置了toolTip的属性为一个文本内容,当鼠标移动到该组件上方的时候,这些文字信息就会被显示。
    你也可以在ActionScript中来设置toolTip.
    假如你没有在一个容器中定义ToolTip, 则容器的子组件将显示容器的ToolTip。举个例子,比如你添加了一个button到一个Panel容器中,而这个容器包含了一个ToolTip,当鼠标移动到这个Panel时用户将看到这个Panel 容器的ToolTip内容。当用户移动鼠标指针到这个button控件时候,Panel容器的ToolTip将继续显示。当然你可以通过设置button 的ToolTip的属性值来重写容器Panel的ToolTip 内容。
TabNavigator容器却在它的子(children)上使用ToolTip。假如你添加ToolTip到TabNavigator的一个子版面中,当鼠标移动到那个版面的tab的上方的时候,ToolTip将被显示出来,而不是鼠标移动到那个版面本身上的时候显示ToolTip信息。假如你添加了ToolTip到TabNavigator容器中,除非ToolTip在那个版面被重写否则不可能当鼠标移动到tab或者版面上都显示 ToolTip信息。同样在以下的控件中也是类似的效果。
Accordion
ButtonBar
LinkBar
TabBar
ToggleButtonBar

2 设置ToolTip风格


    你可以通过CSS语法或者mx.style.StyleManager类来改变ToolTip的内容和外框(Box)的显示风格。默认的风格设置定义在framework.swc文件中的default.css的文件中。
Java代码

   1. <mx:Style>  
   2. ToolTip {  
   3. fontFamily: "Arial";  
   4. fontSize: 19;  
   5. fontStyle: "italic";  
   6. color: #FF6699;  
   7. backgroundColor: #33CC99;  
   8. }  
   9. </mx:Style>  

<mx:Style>
ToolTip {
fontFamily: "Arial";
fontSize: 19;
fontStyle: "italic";
color: #FF6699;
backgroundColor: #33CC99;
}
</mx:Style>



要使用StyleManager类来设置ToolTip风格,要使用setStyle()这个函数,比如:
Java代码

   1. private function setToolTipStyle():void {  
   2. StyleManager.getStyleDeclaration("ToolTip").setStyle("fontStyle","italic");  
   3. StyleManager.getStyleDeclaration("ToolTip").setStyle("fontSize","19");  
   4. StyleManager.getStyleDeclaration("ToolTip").setStyle("fontFamily","Arial");  
   5. StyleManager.getStyleDeclaration("ToolTip").setStyle("color","#FF6699");  
   6. StyleManager.getStyleDeclaration("ToolTip").setStyle("backgroundColor","#33CC99");  
   7. }  

private function setToolTipStyle():void {
StyleManager.getStyleDeclaration("ToolTip").setStyle("fontStyle","italic");
StyleManager.getStyleDeclaration("ToolTip").setStyle("fontSize","19");
StyleManager.getStyleDeclaration("ToolTip").setStyle("fontFamily","Arial");
StyleManager.getStyleDeclaration("ToolTip").setStyle("color","#FF6699");
StyleManager.getStyleDeclaration("ToolTip").setStyle("backgroundColor","#33CC99");
}



ToolTip使用可继承的全局的styles。比如你通过StyleManager在全局的选择器上(global selector)设置了ToolTip的fontWeight属性:
Java代码

   1. private function setToolTipStyle():void {  
   2. StyleManager.getStyleDeclaration("global").setStyle("fontWeight","bold");  
   3. }  

private function setToolTipStyle():void {
StyleManager.getStyleDeclaration("global").setStyle("fontWeight","bold");
}



3 ToolTip事件的使用


在ToolTip的生命周期中会触发很多事件,这些事件都是ToolTipEvent类型的。

除了type和target两个属性外,ToolTipEvent对象涉及到了toolTip属性。利用这个属性,就可以通过text属性拿到ToolTip里面的文本内容值。

Java代码

   1. <?xml version="1.0"?>  
   2.   
   3. <!-- tooltips/ToolTipsWithSoundEffects.mxml -->  
   4.   
   5. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()">  
   6. <mx:Script>  
   7. <![CDATA[  
   8.    import mx.events.ToolTipEvent;  
   9.    import flash.media.Sound;  
  10.    [Embed(source="../assets/sound1.mp3")]  
  11.     private var beepSound:Class;  
  12.     private var myClip:Sound;  
  13.     public function playSound():void {  
  14.       myClip.play();  
  15.    }  
  16.      
  17.    private function myListener(event:ToolTipEvent):void {  
  18.      playSound();  
  19.    }  
  20.     private function init():void {  
  21.        myLabel.addEventListener(ToolTipEvent.TOOL_TIP_SHOW,   
  22.        myListener);  
  23.        myClip = new beepSound();  
  24.     }  
  25. ]]>  
  26. </mx:Script>  
  27.     <mx:Label id="myLabel" toolTip="ToolTip" text="Mouse Over Me"/>  
  28. </mx:Application>  

<?xml version="1.0"?>

<!-- tooltips/ToolTipsWithSoundEffects.mxml -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()">
<mx:Script>
<![CDATA[
   import mx.events.ToolTipEvent;
   import flash.media.Sound;
   [Embed(source="../assets/sound1.mp3")]
    private var beepSound:Class;
    private var myClip:Sound;
    public function playSound():void {
      myClip.play();
   }
   
   private function myListener(event:ToolTipEvent):void {
     playSound();
   }
    private function init():void {
       myLabel.addEventListener(ToolTipEvent.TOOL_TIP_SHOW,
       myListener);
       myClip = new beepSound();
    }
]]>
</mx:Script>
    <mx:Label id="myLabel" toolTip="ToolTip" text="Mouse Over Me"/>
</mx:Application>





4 使用ToolTip 管理器


使用ToolTipManager管理器类能够让你设置基本的ToolTip功能。比如显示延迟,以及控制是否显示ToolTip信息内容。
你可以在程序中激活和停止使用ToolTips. 可以使用enabled这个属性来激活或者停止使用ToolTips,如果停止使用,在鼠标移到到组件上方的时候就不会用ToolTips的框显示出来,不管那个组件是否设置了toolTip这个属性值。
Java代码

   1. if (ToolTipManager.enabled) {  
   2.     ToolTipManager.enabled = false;  
   3. } else {  
   4.     ToolTipManager.enabled = true;  
   5. }  

if (ToolTipManager.enabled) {
    ToolTipManager.enabled = false;
} else {
    ToolTipManager.enabled = true;
}



延迟时间是来来衡量某一时间发生前所消耗的时间。比如,在用户移动鼠标指针到组件的上方,在ToolTip显示之前有一个简短的延迟。这就给那些不想看到ToolTip内容的用户足够的时间,在看到ToolTip信息之前把鼠标移开。

ToolTipManager 可以允许你设置这个ToolTip显示延迟的时间的长度,以及ToolTip在屏幕上显示的事件长度。你还可以设置ToolTips之间的延迟时间。

你可以在ActionScript的代码块中设置ToolTipManager的这些属性值:showDealy,hideDelay和 scrubDelay。具体的功能描述请参考官方的develop guide。以下是一个例子利用Application k控制的初始化方法来设置ToolTip的初始值。

Java代码

   1. private function initApp():void {  
   2. ToolTipManager.enabled = true;// Optional. Default value is true.  
   3. ToolTipManager.showDelay = 0;// Display immediately.  
   4. ToolTipManager.hideDelay = 3000; // Hide after 3 seconds of being viewed.  
   5. }  

private function initApp():void {
ToolTipManager.enabled = true;// Optional. Default value is true.
ToolTipManager.showDelay = 0;// Display immediately.
ToolTipManager.hideDelay = 3000; // Hide after 3 seconds of being viewed.
}



你可以使用自定义的视觉效果或者标准的Flex效果。你可以设置ToolTipManager的showEffect或者hideEffect属性值来定义当ToolTip显示或者隐藏是所触发的效果。

以下就是使用退出(Fade)的效果:
Java代码

   1. <?xml version="1.0"?>  
   2. <!-- tooltips/FadeInToolTips.mxml -->  
   3.   
   4.   
   5. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="600" height="600"  
   6. initialize="app_init();">  
   7. <mx:Script><![CDATA[  
   8. import mx.managers.ToolTipManager;  
   9. public function app_init():void {  
  10. ToolTipManager.showEffect = fadeIn;  
  11. }  
  12. ]]></mx:Script>  
  13. <mx:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="1000"/>  
  14. <mx:Button id="b1" label="Click Me" toolTip="This is a ToolTip that fades in."/>  
  15. </mx:Application>  

<?xml version="1.0"?>
<!-- tooltips/FadeInToolTips.mxml -->


<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="600" height="600"
initialize="app_init();">
<mx:Script><![CDATA[
import mx.managers.ToolTipManager;
public function app_init():void {
ToolTipManager.showEffect = fadeIn;
}
]]></mx:Script>
<mx:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="1000"/>
<mx:Button id="b1" label="Click Me" toolTip="This is a ToolTip that fades in."/>
</mx:Application>



你不仅可是使用ToolTips静态的显示文本信息的功能,还可以使用ToolTips动态的绑定组件中的内容来动态显示ToolTips信息。这样可以让你ToolTips成为用户界面的一部分。给用户给多的个性化的体验。

你可以使用{}绑定ToolTips的值到另外一个组件的文本内容。以下的例子就是插入TextInput控件的文本值到按钮控件的ToolTips值。

Java代码

   1. <?xml version="1.0"?>  
   2. <!-- tooltips/BoundToolTipText.mxml -->  
   3.   
   4. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">  
   5. <mx:TextInput id="txtTo" width="300"/>  
   6. <mx:Button label="Send" toolTip="Send e-mail to {txtTo.text}"/>  
   7. </mx:Application>  

<?xml version="1.0"?>
<!-- tooltips/BoundToolTipText.mxml -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:TextInput id="txtTo" width="300"/>
<mx:Button label="Send" toolTip="Send e-mail to {txtTo.text}"/>
</mx:Application>



另外一个方法就是获取ToolTips的toolTipShow事件处理来改变text属性值。以下就是一个通过 myToolTipChanger方法来监听按钮控件的toolTipShow事件,然后在这个方法内修改了 ToolTipManager.currentToolTip.text属性。这个属性值在运行前是未知的。

Java代码

   1. <?xml version="1.0"?>  
   2.   
   3. <!-- tooltips/DynamicToolTipText.mxml -->  
   4.   
   5. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initApp()">  
   6.   
   7. <mx:Script><![CDATA[  
   8. import mx.managers.ToolTipManager;  
   9. import mx.controls.ToolTip;  
  10. import mx.events.ToolTipEvent;  
  11. public function initApp():void {  
  12. b1.addEventListener(ToolTipEvent.TOOL_TIP_SHOW, myToolTipChanger)  
  13. }  
  14. public function myToolTipChanger(event:ToolTipEvent):void {  
  15. // Pass the value of myName in to your application in some way.  
  16. // For example, as a flashVar variable.  
  17. ToolTipManager.currentToolTip.text = "Click the button, " +  
  18. Application.application.parameters.myName;  
  19. }  
  20. ]]>   
  21. </mx:Script>  
  22.   
  23. <mx:Button id="b1" label="Click Me" toolTip="Click the button."/>  
  24. </mx:Application>  

<?xml version="1.0"?>

<!-- tooltips/DynamicToolTipText.mxml -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initApp()">

<mx:Script><![CDATA[
import mx.managers.ToolTipManager;
import mx.controls.ToolTip;
import mx.events.ToolTipEvent;
public function initApp():void {
b1.addEventListener(ToolTipEvent.TOOL_TIP_SHOW, myToolTipChanger)
}
public function myToolTipChanger(event:ToolTipEvent):void {
// Pass the value of myName in to your application in some way.
// For example, as a flashVar variable.
ToolTipManager.currentToolTip.text = "Click the button, " +
Application.application.parameters.myName;
}
]]>
</mx:Script>

<mx:Button id="b1" label="Click Me" toolTip="Click the button."/>
</mx:Application>



ToolTipmanger 有两个方法可以让你自定义ToolTips。这两个方法是createToolTip()和destoryToolTip()。即用来创建和销毁 ToolTips对象。当你创建一个ToolTip对象,你可以自定义它的显示效果,类型,事件等。
createToolTip()方法有以下的一些参数:

Java代码

   1. createToolTip(text:String, x:Number, y:Number, errorTipBorderStyle:String, context:IUIComponent):IToolTip  

createToolTip(text:String, x:Number, y:Number, errorTipBorderStyle:String, context:IUIComponent):IToolTip



你可以使用destroyTollTip()方法来销毁之前指定的ToolTip对象。该方法:
Java代码

   1. destroyToolTip(toolTip:IToolTip):void   

destroyToolTip(toolTip:IToolTip):void



Java代码

   1. <?xml version="1.0"?>  
   2.   
   3. <!-- tooltips/CreatingToolTips.mxml -->  
   4. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">  
   5. <mx:Script><![CDATA[  
   6.   
   7. import mx.managers.ToolTipManager;  
   8. import mx.controls.ToolTip;  
   9. public var myTip:ToolTip;  
  10.   
  11. private function createBigTip():void {  
  12. var s:String = "These buttons let you save, exit, or continue with the current  
  13. operation."  
  14. myTip = ToolTipManager.createToolTip(s,10,10) as ToolTip;  
  15. myTip.setStyle("backgroundColor",0xFFCC00);  
  16. myTip.width = 150;  
  17. myTip.height = 200;  
  18. }  
  19.   
  20. private function destroyBigTip():void {  
  21. ToolTipManager.destroyToolTip(myTip);  
  22. }  
  23. ]]></mx:Script>  
  24. <mx:Style>  
  25. Panel {  
  26. paddingLeft: 5;  
  27. paddingRight: 5;  
  28. paddingTop: 5;  
  29. paddingBottom: 5;  
  30. }  
  31. </mx:Style>  
  32. <mx:Panel title="ToolTips" rollOver="createBigTip()" rollOut="destroyBigTip()">  
  33. <mx:Button label="OK" toolTip="Save your changes and exit."/>  
  34. <mx:Button label="Apply" toolTip="Apply changes and continue."/>  
  35. <mx:Button label="Cancel" toolTip="Cancel and exit."/>  
  36. </mx:Panel>  
  37. </mx:Application>  

<?xml version="1.0"?>

<!-- tooltips/CreatingToolTips.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script><![CDATA[

import mx.managers.ToolTipManager;
import mx.controls.ToolTip;
public var myTip:ToolTip;

private function createBigTip():void {
var s:String = "These buttons let you save, exit, or continue with the current
operation."
myTip = ToolTipManager.createToolTip(s,10,10) as ToolTip;
myTip.setStyle("backgroundColor",0xFFCC00);
myTip.width = 150;
myTip.height = 200;
}

private function destroyBigTip():void {
ToolTipManager.destroyToolTip(myTip);
}
]]></mx:Script>
<mx:Style>
Panel {
paddingLeft: 5;
paddingRight: 5;
paddingTop: 5;
paddingBottom: 5;
}
</mx:Style>
<mx:Panel title="ToolTips" rollOver="createBigTip()" rollOut="destroyBigTip()">
<mx:Button label="OK" toolTip="Save your changes and exit."/>
<mx:Button label="Apply" toolTip="Apply changes and continue."/>
<mx:Button label="Cancel" toolTip="Cancel and exit."/>
</mx:Panel>
</mx:Application>




当然你也可以通过扩展已存在的控件并且实现IToolTip接口来实现自定义的ToolTip,比如Panel 或者VBox容器等。

Java代码

   1. <?xml version="1.0"?>  
   2.   
   3. <!-- tooltips/ToolTipComponents/PanelToolTip.mxml -->  
   4.   
   5. <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"  
   6. implements="mx.core.IToolTip"  
   7. width="200"  
   8. alpha=".8"  
   9. borderThickness="2"  
  10. backgroundColor="0xCCCCCC"  
  11. dropShadowEnabled="true"  
  12. borderColor="black"  
  13. borderStyle="solid"  
  14. title="feh"  
  15. >   
  16.   
  17. <mx:Script><![CDATA[  
  18. [Bindable]  
  19. public var bodyText:String = "";  
  20. // Implement required methods of the IToolTip interface; these  
  21.   
  22. // methods are not used in this example, though.  
  23. public var _text:String;  
  24. public function get text():String {  
  25. return _text  
  26. }  
  27. public function set text(value:String):void {  
  28. }  
  29. ]]></mx:Script>  
  30. <mx:Text text="{bodyText}" percentWidth="100"/>  
  31. </mx:Panel>  

<?xml version="1.0"?>

<!-- tooltips/ToolTipComponents/PanelToolTip.mxml -->

<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"
implements="mx.core.IToolTip"
width="200"
alpha=".8"
borderThickness="2"
backgroundColor="0xCCCCCC"
dropShadowEnabled="true"
borderColor="black"
borderStyle="solid"
title="feh"
>

<mx:Script><![CDATA[
[Bindable]
public var bodyText:String = "";
// Implement required methods of the IToolTip interface; these

// methods are not used in this example, though.
public var _text:String;
public function get text():String {
return _text
}
public function set text(value:String):void {
}
]]></mx:Script>
<mx:Text text="{bodyText}" percentWidth="100"/>
</mx:Panel>




5 使用Error Tips


Error tips是ToolTip类的一个实例。它可以从errorTip类选择器来获得styles. 他们经常出现在Flex的验证机制中用来显示警告信息。但是你也可以利用errorTip的style定义来创建自己的验证警告机制。

Error tips的风格定义在default.css这个文件中。它指定了以下默认的设置:

Java代码

   1. .errorTip { color: #FFFFFF;  
   2.   fontSize: 9;  
   3.   fontWeight: "bold";  
   4.   shadowColor: #000000;  
   5.   borderColor: #CE2929;   
   6.   borderStyle: "errorTipRight";  
   7.   paddingBottom: 4;  
   8.   paddingLeft: 4;  
   9.   paddingRight: 4;  
  10.   paddingTop: 4;   
  11. }  

.errorTip { color: #FFFFFF;
  fontSize: 9;
  fontWeight: "bold";
  shadowColor: #000000;
  borderColor: #CE2929;
  borderStyle: "errorTipRight";
  paddingBottom: 4;
  paddingLeft: 4;
  paddingRight: 4;
  paddingTop: 4;
}



你可以重写这些sytle来建立自己的定义的error tips显示风格。
Java代码

   1. <?xml version="1.0"?>  
   2.   
   3. <!-- tooltips/ErrorTipStyle.mxml -->  
   4.   
   5. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="20">  
   6.   
   7. <mx:Script><![CDATA[  
   8.   
   9. import mx.controls.ToolTip;  
  10. import mx.managers.ToolTipManager;  
  11.   
  12. private var errorTip:ToolTip;  
  13. private var myError:String;  
  14.   
  15. private function validateEntry(type:String, event:Object):void {  
  16. if (errorTip) {  
  17. resetApp();  
  18. }  
  19.   
  20. // NOTE: Validation logic would go here.  
  21.   
  22. switch(type) {  
  23. case "ssn":  
  24. myError="Use SSN format (NNN-NN-NNNN)";  
  25. break;  
  26. case "phone":  
  27. myError="Use phone format (NNN-NNN-NNNN)";  
  28. break;  
  29. }  
  30.   
  31. // Use the target's x and y positions to set position of error tip.  
  32. trace("event.currentTarget.width" + event.currentTarget.width);  
  33. trace("event.currentTarget.x" + event.currentTarget.x);  
  34. errorTip = ToolTipManager.createToolTip(  
  35. myError, event.currentTarget.x + event.currentTarget.width,  
  36. event.currentTarget.y) as ToolTip;  
  37. // Apply the errorTip class selector.  
  38. errorTip.setStyle("styleName", "errorTip");  
  39. }  
  40.   
  41. private function resetApp():void {  
  42. if (errorTip) {  
  43. ToolTipManager.destroyToolTip(errorTip);  
  44. errorTip = null;  
  45. }  
  46.   
  47. }  
  48. ]]></mx:Script>  
  49.   
  50. <mx:TextInput id="ssn" enter="validateEntry('ssn',event)"/>  
  51. <mx:TextInput id="phone" enter="validateEntry('phone',event)"/>  
  52. <mx:Label text="Press the enter key after entering text in each text input."/>  
  53.   
  54. <mx:Button id="b1" label="Reset" click="resetApp()"/>  
  55. </mx:Application>  

<?xml version="1.0"?>

<!-- tooltips/ErrorTipStyle.mxml -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="20">

<mx:Script><![CDATA[

import mx.controls.ToolTip;
import mx.managers.ToolTipManager;

private var errorTip:ToolTip;
private var myError:String;

private function validateEntry(type:String, event:Object):void {
if (errorTip) {
resetApp();
}

// NOTE: Validation logic would go here.

switch(type) {
case "ssn":
myError="Use SSN format (NNN-NN-NNNN)";
break;
case "phone":
myError="Use phone format (NNN-NNN-NNNN)";
break;
}

// Use the target's x and y positions to set position of error tip.
trace("event.currentTarget.width" + event.currentTarget.width);
trace("event.currentTarget.x" + event.currentTarget.x);
errorTip = ToolTipManager.createToolTip(
myError, event.currentTarget.x + event.currentTarget.width,
event.currentTarget.y) as ToolTip;
// Apply the errorTip class selector.
errorTip.setStyle("styleName", "errorTip");
}

private function resetApp():void {
if (errorTip) {
ToolTipManager.destroyToolTip(errorTip);
errorTip = null;
}

}
]]></mx:Script>

<mx:TextInput id="ssn" enter="validateEntry('ssn',event)"/>
<mx:TextInput id="phone" enter="validateEntry('phone',event)"/>
<mx:Label text="Press the enter key after entering text in each text input."/>

<mx:Button id="b1" label="Reset" click="resetApp()"/>
</mx:Application>



另外一种使用error tips的方法就是设置errorString属性。它会调用ToolTipManager创建一个ToolTip实例并且吧errorTip的风格运用到那个ToolTip中而不需要添加额外的代码。

Java代码

   1. <?xml version="1.0"?>  
   2.   
   3. <!-- tooltips/ErrorString.mxml -->  
   4.   
   5. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="20">  
   6.   
   7. <mx:Script>  
   8. <![CDATA[  
   9. import mx.controls.ToolTip;  
  10. import mx.managers.ToolTipManager;  
  11.   
  12. private var errorTip:ToolTip;  
  13. private var myError:String;  
  14.   
  15. private function validateEntry(type:String, event:Object):void {  
  16. // NOTE: Validation logic would go here.  
  17. switch(type) {  
  18. case "ssn":  
  19. myError="Use SSN format";  
  20. break;  
  21. case "phone":  
  22. myError="Use phone format";  
  23. break;  
  24. }  
  25. event.currentTarget.errorString = myError;  
  26. }  
  27. ]]>  
  28. </mx:Script>  
  29.   
  30. <mx:TextInput id="ssn" enter="validateEntry('ssn',event)"/>  
  31. <mx:TextInput id="phone" enter="validateEntry('phone',event)"/>  
  32.   
  33. </mx:Application>  

<?xml version="1.0"?>

<!-- tooltips/ErrorString.mxml -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="20">

<mx:Script>
<![CDATA[
import mx.controls.ToolTip;
import mx.managers.ToolTipManager;

private var errorTip:ToolTip;
private var myError:String;

private function validateEntry(type:String, event:Object):void {
// NOTE: Validation logic would go here.
switch(type) {
case "ssn":
myError="Use SSN format";
break;
case "phone":
myError="Use phone format";
break;
}
event.currentTarget.errorString = myError;
}
]]>
</mx:Script>

<mx:TextInput id="ssn" enter="validateEntry('ssn',event)"/>
<mx:TextInput id="phone" enter="validateEntry('phone',event)"/>

</mx:Application>




当调用createToolTip()方法时你还可以通过指定errorTipBorderStyle的属性值来制定ToolTipManger所创建的error tip。

Java代码

   1. <?xml version="1.0"?>  
   2. <!-- tooltips/CreatingErrorTips.mxml -->  
   3. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">  
   4.   
   5. <mx:Script>  
   6. <![CDATA[  
   7. import mx.managers.ToolTipManager;  
   8. import mx.controls.ToolTip;  
   9.   
  10. public var myTip:ToolTip;  
  11.   
  12. private function createBigTip(event:Event):void {  
  13. var myError:String = "These buttons let you save, exit, or continue with the currentoperation.";  
  14. // By setting the fourth argument to a non-null value,  
  15. // this ToolTip is created as an error tip.  
  16.   
  17. myTip = ToolTipManager.createToolTip(  
  18. myError,  
  19. event.currentTarget.x + event.currentTarget.width,  
  20. event.currentTarget.y,  
  21. "errorTipRight"  
  22. ) as ToolTip;  
  23. }  
  24.   
  25. private function destroyBigTip():void {  
  26. ToolTipManager.destroyToolTip(myTip);  
  27. }  
  28. ]]>  
  29. </mx:Script>  
  30.   
  31. <mx:Style>  
  32. Panel {  
  33. paddingLeft: 5;  
  34. paddingRight: 5;  
  35. paddingTop: 5;  
  36. paddingBottom: 5;  
  37. }  
  38. </mx:Style>  
  39.   
  40. <mx:Panel title="ToolTips" rollOver="createBigTip(event)" rollOut="destroyBigTip()">  
  41.   
  42. <mx:Button label="OK" toolTip="Save your changes and exit."/>  
  43. <mx:Button label="Apply" toolTip="Apply changes and continue."/>  
  44. <mx:Button label="Cancel" toolTip="Cancel and exit."/>  
  45.   
  46. </mx:Panel>  
  47. </mx:Application>  

<?xml version="1.0"?>
<!-- tooltips/CreatingErrorTips.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

<mx:Script>
<![CDATA[
import mx.managers.ToolTipManager;
import mx.controls.ToolTip;

public var myTip:ToolTip;

private function createBigTip(event:Event):void {
var myError:String = "These buttons let you save, exit, or continue with the currentoperation.";
// By setting the fourth argument to a non-null value,
// this ToolTip is created as an error tip.

myTip = ToolTipManager.createToolTip(
myError,
event.currentTarget.x + event.currentTarget.width,
event.currentTarget.y,
"errorTipRight"
) as ToolTip;
}

private function destroyBigTip():void {
ToolTipManager.destroyToolTip(myTip);
}
]]>
</mx:Script>

<mx:Style>
Panel {
paddingLeft: 5;
paddingRight: 5;
paddingTop: 5;
paddingBottom: 5;
}
</mx:Style>

<mx:Panel title="ToolTips" rollOver="createBigTip(event)" rollOut="destroyBigTip()">

<mx:Button label="OK" toolTip="Save your changes and exit."/>
<mx:Button label="Apply" toolTip="Apply changes and continue."/>
<mx:Button label="Cancel" toolTip="Cancel and exit."/>

</mx:Panel>
</mx:Application>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表