`

Flex中定制带图标的Tooltip

阅读更多

“定制”无疑是TWaver中最大的一特色,无论是node,link,attachment,就连tooltip也同样可以定制,“定制”可以显示出更强更复杂的一些功能,今天给大家带来了一个定制Tooltip的例子。
啥也不多说,先看看效果:



下面我们来细细分析一下这个功能的实现。tooltip的特点是当鼠标滑过时显示,滑出时不显示。因此我们可以定义一个tooltip组件,监听network的mouse move事件,如果鼠标下有网元,就显示tooltip组件并动态计算tooltip的位置,没有就隐藏tooltip组件。

 

this.network.addEventListener(MouseEvent.MOUSE_MOVE, function(e:MouseEvent):void
updateToolTip(e);
});

private function updateToolTip(e:MouseEvent):void {
	var element:IElement = network.getElementByMouseEvent(e, true, 5);
	if(lastElement == element){
		return;
	}
	lastElement = element;
	if(element is Link){
		var point:Point = network.getLogicalPoint(e);
		customTooltip.x = point.x - customTooltip.measuredWidth / 2;
		customTooltip.y = point.y - customTooltip.measuredHeight - 10;
		customTooltip.setText(element.getClient('message'));
		customTooltip.visible = true;
	}else{
		customTooltip.visible = false;
	}
}

 

我们来详细了解一下如何来实现tooltip组件,首先定义一个tooltip类,继承于canvas。这样就可以将tooltip直接加到network.topCanvas上。

 

public class CustomToolTip extends Canvas {}

 

tooltip组件上不需要交互动作和滚动条,因此可以将这些屏蔽:

 

public function CustomToolTip() {
	this.mouseEnabled = false;
	this.mouseChildren = false;
	this.horizontalScrollPolicy = ScrollPolicy.OFF;
	this.verticalScrollPolicy = ScrollPolicy.OFF;
	this.init();
}

 

重点是tooltip的绘制问题,我们需要将图标和文字加到tooltip组件上,并且在添加图标和文字时,需要计算一下位置

 

var messageImage:Image = new Image();
messageImage.source =  new messageIcon();
messageImage.x = _hmargin;
messageImage.y = _vmargin;
this.addChild(messageImage);

_message = new Label();
_message.x = _hmargin + _iconWidth + _hgap;
_message.y = _vmargin;
this.addChild(_message);

 

然后我们需要绘制一个如tooltip形状的图形。先来分析一个,tooltip就是一个矩形框,为了好看一点可以搞个圆角矩形,矩形下方有一个小三角的图形。接下来就可以通过画笔将这些图形绘制出来

 

//获取画笔
var g:Graphics = this.graphics;
//设置画笔的线宽为1
var lineWidth:Number = 1;
//设置画笔的样式
g.lineStyle(lineWidth, 0, 0.5, true, "normal", CapsStyle.ROUND, JointStyle.ROUND);
//设置填充色
Utils.beginFill(g, 0xFFFFFF, 1, 0, 0, _width, _height, Consts.GRADIENT_LINEAR_EAST, 0xCCCCCC, 1);
//绘制圆角矩形
g.drawRoundRect(lineWidth, lineWidth, _width - lineWidth * 2, _height - lineWidth * 2 - _arrowHeight, 10, 10);
//绘制矩形下的小三角
g.moveTo(_arrowStart, _height - lineWidth - _arrowHeight);
g.lineTo(_arrowStart, _height);
g.lineTo(_arrowStart + _arrowWidth, _height - lineWidth - _arrowHeight);
g.endFill();
//绘制小三角和矩形的连接线的颜色
g.lineStyle(1, 0xFFFFFF);
g.moveTo(_arrowStart, _height - lineWidth - _arrowHeight);
g.lineTo(_arrowStart + _arrowWidth, _height - lineWidth - _arrowHeight);

这样tooltip就定制好了,最后还需要将网元和tooltip上显示的内容绑定

 

link.setClient('message', '3333M');
customTooltip.setText(element.getClient('message'));

原文出处和原代码请参见这里

  • 大小: 13.7 KB
分享到:
评论

相关推荐

    flex tooltip

    标题中的“flex tooltip”指的是Adobe Flex中的一种交互设计元素,Tooltip。在Flex应用程序开发中,Tooltip是用来显示鼠标悬停在某个组件上时提供额外信息的小型弹出窗口。它可以帮助用户理解控件的功能或者显示一些...

    Flex 自定义ToolTip

    下面,我们将深入探讨如何在Flex中实现自定义`ToolTip`,并以给定的源代码为例进行解析。 #### 主要知识点: 1. **Flex中的`ToolTip`概念与用途** 2. **如何创建自定义`ToolTip`** 3. **理解`Main.mxml`文件结构与...

    嵌入.NET控件到托盘图标Tooltip

    ### 嵌入.NET控件到托盘图标Tooltip #### 概述 本文旨在探讨如何在.NET框架下,为系统托盘(也称作任务栏通知区)中的`NotifyIcon`控件添加自定义控件至其弹出的气球提示(Balloon Tip)中。这通常用于提供更丰富的...

    CSS3垂直图标菜单 带Tooltip提示框.zip

    本资源“CSS3垂直图标菜单 带Tooltip提示框.zip”提供了一个利用这两种技术实现的实用功能:一个垂直布局的图标菜单,并且每个图标都带有Tooltip提示框。下面将详细介绍这个知识点及其相关技术。 首先,让我们讨论...

    带有图像的ToolTip显示功能

    在传统的ToolTip中,内容主要是纯文本,而"带有图像的ToolTip"则是对其功能的一种扩展,增加了图像元素,使得信息的传递更为直观和生动。 实现这种功能的方式多种多样,但通常涉及到编程语言如Java、C#、Python、...

    Echarts图标tooltip添加按钮点击.zip

    tooltip中添加一个查看按钮,并且点击获得触发点的数据进行操作 ehcarts显示正常,并且在toopltip中添加formatter(params)函数对toopltip进行html设置显示按钮,点击跳转其他页面

    表格单元格自定义ToolTip组件

    这种自定义的ToolTip在Flex组件上特别有用,Flex是一种强大的富互联网应用程序(RIA)开发框架,由Adobe提供。 ToolTip通常是在鼠标悬停在某个元素上时显示的一小段文本,用于提供额外的上下文信息。在标准的DataGrid...

    带有tooltip的ClistCtrl类

    本篇将深入探讨如何在ClistCtrl中实现带有tooltip的功能,以提供更友好的用户界面。 首先,让我们了解什么是tooltip。Tooltip是一种小型的、非模态的窗口,它会在鼠标指针悬停在某个控件上一段时间后自动出现,显示...

    flex ToolTip汇总

    在flex中,可以使用`mx.controls.ToolTip`类来创建和管理`ToolTip`。首先,你需要在MXML代码中定义一个`ToolTip`实例,并为其设置相应的属性,如`id`、`content`(显示的文本)和`delay`(显示`ToolTip`前的延迟...

    WPF修改Tooltip样式

    如果需要更复杂的布局或动画效果,我们可以使用`ControlTemplate`来完全定制Tooltip的结构。以下是一个简单的例子,添加了圆角和阴影效果: ```xml <Style TargetType="{x:Type ToolTip}"> ... ...

    Tooltip

    4. **样式和布局**:Tooltip的外观可以通过设置字体、颜色、背景色、边框等属性进行定制。开发者可能提供了一些预设的样式,或者允许用户自定义。 5. **示例或测试代码**:压缩包可能包含一些示例代码,展示了如何...

    vc中tooltip应用

    在VC++编程环境中,Tooltip是一种常见的用户界面组件,它能够在鼠标悬停在某个控件上时,显示简短的信息提示。"vc中tooltip应用"这个主题着重于如何在Visual C++项目中有效地利用Tooltip控件,提升用户体验。下面将...

    JQuery 实现的带有Tooltip效果表单验证

    **jQuery实现的带有Tooltip效果的表单验证** 在网页开发中,用户输入验证是不可或缺的一环,它确保了用户提交的数据符合预设的规范,提高了数据的准确性和系统的稳定性。`jQuery`作为一款广泛使用的JavaScript库,...

    一个Vue2x的tooltip提示信息组件

    7. **插槽使用**:更高级的定制可能需要使用插槽,例如在tooltip中插入复杂的HTML结构或动态内容。 8. **性能优化**:对于大量使用tooltip的情况,考虑使用懒加载或者批量初始化来提升性能。 9. **兼容性和适配**...

    桌面图标冒泡窗体形式显示tooltip

    1:本套代码适合VS2008直接进行编辑编译...2:生成一个MFC窗体,在编辑框中输入桌面图标名称和要显示的文字,按确定按钮,就可以在对应桌面图标中显示聊天气泡显示文字。 3:有操作系统判定功能,有桌面图标查询功能。

    vb.net中tooltip控件应用

    在VB.NET编程环境中,Tooltip控件是一个非常实用的工具,它允许开发者为用户界面的各个控件提供额外的信息提示。...在实际开发过程中,根据需求灵活运用和定制Tooltip,将有助于提升软件的整体质量。

    CSS3垂直图标菜单 带Tooltip提示框

    今天我们要来分享一款CSS3菜单,菜单外观很漂亮,是垂直排列的小图标,鼠标滑过菜单项时,菜单项的背景会填充渐变的颜色,另外还会弹出该菜单项描述的Tooltip提示框。之前我们也分享过很多CSS3垂直菜单,像这款CSS3...

    MFC_ToolTip超级类(可以实现各种类型的ToolTip的弹出)

    在MFC中,`CToolTipCtrl`是处理`ToolTip`的基本类,但是通过继承并扩展这个类,开发者可以创建自己的`ToolTip`超级类,添加更多的定制选项,例如改变字体、颜色、背景、边框等。这样的自定义类通常会有更灵活的API,...

    HTML5+CSS3源码_CSS3垂直图标菜单 带Tooltip提示框.rar.rar

    在这个压缩包中,我们有一个特定的应用实例——一个使用HTML5和CSS3实现的垂直图标菜单,还带有Tooltip提示框功能。接下来,我们将深入探讨这些知识点。 首先,HTML5是超文本标记语言(HyperText Markup Language)...

Global site tag (gtag.js) - Google Analytics