[转]flex ToolTip专题

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>

你可能感兴趣的:(xml,css,Flex,Flash,actionscript)