直接显示ToolTip和errorTip

本文介绍如何在Flex应用中直接显示ToolTip和errorTip,以改善用户体验。通过使用ToolTipManager类的createToolTip方法,可在不需鼠标悬停的情况下展示错误提示,提升表单验证的即时反馈性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接显示ToolTip和errorTip(不需要将鼠标移到组件上)
Flex/Flash, Flex3 GgNET 06月 20th. 2008, 12:16am
在使用mx.validator包 的时候,我一直都希望检测没有通过的错误信息能够直接显示出来,而不是等我把鼠标移动到没有通过的组件上再显示。我认为这能带给用户更好的体验。因为用户 能在第一时间就知道自己到底填错了什么,况且,并不是所有的用户都知道必须把鼠标移动到出错的组件上才能看到错误信息的。很多用户在控件的边框变红,并且 不能够继续提交之后不知所措。(我认为,那个红色并不明显,还不至于让用户知道必须把鼠标移动到组件上去,尤其是在页面中的组件相当多的时候……)
今天翻看Flex 3的帮助,找到了解决的办法。先看范例:
关键在于ToolTipManager类的使用。使用ToolTipManager类的createToolTip方法可以直接生成一个 ToolTip进行显示。语法很简单,只需要指定要显示的文字,x、y值即可。如果坐标值是基于组件的,则需要使用localToGlobal来转换坐标 系。
一个有趣的地方是ToolTip的箭头方向。createToolTip的第4个参数是指定箭头。如果为空,就不显示箭头。如果为下面三个字符串值中的一个,则会显示箭头:
errorTipAbove
errorTipRight
errotTipBelow
是的,没有errorTipLeft。
另一个有趣的地方是关于ToolTip的样式。对于createToolTip生成的ToolTip,可以用ToolTip选择符控制它的样式。但 是这还取决于createToolTip的第4个参数。如果这个参数有值,那么就必须使用.errorTip这个css类来控制它的样式了。
.errorTip
{
font-size: 12;
}
.errorTip会影响Validator的样式,所以,可以重新定义专有样式,并在生成toolTip的时候赋值给它。
.testTip
{
font-size: 12;
border-color: #ffffdd;
color: #ff0000;
font-weight: bold;
}
_tip.styleName = ‘testTip‘;
createToolTip生成的ToolTip,必须用destoryToolTip来清除。如果在清楚之前再次调用 createToolTip,则会生成重复的ToolTip。ToolTipManager有一个currentToolTip属性来保存当前显示的 ToolTip,但这个属性对于使用createToolTip创建的ToolTip并没有效果。因此还是老老实实的在生成的时候用变量把它保存下来把。
源码:
<?xml version=“1.0“ encoding=“utf-8“?>
<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml“ layout=“vertical“ width=“400“ height=“150“ horizontalAlign=“center“ verticalAlign=“middle“>
<mx:Style>
global
{
font-size: 12;
theme-color: haloSilver;
}
Application
{
background-color: #dddddd;
}
.errorTip
{
font-size: 12;
}
.testTip
{
font-size: 12;
border-color: #ffffdd;
color: #ff0000;
font-weight: bold;
}
</mx:Style>
<mx:Script>
<![CDATA[
import mx.managers.ToolTipManager;
import mx.controls.ToolTip;

private var _tip:ToolTip;

private function _showTip($txt:String):void
{
trace(_tip);
if(_tip == null)
{
var __point:Point = new Point(emailTI.x, emailTI.y);
trace(__point)
__point = emailTI.localToGlobal(__point);
trace(__point);
_tip = ToolTipManager.createToolTip(    $txt,
__point.x - emailTI.x,
__point.y - 40 ,
'errorTipAbove') as ToolTip;
_tip.styleName = 'testTip';
}
}

private function _destoryTip():void
{
if(_tip)
{
ToolTipManager.destroyToolTip(_tip);
}
_tip = null;
}
]]>
</mx:Script>
<mx:EmailValidator id=“emailV“ source=“{emailTI}“ property=“text“ trigger=“{btn}“ triggerEvent=“click“/>
<mx:Form horizontalCenter=“0“>
<mx:FormItem label=“电子邮件:“ width=“100%“>
<mx:TextInput id=’emailTI‘ width=“100%“/>
</mx:FormItem>
<mx:FormItem horizontalAlign=“center“ width=“100%“ direction=“horizontal“>
<mx:Button id=“btn“ label=“提交“/>
<mx:Button id=’btn2‘ label=“显示Tip“ click=“_showTip(’测试弹出Tip’)“/>
<mx:Button id=’btn3‘ label=“取消Tip“ click=“_destoryTip()“/>
</mx:FormItem>
</mx:Form>
</mx:Application>
本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/1993
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值