Flex :直接显示ToolTip和errorTip(不需要将鼠标移到组件上)

摘要:
使用ToolTipManager类的createToolTip方法直接生成用于显示的ToolTip。一个有趣的地方是工具提示的箭头方向。createToolTip的第四个参数是指定箭头。如果它是以下三个字符串值之一,将显示一个箭头:errorTipAbovererrTipRighterrTipBelow是,没有errorTipLeft。对于createToolTip生成的ToolTip,可以使用ToolTip选择器来控制其样式。[Copytoclipboard]ViewCodeCSS12345678.testTip{font-size:12;border color:#ffffdd;color:#ff0000;font-weight:bold;}_ tip.styleName='testTip';createToolTip生成的ToolTip必须用destoryToolTip清除。如果在清除之前再次调用createToolTip,将生成重复的ToolTip。ToolTipManager有一个currentToolTip属性来保存当前显示的ToolTip,但该属性对使用createToolTip创建的ToolTips没有影响。

在使用mx.validator包的时候,我一直都希望检测没有通过的错误信息能够直接显示出来,而不是等我把鼠标移动到没有通过的组件上再显示。我认为这能带给用户更好的体验。因为用户能在第一时间就知道自己到底填错了什么,况且,并不是所有的用户都知道必须把鼠标移动到出错的组件上才能看到错误信息的。很多用户在控件的边框变红,并且不能够继续提交之后不知所措。(我认为,那个红色并不明显,还不至于让用户知道必须把鼠标移动到组件上去,尤其是在页面中的组件相当多的时候……)

 

关键在于ToolTipManager类的使用。使用ToolTipManager类的createToolTip方法可以直接生成一个ToolTip进行显示。语法很简单,只需要指定要显示的文字,x、y值即可。如果坐标值是基于组件的,则需要使用localToGlobal来转换坐标系。
一个有趣的地方是ToolTip的箭头方向。createToolTip的第4个参数是指定箭头。如果为空,就不显示箭头。如果为下面三个字符串值中的一个,则会显示箭头:

  • errorTipAbove
  • errorTipRight
  • errotTipBelow

是的,没有errorTipLeft。

另一个有趣的地方是关于ToolTip的样式。对于createToolTip生成的ToolTip,可以用ToolTip选择符控制它的样式。但是这还取决于createToolTip的第4个参数。如果这个参数有值,那么就必须使用.errorTip这个css类来控制它的样式了。

?[Copy to clipboard]View Code CSS
1
2
3
4
.errorTip
{
	font-size: 12;
}

.errorTip会影响Validator的样式,所以,可以重新定义专有样式,并在生成toolTip的时候赋值给它。

?[Copy to clipboard]View Code CSS
1
2
3
4
5
6
7
8
.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并没有效果。因此还是老老实实的在生成的时候用变量把它保存下来把。

源码:

 

Flex :直接显示ToolTip和errorTip(不需要将鼠标移到组件上)第1张Flex :直接显示ToolTip和errorTip(不需要将鼠标移到组件上)第2张代码
<?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>

免责声明:文章转载自《Flex :直接显示ToolTip和errorTip(不需要将鼠标移到组件上)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Hibernate的查询语言之HQL(一)——快速入门Redis bigkey分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

google代码风格(转)

Google C++ 风格指南 - 中文版 from http://code.google.com/p/google-styleguide/ 版本: 3.133 原作者: Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray 翻译: Yul...

【UE】常用的UltraEdit使用技巧

Tip 1: Alt+C 列模式可以说最初选择使用这个文本编辑软件,原因很简单,就是因为“她”具有列编辑模式。如果您还不知道什么是列编辑模式的话,我想您应该好好研究一下啦。这是一个超级“赞”的功能。在对大文本进行批量的列编辑时候非她莫属(如果您是Windows平台上另外一个强大的文本编辑软件gVim的使用者除外)。快实验一下这个功能吧。Tip 2:Ctrl...

微软新一代输入法框架 TSF

虽说是转载的,但是其中,有很多我自己的评论,我会用红色的字标出来,参考的博文有: TSF架构:http://blog.csdn.net/mspinyin/article/details/6137709 TSF代码实例:http://www.dotblogs.com.tw/code6421/archive/2010/09/27/17909.aspx TSF...

echarts tooltip 按值的降序显示 tip 信息

遇到了一个小改进点。就是echarts 图的tooltip 的内容,希望按照每条线当前的值进行降序显示。 查询 echarts 官方文档,https://www.echartsjs.com/option.html#tooltip 修改tooltip 的formatter 属性即可。 下面贴一下该部分的代码。 option = { toolt...

Pandas:让你像写SQL一样做数据分析

1. 引言 Pandas是一个开源的Python数据分析库。Pandas把结构化数据分为了三类: Series,1维序列,可视作为没有column名的、只有一个column的DataFrame; DataFrame,同Spark SQL中的DataFrame一样,其概念来自于R语言,为多column并schema化的2维结构化数据,可视作为Series...

微信小程序-调用组件内方法(父组件调用子组件)

1、定义子组件 定义一个tip组件,在tip.json中将component设置为true { "component": true, "usingComponents": {} } 在tip.js中设置被调用方法 ... showMyTips(content) { console.log(content) }, ... 2、引入组件 在in...