欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flash组件教程:组件动画效果的修改

程序员文章站 2023-11-03 21:17:34
某些组件在用户的操作过程中,会出现一些很酷的动画效果。比如,使用TREE制作下拉菜单,或者ComboBox制作下拉菜单时,下拉列表很酷的滑出来。这种效果,主要是借助Tween类或者easing... 08-10-06...
某些组件在用户的操作过程中,会出现一些很酷的动画效果。比如,使用tree制作下拉菜单,或者combobox制作下拉菜单时,下拉列表很酷的滑出来。这种效果,主要是借助tween类或者easing类完成的。一般的效果分为三类:
a、open:使用组件打开子部分动画效果时,这类效果支持的组件包括:combobox、accordion、tree;
b、popup:使用组件弹出子部分动画效果时,支持组件menubar;
c、selection:当组件里的项目被选中中,出现一些颜色标示动画效果,支持组件:combobox、datagrid、list、tree。

对组件动画效果的修改也分为三类:全局修改、组件类修改、实例化修改。(随后有详细介绍)

[heart] 关于open类动画效果,可有两个属性:
一、openduration:动画持续时间,单位为毫秒,数值越小,动画越快。
二、openeasing:动画效果类,使用mx.transition.easing包里的类,包括back、bounce、elastic、none、regular、strong,这些动画效果要配合tween类,以及淡出淡入函数来实现。

[heart] 修改弹出类动画效果(popup),只有一个属性:
poputduration:动画持续时间,与openeasing相同。因为这类效果一般只支持menubar组件。所以只有下拉菜单的时候。弹出时间的长短这一属性。大家一定要记住哦。
[heart] 修改选择颜色标示(selection)类动画效果,可以有以下两个属性:
selectionduration:动画持续时间,跟openeasing相同;
selectioneasing:动画效果类,与openeasing相同。
例如:修改combobox组件下拉列表会修改动画效果,动画效果在1秒内完成:
_global.styles.combobox.setstyles("openduration",1000)
//设置打开类动画效果
_global.styles.combobox.setstyles("openeasing",mx.transitions.easing.elastic.easeout);

当然,这上面的后面一段,可能有些复杂。对吧。下面就来简化一下:
import mx.transitions.easing.*;
_global.styles.combobox.setstyles("openduration",1000);
_global.sytles.combobox.setstyles("openeasing",elastic.easeout);

下面,再举一个修改list组件颜色标示动画效果:
import mx.transitions.easing.*;
_global.styles.scrollselectlist.setstyle("selectiondruation",1000);
_global.styles.scrollselectlist.setstyle("selectioneasing",elastic.easeout)
备注:combobox、datagrid、list、menubar里的menu和tree组件都是继承scrooselectlist类,所以,如果要改变颜色标示动画效果。就需要直接修改scrooselectlist的样式。不过,如果fla里同时有几个这类的组件。全部都会受到影响的。如果只想修改list组件,就要利用组件类修改的方法。大家如果对easing类不太熟悉。下面举一个例子:



easing 包提供了的六个用于控制缓动的类:
back 一次在一端或两端扩展到过渡范围之外以提供轻微的溢出效果。
bounce 完全在过渡范围的一端或两端内提供弹跳效果。弹跳次数与持续时间有关:持续时间越长,弹跳次数越多。
elastic 提供一端或两端超出过渡范围的弹性效果。弹性量不受持续时间影响。
none 提供从开始到结尾的无任何减速或加速效果的相同的运动。该过渡通常也称为线性过渡。
regular 在加速效果、减速效果或这两种效果的一端或两端提供更慢的运动。
strong 在一端或两端提供很慢的运动。此效果类似于 regular,但更为显著。

easing 包的三个缓动方法:
easein 在过渡的开始提供缓动效果。
easeout 在过渡的结尾提供缓动效果。
easeinout 在过渡的开始和结尾提供缓动效果。

先来看看open这种动画效果演示:



下面看看代码:
//导入easing类
import mx.transitions.easing.*;
//设置全局组件样式
_global.styles.combobox.setstyle("openduration", 2000);
_global.styles.combobox.setstyle("openeasing", elastic.easeout);
//设置个别组件样式
my_combobox1.setstyle("openduration", 250);
//取消my_combobox1的动画效果
my_combobox1.setstyle("openeasing", null);
这里,就用到了全局定义,以及局定义。也就是实例修改。实例修改的时候。只需要单独将需要设置样式的组件赋加上函数。

如上面所示,实例修改的语法:
组件实例.setstyle("属性",参数)
example:
import mx.transitions.easing.*;
my_combobox.setstyle("openeasing",elastic.easeout)

大家有不明白的地方,可以留言。呵呵...写得比较简单,大家将就着看哟...