`
strugglesMen
  • 浏览: 111750 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

Flex特效使用大全之触发器

    博客分类:
  • Flex
 
阅读更多

本文和大家重点讨论一下Flex特效,Flex的行为机制使得开发者可以很方便地为应用程序添加动画效果,从而使用户界面更加丰富多彩。本文将介绍如何在Flex应用程序中创建行为及动画效果。

Flex特效讲解

Flex的行为机制使得开发者可以很方便地为应用程序添加动画效果,从而使用户界面更加丰富多彩。本章将介绍如何在Flex应用程序中创建行为及动画效果。

1.什么是Flex行为

Flex中的行为(Behavior)是由触发器(Trigger)和效果(Effect)组合而成。当用户在界面中进行某项操作时,如单击某个按钮,触发器会被激活,从而使目标组件发生某些视觉或听觉上的变化,例如播放一段逐渐显示的动画或发出声响等。触发器可以由用户操作触发,也可以由程序触发,一个触发器可以对应多个效果。

1.1触发器与效果

触发器的使用非常简单,可以作为MXML标记中的一个属性,也可以在<mx:Style>标记中调用,或者在ActionScript中用setStyle()和getStyle()方法调用。触发器的名称为triggerEvent名称+“Effect”后缀。按照这种名称约定,mouseDown事件的触发器名称为mouseDownEffect。Flex中提供的触发器名称包括以下几种。

laddedEffect:当组件添加到容器中时触发。

lcreationCompleteEffect:组件创建完毕时触发。

lfocusInEffect:组件获得焦点时触发。

lfocusOutEffect:组件失去焦点时触发。

lhideEffect:当组件的visible属性更改为false时触发。

lmouseDownEffect:按下鼠标时触发。

lmouseUpEffect:释放鼠标时触发。

lmoveEffect:组件移动时触发。

lremovedEffect:组件被移除时触发。

lresizeEffect:组件改变大小时触发。

lrollOutEffect:鼠标从组件上移开时触发。

lrollOverEffect:鼠标移动到组件上时触发。

lshowEffect:组件的visible属性更改为true时触发。

Flex的动画效果由一个工厂类(Factory)和一个实例类(Instance)构成。工厂类用来处理事件、控制动画,它的名称就是效果的名称,如Zoom。通常我们在应用程序中创建一个工厂类的实例,设置必要的参数,然后将该实例与触发器关联。实例类则用来实现动画效果,当触发器被触发或调用play()方法时,工厂类创建一个实例类的实例来播放所需效果,执行结束后,该实例会被销毁,如果一个效果对应多个目标对象,每一个目标对象都会有一个自己的实例。实例类的命名规则为效果名+Instance。如之前定义的工厂类名为Zoom,那么实例类名就是ZoomInstance。Effect的这种机制,是设计模式中工厂模式的一种应用,效果执行的时候,运行的不是Zoom,而是ZoomInstance。

下面的图9-1分别表现了工厂类和实例类的层级关系。Effect类是一个抽象基类,是定义所有效果的基本工厂类。EffectInstance类是定义所有效果实例子类的基类。在应用程序中不会创建Effect类本身的实例,而是创建一个子类的实例,如Mask或Tween。

图9-1工厂类与实例类

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics