`
nianshi
  • 浏览: 420485 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex中效果组件的封装与使用

    博客分类:
  • Flex
阅读更多

Flex提供了16 种动画效果类

AnimateProperty:动画属性
Blur :模糊
Desolve :溶解
Fade :凋零
Glow :发光
Iris :瞳孔放大缩小
Move :移动
Pause :定格
Resize :改变大小
Rotate :旋转
SoundEffect :音效
(WipeLeft, WipeRight, WipeUp, WipeDown) :擦拭
Zoom :放大缩小



有13 种不同的方式来触发动画效果:
AddedEffect :加入容器
creationCompleteEffect :创建完成
focusInEffect :获得键盘输入
focusOutEffect :失去键盘输入
hideEffect :visable属性设置为false
mouseDownEffect :鼠标按下
mouseUpEffect :鼠标按起
moveEffect :被拖动
resizeEffect :重新设定大小
removedEffect :被移除
rollOutEffect :鼠标移到控件外
rollOverEffect :鼠标移到控件上
showEffect :visable属性设置为true


可以使用MXML来设置效果
Java代码

   1. <mx:Fade target="{loginWindow}" alphaFrom="1" alphaTo=".5" duration="500" startDelay="200" effectEnd="loginEffectHandler(event)"/> 

<mx:Fade target="{loginWindow}" alphaFrom="1" alphaTo=".5" duration="500" startDelay="200" effectEnd="loginEffectHandler(event)"/>




但是如果程序中效果需要代码控制的,即需要as代码编写效果的时候,则这些效果的代码将会很多很杂。比如你需要一个移动和隐藏的效果
Java代码

   1. var move:Move = new Move ; 
   2.                 move.target = loginWindow ; 
   3.                 move.duration = 500 ; 
   4.                 move.xFrom = 100 ; 
   5.                 move.xTo = 200 ; 
   6.                 move.yFrom = 100 ; 
   7.                 move.yFrom = 200 ; 
   8.                 move.startDelay = 100 ; 
   9.                 move.addEventListener(EffectEvent.EFFECT_END,moveEffectHandler) ; 
  10.                 move.play() ; 
  11.                 var fade:Fade = new Fade ; 
  12.                 fade.alphaFrom = 1 ; 
  13.                 fade.alphaTo = 1;  
  14.                 fade.target= loginWindo ; 
  15.                 fade.startDelay = 200 ; 
  16.                 fade.duration = 500 ; 
  17.                 fade.addEventListener(EffectEvent.EFFECT_END,fadeEffectHandler) ; 
  18.                 fade.play() ; 

var move:Move = new Move ;
move.target = loginWindow ;
move.duration = 500 ;
move.xFrom = 100 ;
move.xTo = 200 ;
move.yFrom = 100 ;
move.yFrom = 200 ;
move.startDelay = 100 ;
move.addEventListener(EffectEvent.EFFECT_END,moveEffectHandler) ;
move.play() ;
var fade:Fade = new Fade ;
fade.alphaFrom = 1 ;
fade.alphaTo = 1;
fade.target= loginWindo ;
fade.startDelay = 200 ;
fade.duration = 500 ;
fade.addEventListener(EffectEvent.EFFECT_END,fadeEffectHandler) ;
fade.play() ;



考虑到精简代码,我将上诉效果封装到一个类中,代码如下

Java代码

   1. package com.utils.effect 
   2. { 
   3.     import flash.display.DisplayObject; 
   4.      
   5.     import mx.effects.Blur; 
   6.     import mx.effects.Fade; 
   7.     import mx.effects.Glow; 
   8.     import mx.effects.Move; 
   9.     import mx.effects.Resize; 
  10.     import mx.effects.Rotate; 
  11.     import mx.events.EffectEvent; 
  12.      
  13.     public class ApplicationEffect 
  14.     { 
  15.         public function ApplicationEffect() 
  16.         { 
  17.         } 
  18.          
  19.         public static function setMove(displayObject:Object,xFrom:Number,xTo:Number,yFrom:Number,yTo:Number,dur:int,delay:int,fun:Function,easingFunction:Function=null):void 
  20.         { 
  21.             var move:Move = new Move ; 
  22.             move.target = displayObject ; 
  23.             if(xFrom != -1) 
  24.                 move.xFrom = xFrom ; 
  25.             if(xTo != -1) 
  26.                 move.xTo = xTo ; 
  27.             if(yFrom != -1) 
  28.             move.yFrom = yFrom ; 
  29.             if(yTo != -1) 
  30.                 move.yTo = yTo ; 
  31.             move.duration = dur ; 
  32.             move.startDelay = delay ; 
  33.             if(easingFunction != null) 
  34.                 move.easingFunction = easingFunction ; 
  35.             if(fun !=null) 
  36.                 move.addEventListener(EffectEvent.EFFECT_END,fun) ; 
  37.             move.play() ; 
  38.              
  39.         } 
  40.          
  41.         public static function setResize(displayObject:Object,widthFrom:Number,widthTo:Number,heightFrom:Number,heightTo:Number,dur:int,delay:int,fun:Function,easingFunction:Function=null):void 
  42.         { 
  43.             var resize:Resize = new Resize ; 
  44.             resize.target = displayObject ; 
  45.             if(widthFrom != -1) 
  46.                 resize.widthFrom = widthFrom ; 
  47.             if(widthTo != -1) 
  48.                 resize.widthTo  = widthTo ; 
  49.             if(heightFrom != -1) 
  50.                 resize.heightFrom = heightFrom ; 
  51.             if(heightTo != -1) 
  52.                 resize.heightTo = heightTo ; 
  53.             resize.duration = dur ; 
  54.             resize.startDelay = delay ; 
  55.             if(easingFunction != null) 
  56.                 resize.easingFunction = easingFunction ; 
  57.             if(fun !=null) 
  58.                 resize.addEventListener(EffectEvent.EFFECT_END,fun); 
  59.             resize.play(); 
  60.         } 
  61.          
  62.         public static function setFade(displayObject:Object,duration:Number,alphaFrom:Number,alphaTo:Number,delay:Number,fun:Function,easingFunction:Function=null):void 
  63.         { 
  64.             var fade:Fade = new Fade ; 
  65.             fade.target=displayObject; 
  66.             fade.duration=duration; 
  67.             if(alphaFrom != -1) 
  68.                 fade.alphaFrom=alphaFrom; 
  69.             if(alphaTo != -1) 
  70.                 fade.alphaTo=alphaTo; 
  71.             if(delay != -1) 
  72.                 fade.startDelay = delay ; 
  73.             if(easingFunction != null) 
  74.                 fade.easingFunction = easingFunction ; 
  75.             if(fun !=null) 
  76.                 fade.addEventListener(EffectEvent.EFFECT_END,fun); 
  77.             fade.play(); 
  78.         } 
  79.          
  80.         public static function setBlur(displayObject:Object,duration:Number,blurXFrom:Number,blurXTo:Number,blurYFrom:Number,blurYTo:Number,fun:Function,easingFunction:Function=null):void 
  81.         { 
  82.             var blur:Blur= new Blur ; 
  83.             blur.target=displayObject ; 
  84.             blur.duration=duration ; 
  85.             if(blurXFrom != -1) 
  86.                 blur.blurXFrom=blurXFrom ; 
  87.             if(blurXTo != -1) 
  88.                 blur.blurXTo=blurXTo ; 
  89.             if(blurYFrom != -1) 
  90.                 blur.blurYFrom=blurYFrom ; 
  91.             if(blurYTo != -1) 
  92.                 blur.blurYTo=blurYTo ; 
  93.             if(easingFunction != null) 
  94.                 blur.easingFunction = easingFunction ; 
  95.             if(fun !=null) 
  96.                 blur.addEventListener(EffectEvent.EFFECT_END,fun) ; 
  97.             blur.play(); 
  98.         } 
  99.         public static function setRotate(displayObject:Object,angleFrom:Number,angleTo:Number,fun:Function,easingFunction:Function=null):void 
100.         { 
101.             var rotate:Rotate = new Rotate; 
102.             rotate.target=displayObject; 
103.             if(angleFrom != -1) 
104.                 rotate.angleFrom=angleFrom; 
105.             if(angleTo != -1) 
106.                 rotate.angleTo=angleTo; 
107.             if(easingFunction != null) 
108.                 rotate.easingFunction = easingFunction ; 
109.             if(fun !=null) 
110.                 rotate.addEventListener(EffectEvent.EFFECT_END,fun); 
111.             rotate.play(); 
112.         } 
113.          
114.         public static function setGlow(displayObject:DisplayObject,color:Number,alphaFrom:Number,alphaTo:Number,blurXFrom:Number, 
115.         blurXTo:Number,blurYFrom:Number,blurYTo:Number,dur:Number,delay:Number,fun:Function,easingFunction:Function=null):void 
116.         { 
117.             var glow:Glow = new Glow ; 
118.             glow.target = displayObject ; 
119.             if(color != -1) 
120.                 glow.color = color ; 
121.             if(alphaFrom != -1) 
122.                 glow.alphaFrom = alphaFrom; 
123.             if(alphaTo != -1) 
124.                 glow.alphaTo = alphaTo; 
125.             if(blurXFrom != -1) 
126.                 glow.blurXFrom = blurXFrom; 
127.             if(blurXTo != -1) 
128.                 glow.blurXTo = blurXTo; 
129.             if(blurYFrom != -1) 
130.                 glow.blurYFrom = blurYFrom; 
131.             if(blurYTo != -1) 
132.                 glow.blurYTo = blurYTo ; 
133.             if(delay != -1) 
134.                 glow.startDelay = delay ; 
135.             if(easingFunction != null) 
136.                 glow.easingFunction = easingFunction ; 
137.             if(fun != null) 
138.                 glow.addEventListener(EffectEvent.EFFECT_END,fun) ; 
139.             glow.play() ; 
140.         } 
141.          
142.     } 
143. } 

package com.utils.effect
{
import flash.display.DisplayObject;

import mx.effects.Blur;
import mx.effects.Fade;
import mx.effects.Glow;
import mx.effects.Move;
import mx.effects.Resize;
import mx.effects.Rotate;
import mx.events.EffectEvent;

public class ApplicationEffect
{
public function ApplicationEffect()
{
}

public static function setMove(displayObject:Object,xFrom:Number,xTo:Number,yFrom:Number,yTo:Number,dur:int,delay:int,fun:Function,easingFunction:Function=null):void
{
var move:Move = new Move ;
move.target = displayObject ;
if(xFrom != -1)
move.xFrom = xFrom ;
if(xTo != -1)
move.xTo = xTo ;
if(yFrom != -1)
move.yFrom = yFrom ;
if(yTo != -1)
move.yTo = yTo ;
move.duration = dur ;
move.startDelay = delay ;
if(easingFunction != null)
move.easingFunction = easingFunction ;
if(fun !=null)
move.addEventListener(EffectEvent.EFFECT_END,fun) ;
move.play() ;

}

public static function setResize(displayObject:Object,widthFrom:Number,widthTo:Number,heightFrom:Number,heightTo:Number,dur:int,delay:int,fun:Function,easingFunction:Function=null):void
{
var resize:Resize = new Resize ;
resize.target = displayObject ;
if(widthFrom != -1)
resize.widthFrom = widthFrom ;
if(widthTo != -1)
resize.widthTo  = widthTo ;
if(heightFrom != -1)
resize.heightFrom = heightFrom ;
if(heightTo != -1)
resize.heightTo = heightTo ;
resize.duration = dur ;
resize.startDelay = delay ;
if(easingFunction != null)
resize.easingFunction = easingFunction ;
if(fun !=null)
resize.addEventListener(EffectEvent.EFFECT_END,fun);
resize.play();
}

public static function setFade(displayObject:Object,duration:Number,alphaFrom:Number,alphaTo:Number,delay:Number,fun:Function,easingFunction:Function=null):void
{
var fade:Fade = new Fade ;
fade.target=displayObject;
fade.duration=duration;
if(alphaFrom != -1)
fade.alphaFrom=alphaFrom;
if(alphaTo != -1)
fade.alphaTo=alphaTo;
if(delay != -1)
fade.startDelay = delay ;
if(easingFunction != null)
fade.easingFunction = easingFunction ;
if(fun !=null)
fade.addEventListener(EffectEvent.EFFECT_END,fun);
fade.play();
}

public static function setBlur(displayObject:Object,duration:Number,blurXFrom:Number,blurXTo:Number,blurYFrom:Number,blurYTo:Number,fun:Function,easingFunction:Function=null):void
{
var blur:Blur= new Blur ;
blur.target=displayObject ;
blur.duration=duration ;
if(blurXFrom != -1)
blur.blurXFrom=blurXFrom ;
if(blurXTo != -1)
blur.blurXTo=blurXTo ;
if(blurYFrom != -1)
blur.blurYFrom=blurYFrom ;
if(blurYTo != -1)
blur.blurYTo=blurYTo ;
if(easingFunction != null)
blur.easingFunction = easingFunction ;
if(fun !=null)
blur.addEventListener(EffectEvent.EFFECT_END,fun) ;
blur.play();
}
public static function setRotate(displayObject:Object,angleFrom:Number,angleTo:Number,fun:Function,easingFunction:Function=null):void
{
var rotate:Rotate = new Rotate;
rotate.target=displayObject;
if(angleFrom != -1)
rotate.angleFrom=angleFrom;
if(angleTo != -1)
rotate.angleTo=angleTo;
if(easingFunction != null)
rotate.easingFunction = easingFunction ;
if(fun !=null)
rotate.addEventListener(EffectEvent.EFFECT_END,fun);
rotate.play();
}

public static function setGlow(displayObject:DisplayObject,color:Number,alphaFrom:Number,alphaTo:Number,blurXFrom:Number,
blurXTo:Number,blurYFrom:Number,blurYTo:Number,dur:Number,delay:Number,fun:Function,easingFunction:Function=null):void
{
var glow:Glow = new Glow ;
glow.target = displayObject ;
if(color != -1)
glow.color = color ;
if(alphaFrom != -1)
glow.alphaFrom = alphaFrom;
if(alphaTo != -1)
glow.alphaTo = alphaTo;
if(blurXFrom != -1)
glow.blurXFrom = blurXFrom;
if(blurXTo != -1)
glow.blurXTo = blurXTo;
if(blurYFrom != -1)
glow.blurYFrom = blurYFrom;
if(blurYTo != -1)
glow.blurYTo = blurYTo ;
if(delay != -1)
glow.startDelay = delay ;
if(easingFunction != null)
glow.easingFunction = easingFunction ;
if(fun != null)
glow.addEventListener(EffectEvent.EFFECT_END,fun) ;
glow.play() ;
}

}
}



这样,使用效果会非常方便,使用方法如下

Java代码

   1. ApplicationEffect.setMove(loginWindow,0,100,0,100,500,200,moveEffectHandler,null) ; 

ApplicationEffect.setMove(loginWindow,0,100,0,100,500,200,moveEffectHandler,null) ;

分享到:
评论

相关推荐

    自己封装的Flex文件上传组件FileInput

    在本例中,`FileInput.swc`是自封装组件的库文件,开发者可以将其导入到Flex项目中,直接使用封装好的FileInput组件,无需关心内部实现细节。 要使用这个组件,首先需要在Flex工程中引入SWC库,然后在MXML或AS3代码...

    flex组件使用文档

    ### Flex组件使用文档知识点概述 #### 一、Flex与ActionScript 3.0的关系 - **Flex简介**:Flex是一个开源框架,用于构建跨浏览器、跨平台的应用程序。它使用了ActionScript 3.0作为编程语言,XML来定义用户界面...

    对flex栅格系统封装

    标题“对flex栅格系统封装”表明我们将探讨如何将Flexbox特性整合到一个可复用的组件或库中,这样在实际开发中可以快速构建页面结构。这个封装可能包括对列(Columns)、行(Rows)、断点(Breakpoints)以及响应式...

    Flex 分页控件组件

    标题"Flex分页控件组件"暗示了这个压缩包可能包含一个预封装好的分页组件,可能是一个自定义的Flex组件或者一个第三方库,比如mx.controls.Paginator类。这个组件通常会提供基本的分页功能,如页码显示、跳转至指定...

    flex翻书组件

    Flex翻书组件是一种基于Adobe Flex技术开发的交互式电子书应用,它提供了逼真的翻书效果,让读者在数字环境中体验类似纸质书籍的阅读感受。Adobe Flex是一个用于构建富互联网应用程序(RIA)的框架,使用MXML和...

    Flex DistortionEffects (效果插件)

    在Flex项目中,效果(Effects)是用来改变组件状态或视觉属性的一系列动画。它们通常用于过渡、强调或者响应用户交互。Flex Effects包括内置的Effect类,如Fade、Slide和Wipe,而Flex Distortion Effects则提供了更...

    关于显示Flex在QTP中封装方法的步骤

    将Flex应用纳入QTP测试环境中,需要进行特定的封装工作,以便QTP能识别和操作Flex组件。以下就是关于如何在QTP中封装Flex的详细步骤: 1. **安装Flex插件**:首先,确保你已经安装了QTP的Flex插件。这个插件允许QTP...

    flex拓展组件autoComplete开源代码

    通过查看源码,你可以学习到如何封装和扩展Flex组件,以及如何处理数据绑定、事件监听和用户交互。这对于提高Flex开发技能和理解组件工作原理非常有帮助。 在实际开发中,`autoComplete`组件不仅可以提升用户体验,...

    UI组件封装as3.0

    UI组件封装在AS3.0中的应用,能够帮助开发者构建出具有专业级外观和功能的用户界面,从而提升开发效率,减少代码冗余。 首先,UI组件是指在用户界面上可以独立使用和重用的小型交互元素,如按钮、文本框、列表视图...

    flex 图片缩放移动组件

    UIComponent是所有Flex组件的基础,提供了绘制和布局的基本功能。Canvas则是一个容器,可以容纳其他组件,并提供绘图能力。 2. **图像显示**: - 我们可以使用BitmapData对象来加载和处理图像数据,然后通过Bitmap...

    flex封装实现画布功能

    来公司第一个考核demo,用actionScrpt封装一个组件,根据提供的属性画出矩形的长、宽、背景颜色等。 //定义属性 private var _zx:Number=20;//图形左上方x轴的值 private var _zy:Number=20;//图形左上方Y轴的...

    Flex中Tree组件的数据源举例(xml,array,object)

    在Flex开发中,Tree组件是一种常用的用户界面元素,用于展示层次结构的数据。它通常用于文件系统、组织结构或任何有层级关系的数据展示。本篇将详细介绍如何为Flex中的Tree组件设置不同的数据源,包括XML、Array和...

    flex remoteObject封装后和java通信

    在本文中,我们将深入探讨如何使用Flex中的RemoteObject组件封装后与Java应用程序进行通信。RemoteObject是Adobe Flex框架的一部分,它允许Flex客户端与服务器端的业务逻辑进行交互,通常是通过AMF(Action Message ...

    Flex云状3D导航组件

    在Flex项目中,开发者通常会将组件的核心功能封装在一个类中,这个类名通常与组件的名称一致。开发者可以将这个文件添加到他们的项目中,通过导入并实例化这个类来使用云状导航组件。 总结来说,Flex云状3D导航组件...

    Flex blazeds封装实体

    4. **在Flex中使用实体**:在Flex客户端,我们可以使用 BlazeDS的`mx.rpc.remoting.RemoteObject` 或 `mx.messaging.ChannelSet` 来调用后端服务。通过这些组件,我们可以在Flex应用中声明和使用与后端数据模型对应...

    Flex 效果的封转

    这篇名为"Flex 效果的封装"的博客文章可能探讨了如何在Flex开发中对动画效果进行封装,以便于复用和管理。 描述中提到的"NULL"可能是由于信息缺失,没有给出具体的细节。不过,我们可以根据标题来推测文章的内容。...

    Flex 多文件上传组件

    Flex多文件上传组件是一种在Adobe Flex环境中实现的高级功能,允许用户一次性选择并上传多个文件。这个组件在Web应用程序中非常实用,特别是在处理大量图片、文档或其他类型文件上传的场景下,大大提升了用户体验。 ...

    flex文件上传下载组件

    7. 整合与部署:将Flex组件与Java Servlet整合后,需要打包成WAR文件部署到支持Java EE的Web服务器,如Tomcat、Jetty等。配置Web服务器以正确处理Flex和Servlet之间的通信,确保服务的稳定运行。 综上所述,Flex...

    flex与数据库交互

    在Flex中,HTTPService组件是与服务器进行数据交换的主要工具。开发者可以使用它来发送XML、JSON或其他格式的数据到服务器,并接收响应。以下是一个简单的HTTPService使用的例子: ```actionscript (event)" fault=...

    flex各组件对应的样式属性

    `Panel`组件是Flex中常用的布局容器之一,用于封装其他子组件。它也支持多种样式属性,包括但不限于: 1. **Corner Radius**:定义面板的圆角大小,取值范围为0到280。当值为0时,表示直角;值越大,圆角越明显。 ...

Global site tag (gtag.js) - Google Analytics