`
rainwindboy
  • 浏览: 56308 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

【原创】Flex特效初探

    博客分类:
  • Flex
阅读更多

Flex特效初探

一个扩展后的LinkButton

当鼠标移动到LinkButton上的时候,在LinkButton上会出现一个向上移动的Label,并且会有一个振动的效果,当鼠标移走的时候,label消失,如图所示。
如何实现这个效果呢,下面是源码
演示下载地址:http://downloadnode.com/download.php?file=ea1d97c5e33d62ee4c470fb91b66a764


 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    
<mx:Style>
    Label{
    fontSize: 14;
    }
    
</mx:Style>
    
<mx:Script>
    
<![CDATA[
    import mx.events.EffectEvent;
    import mx.controls.Label;
    import mx.effects.easing.*;
    import mx.effects.Zoom;
    import mx.controls.Alert;
    public var testTry:Boolean = false;
    public var testTx:Boolean = false;
    public var Mylabelabel;
    public function LabelMove():void{
        movePauseMove.play();
    }
    internal function zoomMouseBig(targetStrinkButton):void{
        if (testTry == false) {
            Mylabel = new Label();
            Mylabel.id = "Mylb";
            Mylabel.text = "权限管理";
            //Alert.show((targetStr.x/2).toString());
            Mylabel.x = targetStr.x + (targetStr.width/4);
            Mylabel.y = targetStr.y-targetStr.height/2+5;
            Mylabel.fontContext = 14;
            var fropShadowFilter = new DropShadowFilter(5,30,0xFFFFFF,.8);
            var myFilters:Array = new Array();
            myFilters.push(f);
            Mylabel.filters = myFilters;
            Mylabel.addEventListener(MouseEvent.MOUSE_OUT,txTry1);
            Mylabel.text = "权限管理";
            Mylabel.visible = true;
            movePauseMove.target = Mylabel;
            this.addChild(Mylabel);
            movePauseMove.play();
            //movePauseMove.addEventListener(EffectEvent.EFFECT_END,changeTry);
            testTry = true;
            //Alert.show(targetStr.scaleX.toString());
            //创建Zoom对象
            var newZoom:Zoom = new Zoom();
            newZoom.zoomHeightTo=1.1;
            newZoom.zoomWidthTo=1.1;
            //指定作用对象
            //Alert.show(targetStr);
            newZoom.target = targetStr;
            //设置播放时长
            newZoom.duration = 300;
            //开始播放动画
            newZoom.play();
            newZoom.addEventListener(EffectEvent.EFFECT_END, txTry1);
        }
    }
    internal function zoomMouseNormal(targetStr:Object):void{
        if (testTx == false) {
            //创建Zoom对象
            var newZoom:Zoom = new Zoom();
            newZoom.zoomHeightTo=1;
            newZoom.zoomWidthTo=1;
            //指定作用对象
            newZoom.target = targetStr;
            //设置播放时长
            newZoom.duration = 300;
            //开始播放动画
            newZoom.play();
            Mylabel.parent.removeChild(Mylabel);
            testTx = true;
            testTry = false;
        }
    }
    internal function txTry1(env:Event):void {
    testTx = false;
    }
    
]]>
    
</mx:Script>
<!-- 
<mx:Sequence id="movePauseMove" target="{LinkBtTry}">
<mx:Move xBy="150" duration="2000" easingFunction="Bounce.easeOut"/>
<mxause duration="2000"/>
<mx:Move xBy="-150" duration="2000" easingFunction="Bounce.easeIn"/>
</mx:Sequence> 
-->
<mx:Move id="movePauseMove" yBy="-20" duration="1000" easingFunction="Bounce.easeOut"/>
<mx:Move id="movePauseMoveBack" yBy="-30" duration="2000" easingFunction="Bounce.easeOut"/>
<mx:LinkButton id="LinkBtTry" x="169" y="169" label="" height="42" width="172" 
icon
="@Embed(source='image/Button1.gif')" mouseOver="zoomMouseBig(this.LinkBtTry)"
mouseOut
="zoomMouseNormal(this.LinkBtTry)"
/>
</mx:Application>


 

全部的代码如上所示,现在就具体来说一下个部分的内容
首先是用到了Flex库中的Move组件,这个组件是用来做移动特效的,例如:从左向右移动,从上向下移动。
在引用这个组件的时候,有两种方式:一个是在组件里的绑定,如下:
<mx:Move id="movePauseMove" yBy="-20" duration="1000" target="{LinkBtTry}"
easingFunction="Bounce.easeOut"/>
就是说在这个组件里面,我们直接将target的属性绑定到一个控件中去了。
还有一种是在AS文件中定义的,如
Var MyMove:Move = new Move();
MyMove.target = 一个控件对象;
其实呢,是当鼠标移动到LinkButton的时候,我们自己创建了一个Label的对象,在这个里面有两个问题需要注意一下:
一个是当我们创建对象的时候,

Mylabel = new Label();

Mylabel.id = "Mylb";

Mylabel.text = "权限管理";

//Alert.show((targetStr.x/2).toString());

Mylabel.x = targetStr.x + (targetStr.width/4);

Mylabel.y = targetStr.y-targetStr.height/2+5;

 

我们用Eclipse里面的自动功能,是无法出现Mylabel.x这样的属性的。再有一个是,如果你重新New了一个Label,设定Label.text的字体比较麻烦,我们可以直接使用CSS来完成,例如:

<mx:Style>

Label{

fontSize: 14;

}

</mx:Style>

 

也可以这样

<mx:Style>

Label.id{

fontSize: 14;

}

</mx:Style>
最后一个问题,就是LinkButton里面的添加图片了,代码如下:icon="@Embed(source='image/Button1.gif')"。

分享到:
评论
1 楼 linzp007 2009-01-05  
挺不错的,这个可以封装成一个可重用组件

相关推荐

    FLEX特效FLEX特效FLEX特效FLEX特效

    Flex特效在IT行业中主要指的是Adobe Flex,它是一个用于构建富互联网应用程序(RIA)的开源框架。Flex使用MXML和ActionScript编程语言,可以创建交互性强、视觉效果丰富的Web应用程序。在网页设计和开发中,Flex特效...

    flex特效整理好久了

    【标题】:“flex特效整理好久了” Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。Flex特效是这个框架中的一个重要组成部分,它为开发者提供了丰富的视觉表现力,使得用户界面...

    flex特效编辑器 开发flex游戏的利器

    Flex特效编辑器是一款专为开发基于Adobe Flex技术的游戏而设计的强大工具。它简化了特效的创建过程,使得开发者能够更加高效地构建具有视觉冲击力的游戏体验。Flex是一种开放源码的框架,主要用于构建富互联网应用...

    Flex 3D特效源码

    Flex 3D特效源码是一种基于Adobe Flex技术的高级视觉表现形式,主要用于创建引人注目的3D动画和交互效果。Flex是ActionScript 3.0的开发框架,它允许开发者构建富互联网应用程序(RIA)并发布为Flash Player或Adobe ...

    flex特效 不错的flex样式生成器

    这个“flex特效 不错的flex样式生成器”是一个工具,可以帮助开发者更轻松地生成适用于Flex布局的CSS样式。通过图形化的界面,用户可以直观地调整各种属性,以实现所需的布局效果。 首先,让我们深入理解Flex布局的...

    flex特效鼠标放上去字体变大的特效

    根据给定文件的信息,本文将围绕“Flex特效:鼠标放上去字体变大的特效”这一主题进行深入探讨。本文首先简要介绍Flex技术及其在Web开发中的应用,随后详细解析实现鼠标悬停时字体放大效果的具体代码逻辑和技术要点...

    FLEX 特效工具FLEX 特效工具

    FLEX 特效工具FLEX 特效工具FLEX 特效工具FLEX 特效工具FLEX 特效工具FLEX 特效工具FLEX 特效工具FLEX 特效工具

    flex 特效demo

    Flex特效Demo是一个基于Adobe Flex技术实现的特效展示项目,它旨在帮助开发者理解和学习如何在Flex应用中创建各种吸引人的视觉效果。Flex是一种用于构建富互联网应用程序(RIA)的开源框架,它基于ActionScript编程...

    flex特效dome

    Flex特效Dome是一个集合了各种基于Flex技术的交互效果示例,它提供了丰富的用户体验设计,非常适合开发者和设计师学习和借鉴。在本篇文章中,我们将深入探讨Flex特效的原理、应用场景以及如何利用EffectsCtrlDemo这...

    flex特效组件用法效果

    在本文中,我们将深入探讨Flex特效组件的用法及其在自定义控件中的应用。Flex布局是一种强大的CSS布局模式,允许我们创建响应式和灵活的用户界面。它特别适合用于现代网页和移动应用的设计,因为它可以自动调整元素...

    flex特效代码

    Flex特效代码是基于Adobe Flex框架开发的,用于增强用户界面动态效果的编程片段。Flash Builder 4是一款集成开发环境(IDE),专为构建富互联网应用程序(RIA)而设计,特别是那些使用Flex和ActionScript开发的项目...

    非常漂亮的flex特效-希望对大家有用

    Flex特效是一种基于Adobe Flex框架创建的交互式用户界面效果,它利用ActionScript 3.0进行编程,并在Flash Player或Adobe AIR环境中运行。本资源"非常漂亮的flex特效"显然是一个包含精心设计的Flex应用程序,旨在...

    超炫Flex特效.rar

    这组“超炫Flex特效.rar”压缩包文件显然包含了一些使用Flex技术实现的独特视觉效果,适合于提升用户体验和交互性。 在Flex中,特效主要通过ActionScript编程来实现,ActionScript是Flash平台的核心脚本语言,它为...

    flex特效范例源码

    Flex特效范例源码主要涉及的是Adobe Flex技术,这是一套用于构建富互联网应用程序(Rich Internet Applications,RIA)的开源框架。Flex以其强大的组件库、数据绑定机制和丰富的图形效果而闻名,尤其适用于创建交互...

    flex特效学习---Flex组件-行为与特效类组件

    在深入探讨Flex特效学习中的行为与特效类组件之前,我们先来理解一下Flex的基本概念。Flex是一种用于构建高性能、跨平台的RIA(Rich Internet Applications)的开源框架,它基于Adobe Flash平台,允许开发者创建出既...

    FLEX4动画特效

    标题“FLEX4动画特效”暗示了这个压缩包包含了一系列Flex4动画效果的示例代码。这些示例可能是由FlexBuilder4.6,一个专门用于Flex开发的集成开发环境(IDE),直接导出的工程。用户可以将这些工程导入到自己的开发...

    flex特效(实用简单)

    Flex特效是一种基于Adobe Flex框架实现的用户界面动态效果。Adobe Flex是一种开源的、跨平台的框架,主要用于构建富互联网应用程序(Rich Internet Applications, RIA),它允许开发者使用MXML和ActionScript来创建...

    Flex 的特效代码,学flex的特效更容易

    在本资源包“Efflex”中,你将找到一系列帮助学习和实现Flex特效的代码示例。这些特效能增强用户体验,使应用程序更具吸引力。下面我们将深入探讨Flex特效及其重要性,以及如何利用提供的代码来提升你的Flex开发技能...

    flex特效包efflex

    一个开源的flex特效资源包,提供很多很漂亮的特效

    Flex 果冻特效Demo

    "Flex 果冻特效Demo"是一个利用Flex技术实现的交互效果,它为用户界面添加了趣味性和吸引力,尤其适用于弹出窗口或页面转换场景。果冻特效,顾名思义,就是使元素在动效过程中呈现出如同果冻般柔软、弹性的视觉效果...

Global site tag (gtag.js) - Google Analytics