- 浏览: 1084728 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
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>
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>
发表评论
-
Flex数据绑定及其使用频繁的几种情况
2011-10-20 03:39 1440http://developer.51cto.com/art/ ... -
揭开Flex正则表达式的神秘面纱
2011-10-20 03:38 1214http://developer.51cto.com/art/ ... -
Flex模块化开发优势及技巧解析
2011-10-20 03:38 1743http://developer.51cto.com/art/ ... -
Flex模块化应用程序开发
2011-10-20 03:38 1160http://developer.51cto.com/art/ ... -
[转]Flex模块化的目的及其步骤
2011-10-20 03:35 1195http://developer.51cto.co ... -
翻译: Flash文本引擎, 第三部分: 布局
2011-10-20 02:36 0http://www.riade ... -
翻译: Flash文本引擎, 第二部分: 交互
2011-10-20 02:34 0http://www.riadev.com/flex-thre ... -
翻译: Flash文本引擎, 第一部分: 概述
2011-10-20 02:33 0http://www.riadev.com/flex-thre ... -
[转]flex操作XML,强力总结帖
2011-08-16 01:10 1043http://qiqishou.iteye.com ... -
[转]用ActionScript 开发高级可视化组件
2011-08-14 04:37 0用ActionScript 开发高级可视化组件 -
[转]AIR2.0 NativeProcess in Flash Builder 4.0
2011-08-07 23:37 1479AIR2.0 NativeProcess in Fla ... -
[转] Actionscript项目嵌入图片(设置九宫格缩放)
2011-07-27 02:04 2352我们知道在Flex项目中,嵌入外部图片,可以使用 [E ... -
[转]NumericStepper添加百分号
2011-07-26 23:32 1130请问 NumericStepper组件中添加百分号 ... -
[新闻资讯] [Flash/Flex] 走自己的路:重写AIR移动应用程序中的BACK按键
2011-06-15 13:44 1239http://bbs.9ria.com/viewthread. ... -
[转]关于Spark List控件和Spark DataGrid控件的提示
2011-06-02 05:23 1433http://bbs.9ria.com/viewthread. ... -
flex 3 能使用openwithDefaultApplication吗
2011-06-02 05:05 0最近用到了 使用air 来开启外部的程序。 我知道flash ... -
[Flex]Flex编程注意之Flex Complier参数
2011-05-19 19:56 1088http://fykyx521.iteye.com/blog/ ... -
Aarry和AarryCollection
2011-05-18 00:06 1220在AS3里面,数组里面可以存储字符串、数字、布尔值、或引用的类 ... -
[Flash/Flex] 给一个TitleWindow添加按钮的方法
2011-05-07 01:38 1685资讯类型: 翻译 来源页面: http://userflex. ... -
[转][Android] Android桌面应用程序-交通灯游戏源码
2011-04-25 02:46 0http://bbs.9ria.com/viewthread. ...
相关推荐
标题中的“flex tooltip”指的是Adobe Flex中的一种交互设计元素,Tooltip。在Flex应用程序开发中,Tooltip是用来显示鼠标悬停在某个组件上时提供额外信息的小型弹出窗口。它可以帮助用户理解控件的功能或者显示一些...
本文将深入探讨“flex ToolTip”的概念、使用方法和常见应用,这在网页和桌面应用的交互设计中起着重要作用。 `ToolTip`是用户界面中的一个关键元素,它提供了一种在鼠标悬停时显示额外信息的方式。在flex中,`...
### 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=...
在IT行业中,"tooltip"是一个常见的交互元素,主要用于在用户将鼠标悬停在特定元素上时显示额外的信息。这个压缩包文件包含了一些关于tooltip实现的基本资源,如样式表(tooltip.css),HTML页面(tooltip.htm),...
jQuery插件:Tooltip详解 在Web开发中,Tooltip是一种常见的交互元素,用于向用户提供额外的信息,通常是当鼠标悬停在某个元素上时显示。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作,事件处理和动画等...
在Windows Presentation Foundation (WPF) 中,Tooltip是一个用于显示与鼠标指针相关的简短提示信息的控件。它通常在用户将鼠标悬停在其他UI元素上时出现,提供额外的信息。在默认情况下,Tooltip的样式是有限的,但...
【标题】中的“c# ToolTip 几十种效果”是指使用C#编程语言实现的ToolTip控件的各种显示效果集合。ToolTip控件是Windows Forms或WPF应用中常见的一种组件,它通常用于在鼠标悬停在某个控件上时显示额外的信息。这个...
在PowerBuilder(PB)环境中,"标准控件"和"数据窗口"是两个核心元素,而"tooltip"则是一种非常实用的功能,可以显示在鼠标悬停时提供额外帮助文本的工具提示。本示例主要探讨如何在SLE(Single Line Edit,单行编辑...
【ToolTip提示脚本文件】 在IT领域,ToolTip是一种常见的用户界面元素,用于向用户提供额外的信息。当鼠标指针悬停在某个元素上时,ToolTip会显示一个包含详细说明的小窗口,帮助用户理解该元素的功能或内容。在...
在VC++编程环境中,Tooltip是一种常见的用户界面组件,它能够在鼠标悬停在某个控件上时,显示简短的信息提示。"vc中tooltip应用"这个主题着重于如何在Visual C++项目中有效地利用Tooltip控件,提升用户体验。下面将...
【Ajax Tooltip】是一种交互式用户界面元素,它利用Ajax(异步JavaScript和XML)技术来动态显示与鼠标指针相关的提示信息。在网页设计中,Tooltip通常用于提供额外的上下文信息,当用户将鼠标悬停在某个元素上时,会...
在Microsoft Foundation Class (MFC)库中,ToolTip控件是一个非常实用的功能,它可以在用户将鼠标悬停在某个控件上时显示简短的帮助文本。`MFC最全ToolTip例子+源文件`这个资源包提供了关于如何在MFC应用程序中使用...
标题“MFC_ToolTip超级类”指的是一个专门扩展了MFC原生`CToolTipCtrl`类的自定义类,以实现更丰富的功能,比如创建不同类型的ToolTip。 `ToolTip`控件通常用来提供关于用户界面上各个控件的额外信息,当鼠标悬停在...
在Windows Forms(WinForm)开发中,Tooltip是一个非常实用的控件,它可以在鼠标悬停在其他控件上时显示相关信息提示。标题“winform比较好的tooltip”表明我们正在讨论如何在WinForm应用中实现一个高质量、用户体验...
在Flex应用中,将`MyToolTip`组件设置为需要显示工具提示的组件的`toolTip`属性。例如,对于一个数据网格(DataGrid),可以在`UsingDataTipInDataGrid.mxml`文件中,遍历每个单元格,根据数据项设置自定义工具提示...
在Windows Forms(Winform)开发中,Tooltip是一个非常常见的组件,用于显示鼠标悬停在控件上时的简短提示信息。默认的Tooltip组件虽然功能简单,但在某些情况下可能无法满足复杂的用户界面需求。因此,自定义...