花了N久的时间终于完成了ToolTips的学习,看似简单的东西自己却弄了好久好久。
下面把经验和大家分享一下:
1·创建两个监听函数去监听 toolTipCreate 和 toolTipShow
在 toolTipCreate 把Flex原来创建好的ToolTips丢掉,换成你自己New出来的新ToolTips
并且在toolTipShow中将ToolTips移动到你需要的位置上面去。
其实这种做法是很2的行为(见Forums),不过我研究了一下Flex4目前的代码结构,发现除了这样 没有别的方法了。
入口文件
MXML语言:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024"
minHeight="768"
width="344"
height="346"
backgroundColor="#1EBFE2">
<fx:Script>
<![CDATA[
import gametips.AnimationGameToolTips;
import mx.core.UIComponent;
import mx.events.ToolTipEvent;
protected function button1_toolTipCreateHandler(event : ToolTipEvent) : void
{
var gameNormalToolTips : AnimationGameToolTips = new AnimationGameToolTips();
event.toolTip = gameNormalToolTips;
}
protected function button1_toolTipShowHandler(event : ToolTipEvent) : void
{
(event.toolTip as AnimationGameToolTips).setToolTipsPosition(event.target as UIComponent);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button x="133"
y="325"
label="TestButton"
toolTip="{inPutText.text}"
toolTipCreate="button1_toolTipCreateHandler(event)"
toolTipShow="button1_toolTipShowHandler(event)"/>
<s:Label x="0"
y="4"
text="Put The Tips Value in TestArae"
width="208"
height="15"/>
<s:TextArea id="inPutText"
x="-1"
y="20"
text="Power by Tunied
Any Issue please Leave Message at
http://tunied.cz.cc
"
editable="true"
enabled="true"
contentBackgroundColor="#9679EB"
height="101"
width="226"/>
</s:Application>
ToolTips文件:
ActionScript 3语言:
package gametips
{
import flash.geom.Point;
import flash.text.TextField;
import mx.core.IToolTip;
import mx.core.UIComponent;
public class AnimationGameToolTips extends UIComponent implements IToolTip
{
private var animation : GameToolTipsAnimation;
public function AnimationGameToolTips()
{
animation = new GameToolTipsAnimation();
this.addChild(animation);
super();
}
public function get text() : String
{
return animation.mc.textMc.text;
}
public function set text(value : String) : void
{
/*
Fist Need to set the animation to the last frame ,beacuse in current demo
only the last frames have the normal width/height.
*/
animation.gotoAndStop(animation.totalFrames);
var textMc : TextField = animation.mc.textMc;
textMc.text = value;
textMc.width = textMc.textWidth + 10;
textMc.height = textMc.textHeight + 10;
animation.mc.panel.width = textMc.width + 10;
animation.mc.panel.height = textMc.height + 30;
/*
in the demo res, the arrow pos have been locate to the (0,0) but the textFiled start position
will be change after the class change the width/height .
*/
var arrowPosition : Point = animation.mc.panel.localToGlobal(new Point(animation.mc.panel.arrowPos.x , animation.mc.panel.arrowPos.y));
textMc.x = arrowPosition.x;
textMc.y = arrowPosition.y;
animation.mc.panel.arrowPos.visible = false;
animation.gotoAndPlay(1);
}
public function setToolTipsPosition(_target : UIComponent) : void
{
this.x = _target.x + (_target.width >> 1);
this.y = _target.y - 5;
}
/**
* The ToolManager will use this function to move the current tooltips
* to the the target position , but the cusstom tooltips can't move by ToolManger
* so not need to implement this function do the extra work
*/
override public function move(x : Number , y : Number) : void
{
}
}
}
其中比较讨巧的地方,一个是在SetText之前先播放到最后一帧,第二个就是localToGlobal函数的使用。
Demo
分享到:
相关推荐
felx HashMap.as,自己编写的,希望对你们有所帮助
4. **3D效果**:Flex 3.0支持基本的3D转换,如旋转、缩放和位移,使得在二维界面上实现立体感成为可能。这些效果可以增强用户界面的深度和维度。 5. **数据绑定**:Flex 3.0的数据绑定功能允许视图组件自动响应模型...
4. **数据绑定**: Flex 3.0支持双向数据绑定,这意味着当数据源发生变化时,用户界面会自动更新,反之亦然。这简化了应用程序的状态管理。 5. **事件模型**: Flex 3.0具有一个强大的事件模型,允许组件之间通过事件...
felx嵌入到jsp 将FLEX嵌入到JSP,其实是通过JSP的TAGLIB实现的. 步骤还是蛮简单的 1:去ADOBE下载FLEX的TAGLIB for JSP. 2:将flex-webtier-jsp.jar 拷贝到WEB-INF/flex/jars 文件夹. 3:在WEB.XML中添加 <taglib-uri>...
felx高亮显示SQL语句关键字
java与felx通信的例子,新手参考!
在本文中,我们将深入探讨如何使用Flex技术来创建具有渐变效果的圆环,这个过程也被称为“felx画渐变圆”。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者利用MXML和...
4. **报警与提醒**:当检测到异常能耗或超过预设阈值时,系统会自动触发报警,及时发现并处理问题,防止能源浪费。 5. **报告生成**:定期生成详细的能耗报告,包括部门、设备、时间维度的能耗对比,为企业决策提供...
4:如果SERVER开着的话,重启. 5:可以在JSP文件中写FLEX代码了!TADOEBA:===================== test.jsp START =====================<%@ taglib uri="FlexTagLib" prefix="mm" %> ; charset=utf-8" %> <html> This...
4. **添加Script块**: - 在`Canvas`标签之后添加一个`Script`块。这是用来编写脚本的地方。 5. **创建`clickHandler`方法**: - 在`Script`块内创建一个名为`clickHandler`的私有函数,它接受一个名为`event`的...
非常好用的 felx AdvancedDataGrid 多选框 单选框支持渲染器,不需改到AdvancedDataGrid 代码; 支持 xml 数据源的网上可查到一些, 但这个可是 支持 Array 类型数据源的。
4. **Flex客户端调用**:在Flex客户端,我们需要使用` BlazeDS` 或 `LCDS` 这样的库来创建AMF通道,通过`RemoteObject`组件来调用Spring服务。这涉及到配置服务端点URL,以及映射服务方法到Flex中的调用。 5. **...
Flex是Adobe公司开发的支持RIA(Rich Internet Applications)开发和部署的技术产品,主要面向企业级的应用。借助于Flex强大功能,能够开发出增强更富有交互性和标签的用户界面。 对于初识Flex的开发者,总是对Flex...
标题中的“felx报表画斜线ReportDemo”指的是一个基于Flex技术实现的报表展示示例,其中包含了如何在报表中绘制斜线的演示。Flex是一种用于构建富互联网应用程序(RIA)的开源框架,它基于ActionScript编程语言和...
在本文中,我们将探讨如何使用Flex实现实时数据显示,特别是对于Flex初学者来说,这是一个重要的概念。Flex是一种用于构建富互联网应用程序(RIA)的框架,它允许开发者创建具有动态交互和实时数据更新的Web应用。...
Flex客户端实现地图的热地图渲染,针对FeatureLayer,实现空间坐标点的热地图实时生成,不需要与服务端交互。
Flex是Adobe公司开发的一种基于ActionScript的开源框架,主要用于创建富互联网应用程序(Rich Internet Applications,简称RIA)。它允许开发者构建动态、交互性强的Web应用,同时支持多种平台,包括Windows、Mac、...
4. **添加图表组件**:在主MXML文件中,插入图表组件并配置其属性。比如,要创建一个条形图,可以使用`<s:BarSeries>`标签;对于饼图,可以使用`<s:PieSeries>`。 5. **定义系列和数据点**:每个图表系列代表数据的...
Flex报表是一种基于Adobe Flex技术的报表生成工具,它允许开发者创建动态、交互式的Web报表,以展示各种复杂的数据。Flex是ActionScript 3.0的一个框架,它使用MXML和AS3代码来构建富互联网应用程序(RIA)。...