`
iamzealotwang
  • 浏览: 121372 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Felx4 Custom ToolTips

    博客分类:
  • Flex
阅读更多

花了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&#xd;Any Issue please Leave Message at&#xd;http://tunied.cz.cc&#xd;"
                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

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    felx HashMap.as

    felx HashMap.as,自己编写的,希望对你们有所帮助

    Felx3.0的效果

    4. **3D效果**:Flex 3.0支持基本的3D转换,如旋转、缩放和位移,使得在二维界面上实现立体感成为可能。这些效果可以增强用户界面的深度和维度。 5. **数据绑定**:Flex 3.0的数据绑定功能允许视图组件自动响应模型...

    felx 3.o api 帮助文档

    4. **数据绑定**: Flex 3.0支持双向数据绑定,这意味着当数据源发生变化时,用户界面会自动更新,反之亦然。这简化了应用程序的状态管理。 5. **事件模型**: Flex 3.0具有一个强大的事件模型,允许组件之间通过事件...

    felx嵌入到jsp 所需的 两个 jar包

    felx嵌入到jsp 将FLEX嵌入到JSP,其实是通过JSP的TAGLIB实现的. 步骤还是蛮简单的 1:去ADOBE下载FLEX的TAGLIB for JSP. 2:将flex-webtier-jsp.jar 拷贝到WEB-INF/flex/jars 文件夹. 3:在WEB.XML中添加 &lt;taglib-uri&gt;...

    felx高亮显示SQL语句关键字

    felx高亮显示SQL语句关键字

    java与felx通信的例子

    java与felx通信的例子,新手参考!

    felx画渐变圆

    在本文中,我们将深入探讨如何使用Flex技术来创建具有渐变效果的圆环,这个过程也被称为“felx画渐变圆”。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者利用MXML和...

    felx能源消耗系统完整

    4. **报警与提醒**:当检测到异常能耗或超过预设阈值时,系统会自动触发报警,及时发现并处理问题,防止能源浪费。 5. **报告生成**:定期生成详细的能耗报告,包括部门、设备、时间维度的能耗对比,为企业决策提供...

    felx嵌入到jsp 所需的jar包

    4:如果SERVER开着的话,重启. 5:可以在JSP文件中写FLEX代码了!TADOEBA:===================== test.jsp START =====================&lt;%@ taglib uri="FlexTagLib" prefix="mm" %&gt; ; charset=utf-8" %&gt; &lt;html&gt; This...

    Felx 学习,入门

    4. **添加Script块**: - 在`Canvas`标签之后添加一个`Script`块。这是用来编写脚本的地方。 5. **创建`clickHandler`方法**: - 在`Script`块内创建一个名为`clickHandler`的私有函数,它接受一个名为`event`的...

    felx AdvancedDataGrid 多选框 单选框

    非常好用的 felx AdvancedDataGrid 多选框 单选框支持渲染器,不需改到AdvancedDataGrid 代码; 支持 xml 数据源的网上可查到一些, 但这个可是 支持 Array 类型数据源的。

    felx_Spring.zip

    4. **Flex客户端调用**:在Flex客户端,我们需要使用` BlazeDS` 或 `LCDS` 这样的库来创建AMF通道,通过`RemoteObject`组件来调用Spring服务。这涉及到配置服务端点URL,以及映射服务方法到Flex中的调用。 5. **...

    Felx.rar_adobe GUI_adobe flex GUI_felx_flex

    Flex是Adobe公司开发的支持RIA(Rich Internet Applications)开发和部署的技术产品,主要面向企业级的应用。借助于Flex强大功能,能够开发出增强更富有交互性和标签的用户界面。 对于初识Flex的开发者,总是对Flex...

    felx报表画斜线ReportDemo

    标题中的“felx报表画斜线ReportDemo”指的是一个基于Flex技术实现的报表展示示例,其中包含了如何在报表中绘制斜线的演示。Flex是一种用于构建富互联网应用程序(RIA)的开源框架,它基于ActionScript编程语言和...

    felx实时数据显示

    在本文中,我们将探讨如何使用Flex实现实时数据显示,特别是对于Flex初学者来说,这是一个重要的概念。Flex是一种用于构建富互联网应用程序(RIA)的框架,它允许开发者创建具有动态交互和实时数据更新的Web应用。...

    Felx客户端热地图渲染

    Flex客户端实现地图的热地图渲染,针对FeatureLayer,实现空间坐标点的热地图实时生成,不需要与服务端交互。

    felx,jsn远程调用

    Flex是Adobe公司开发的一种基于ActionScript的开源框架,主要用于创建富互联网应用程序(Rich Internet Applications,简称RIA)。它允许开发者构建动态、交互性强的Web应用,同时支持多种平台,包括Windows、Mac、...

    felx 统计图

    4. **添加图表组件**:在主MXML文件中,插入图表组件并配置其属性。比如,要创建一个条形图,可以使用`&lt;s:BarSeries&gt;`标签;对于饼图,可以使用`&lt;s:PieSeries&gt;`。 5. **定义系列和数据点**:每个图表系列代表数据的...

    Felx 报表

    Flex报表是一种基于Adobe Flex技术的报表生成工具,它允许开发者创建动态、交互式的Web报表,以展示各种复杂的数据。Flex是ActionScript 3.0的一个框架,它使用MXML和AS3代码来构建富互联网应用程序(RIA)。...

Global site tag (gtag.js) - Google Analytics