`

Flex学习笔记_06 使用行为对象和动画效果_认识行为对象、行为和组件

阅读更多

6.1 认识行为对象

6.1.1 什么是行为对象

行为对象可以看作是触发器(Trigger) 和动画效果(Effect) 的结合体。
触发器和事件并不相同,针对一个事件的触发器,受到事件的制约。事件可以被监听,而触发器不可以。
组件定义了多种触发器,成为本身的一个属性,这些触发器默认没有设置动画效果。
行为对象允许对一个触发器定义多个动画效果,当触发器被激活,这些动画会按某种顺序运行。

6.1.2 创建行为

Move 标签:将target 指定的作用目标 img图片 从xFrom 移动到 xTo 位置,duration 表示持续的时间(单位:毫秒)。
<mx:Move id="myMove" target="{img}" xFrom="50" xTo="150" duration="2000"/>
<mx:Image id="img" x="53" y="53" source="tree.jpg"/>
<mx:Button x="50" y="170" label="移动图片" click="myMove.play()"/>
 

所有动画对象都继承 Effect 对象。抽象类,定义了以下方法来控制动画的播放流程:

  • play(targets:Array = null, playReversedFromEnd:Boolean=false):开始播放,targets:一组目标对象,这将覆盖原来的目标对象。playReversedFromEnd:是否逆向播放。
  • end():停止播放动画
  • pause():暂停动画
  • resume():当暂停时,继续播放
  • reverse():逆向播放动画,如果动画正在播放,则从当前位置开始逆向播放。

我们也可以使用AS来完成行为的创建:
<mx:Script>
        <![CDATA[
            import mx.effects.Move;
   
            private var myMove:Move;           
            internal function initApp():void{
                myMove = new Move();
                myMove.xFrom = 50;
                myMove.xTo = 150;
                myMove.duration = 2000;
                myMove.target = img
            }
        ]]>
    </mx:Script>
   
    <mx:Image id="img" x="53" y="53" source="tree.jpg"/>
    <mx:Button x="50" y="170" label="移动图片" click="myMove.play()"/>
 


6.2 行为和组件

6.2.1 组件的行为和动画效果

UIComponent 是所有组件的父类,定义了组件共有的属性和方法,其中包括行为触发器:
触发器名词
对应的事件名词
事件描述
addedEffect
added
当被添加到容器中时触发
createCompleteEffect
createComplete 当组件完成绘制时触发
removedEffect removed 当组件从容器中删除时触发
focusInEffect focusIn 当组件获得焦点时触发
focusOutEffect focusOut 当组件失去焦点时触发
hideEffect hide 当组件变成不可见时触发
showEffect show 当组件变成可见时触发
mouseDownEffect mouseDown 当鼠标在组件上按下时触发
mouseUpEffect mouseUp 当鼠标在组件上松开时触发
rollOutEffect rollOut 当鼠标在组件上移开时触发
rollOverEffect rollOver 当鼠标移到组件上时触发
moveEffect move 当组件被移动时触发
resizeEffect resize 当组件大小改变时触发

所有的动画效果都是Effcet 类的子类,位于 mx.Effects 包中:

Effect 名称
动画效果描述
AnimateProperty
针对组件的一个以数字计算的属性,比如长度,
按给定的起始值逐渐改变属性的大小。
Blur
模糊效果。可以让组件变得模糊,核心由 BlurFilter 滤镜完成。
当对组件使用了该效果,不可再使用 Blur 滤镜和其他模糊效果。
Fade
淡入淡出效果。
注意:当目标对象中包括文字时,必须使用嵌入字体。
Dissolve
溶解效果,主要是在目标对象上增加覆盖层,改变覆盖层的透明度,达到让目标消失或出现的效果。
和 Fade 效果相比,它可以设置覆盖层的颜色。
注意:当目标对象中包括文字时,必须使用嵌入字体。
Glow
发光效果,使用了GlowFilter 滤镜。
当对组件使用了该效果,不可再使用GlowFilter 滤镜和其他发光效果。
Iris
彩虹效果,组件以矩形方式,从中心放大或缩小到中心。
属于遮罩效果。
Move
移动效果,移动组件的坐标,只有当组件位于支持绝对定位的容器中时才有效。
Pause
停止,什么都不改变,没有动画。
一般用于复合动画效果中,用来分割前后两个动画。
Resize
尺寸调整效果,改变组件的长和宽。
当改变组件的长和宽时,处于同一个容器的其他组件的大小也可能会相应改变,如果该容器使用了绝对定位则不会发生这种情况。
Rotate
旋转效果。
SoundEffect
注意:当目标对象中包括文字时,必须使用嵌入字体。
WipeLeft
WipeRight
WipeUp
WipeDown
擦除效果,属于遮罩效果。
对应不同方向。
Zoom
放缩效果,以组件为中心进行放缩。


6.2.2 为组件添加行为--监听动画的执行

<mx:Iris id= "myIris" effectStart="effectStartHandler()" effectEnd="effectEndHandler()" />
effectStart 和 effectEnd 是动画效果共有的事件,分别在动画的开始和结束时被激发。

<mx:WipeRight id= "myWipe2" repeatCount="2" repeatDelay="500"/>
repeatCount 和 repeatDelay 也是共有属性,分别表示动画播放的次数和每次都间隔时间

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
     creationComplete="initApp()">   
    <mx:Style source="style.css" />   
    <mx:Script>
        <![CDATA[           
            internal function effectStartHandler():void{
                tip_txt.text = "提示信息:动画开始了";
            }
            internal function effectEndHandler():void{
                tip_txt.text = "提示信息:动画结束了";
            }
        ]]>
    </mx:Script>
    <mx:ApplicationControlBar dock="true">
        <mx:Label id="tip_txt" text="提示信息:" width="219" styleName="label"/>
    </mx:ApplicationControlBar>
   
    <mx:Iris id= "myIris" effectStart="effectStartHandler()" effectEnd="effectEndHandler()" />
    <mx:WipeLeft id= "myWipe" />
    <mx:WipeRight id= "myWipe2" repeatCount="2" repeatDelay="500"/>
   
    <mx:Image id="image" x="35" y="43" source="tree.jpg" showEffect="myIris" hideEffect="myIris"/>
    <mx:Image id="image2" x="170" y="43" source="tree.jpg" showEffect="myWipe" hideEffect="myWipe2"/>
    <mx:Button label="改变图片"  x="37" y="153" click="image.visible = image2.visible= !image.visible"/>
   
</mx:Application>
 


可以通过CSS样式来设定组件的行为:

<mx:Style>
        .image{
            showEffect:    myIris;
            hideEffect:    myIris;
        }
        .image2{
            showEffect:    myWipe2;
            hideEffect:    myWipe;
        }
    </mx:Style>

<mx:Image id="image" x="35" y="43" source="tree.jpg" styleName="image"/>
<mx:Image id="image2" x="170" y="43" source="tree.jpg" styleName="image2"/>
 


或者通过setStyle 来设置样式:

<mx:Script>
        <![CDATA[
             internal function initApp():void{
                image.setStyle("showEffect",myIris);
                image.setStyle("hideEffect",myIris);
                image2.setStyle("showEffect",myWipe2);
                image2.setStyle("hideEffect",myWipe);
            }
        ]]>
</mx:Script>

<mx:Image id="image" x="35" y="43" source="tree.jpg“/>
<mx:Image id="image2" x="170" y="43" source="tree.jpg"/>
 

 

分享到:
评论

相关推荐

    flex学习笔记 flex学习总结 flex学习教程

    本教程是作者精心编写的Flex学习资料,适合初学者入门,通过图文并茂的方式,帮助读者快速掌握Flex的基本概念和核心技能。 1. **Flex基础**:Flex提供了MXML和ActionScript两种编程方式。MXML是一种声明式语言,...

    Flex新手教程_入门级学习笔记

    ### Flex新手教程_入门级学习笔记 #### ActionScript核心概念 **ActionScript(简称AS)** 是一种面向对象的编程语言,主要用于开发Flex应用程序。掌握AS的基础知识对于学习Flex至关重要。 ##### 类和对象 (Class...

    Flex学习笔记.rar

    本压缩包“Flex学习笔记.rar”显然是一份针对初学者的教程资料,旨在帮助新接触Flex的开发者快速上手。 在“FlexBeginner.pdf”这份文档中,你可以期待找到以下关键知识点: 1. **Flex概述**:介绍Flex技术的基本...

    Flex学习笔记

    这篇“Flex学习笔记”可能是作者在深入研究Flex技术过程中整理的心得体会和实践案例,结合了《Flex3权威指南》这本书的内容。 在Flex中,ActionScript是核心编程语言,它是基于ECMAScript的一个版本,专门针对富...

    flex + java 初学者 笔记 学习资料

    本文档是针对Flex和Java初学者的学习笔记,涵盖了Flex中的基础组件、文本处理、样式设计、行为对象以及动画效果。 一、Flex基础组件 1. Button:按钮组件,可以设置文字和图标,图标通过`icon="@Embed('图片路径')...

    Away3D_4.1+Flex4.7学习笔记+案例

    本学习笔记和案例旨在帮助开发者掌握Away3D 4.1与Flex4.7结合下的3D开发技巧,通过深入理解基本的3D缓动动画,开发者能够创建出更具互动性和吸引力的3D应用程序。同时,通过实践案例,可以更好地掌握3D对象动画的...

    Flex学习笔记,入门材料

    ### Flex学习笔记:ActionScript与Flex开发入门 #### 1. ActionScript核心概念 ##### 1.1 类和对象(Class and Object) 类是对象的模板,定义了一组具有相同特性和行为的对象的共同属性和方法。在ActionScript中...

    Flex学习笔记.doc

    Flex学习笔记概述 Flex是一种由Adobe开发的企业级富互联网应用(RIA)的表示层解决方案,其主要目的是提供高度交互和动态的用户体验。Flex的核心在于它的编程语言MXML和ActionScript(AS),这两种语言结合在一起,...

    Flex学习笔记-由浅入深

    Flex是Adobe公司推出的一种用于构建富互联网...随着对Flex的深入学习,开发者将掌握更多高级特性,如数据绑定、动画效果、组件自定义以及与后端服务器的深度集成等,从而能够创建出更复杂、功能丰富的富互联网应用。

    flex actionscript学习笔记

    Flex ActionScript 学习笔记是关于使用Adobe Flex技术并结合ActionScript 3.0进行开发的知识总结。ActionScript 3.0是随着Flash CS3一起推出的一种强大的编程语言,相较于之前的ActionScript版本,它有着显著的提升...

    flex学习笔记

    ### Flex 学习笔记知识点详解 #### 一、Flex 技术概述 - **定义**:Flex 是一种用于构建和部署跨浏览器、跨平台的丰富互联网应用程序 (RIA) 的开源框架。 - **特点**: - 强大的 UI 构建能力:允许开发者创建高度...

    FLEX学习笔记

    标题 "FLEX学习笔记" 暗示了我们即将探讨的是Adobe Flex的相关知识,这是一个用于构建富互联网应用程序(RIA)的开源框架。Flex基于ActionScript和MXML,它允许开发者创建交互性强、功能丰富的Web应用。 描述中提到...

    flex4.5学习笔记

    ### Flex4.5学习笔记知识点总结 #### 一、Flex基础——布局 **知识点1:Flex布局** - **垂直布局** (`s:VerticalLayout`): 控件垂直排列。 - **水平布局** (`s:HorizontalLayout`): 控件水平排列。 - **平铺布局**...

    《Flex企业应用开发实战》学习笔记之Flex企业应用开发基础[收集].pdf

    《Flex企业应用开发实战》的学习笔记主要探讨了Flex在企业应用开发中的基础知识,包括MXML语言、客户端状态保持、客户端MVC模式以及数据绑定技术。 2.1 MXML语言是Flex应用开发的核心部分,它是一种XML标记语言,与...

    flex学习资源和DEMO例子

    本资源包"flex学习资源和DEMO例子"是针对Flex学习者准备的,包含了一些经过测试的实例,有助于学习者更好地理解和掌握Flex编程。 1. **Flex SDK**:Flex SDK是开发Flex应用的基础,它包含了编译Flex应用所需的工具...

    flex学习小记录

    开发者通常会创建测试项目来实验和演示特定功能或技术,例如Flex组件的使用,动画效果的实现,或者数据集成的案例。 3. **test-web** - 这可能是与Web相关的测试项目,可能涉及Flex与Web服务的交互,比如AJAX通信,...

    Flex企业应用开发实战

    2. **MXML和ActionScript**:MXML是Flex的主要标记语言,用于定义UI组件和布局,而ActionScript是面向对象的编程语言,用于实现应用逻辑和交互。两者结合使用,可以实现视觉元素和动态行为的分离。 3. **Flex组件...

    flex开发入门资料

    在学习ActionScript时,你需要了解基本的数据类型、类和对象的概念,以及如何使用事件处理和时间线控制来实现动态行为。 Flex SDK提供了MXML和ActionScript两种编程方式。MXML是一种标记语言,允许开发者以声明式的...

Global site tag (gtag.js) - Google Analytics