本文和大家重点讨论一下Flex效果组件的用法,Flex中提供了丰富的效果组件,如果希望在触发器被触发后,延迟一段时间调用Flex效果,可以使用startDelay属性。
Flex效果组件
Flex中提供了丰富的效果组件。由于Flex效果是一种根据时间渐变的过程,因此所有效果都具有duration属性,用来设置播放时间(以毫秒为单位)。也可以通过设置repeatCount属性和repeatDelay属性,来分别控制效果播放的次数和重复播放效果的时间间隔(以毫秒为单位)。如果希望在触发器被触发后,延迟一段时间调用Flex效果,可以使用startDelay属性。
1)Resize大小调整效果
Flex效果中Resize效果用来改变组件的大小。与Move效果相似,Resize效果可以指定初始大小(widthFrom、heightFrom)、目标大小(widthTo、heightTo)和变化量(widthBy、heightBy),其使用规则也与Move效果的初始位置、目标位置和移动量的使用规则相似。下面的代码演示了Resize效果的使用方法:
- <mx:Resizeidmx:Resizeid="expand"target="{img}"widthTo="100"heightTo="160"/>
- <mx:Resizeidmx:Resizeid="contract"target="{img}"widthTo="25"
- heightTo="40"/>
- <mx:ControlBar>
- <mx:Buttonlabelmx:Buttonlabel="Expand"click="expand.end();
- expand.play();"/>
- <mx:Buttonlabelmx:Buttonlabel="Contract"click="contract.end();contract.play();"/>
- </mx:ControlBar>
- <mx:Imageidmx:Imageid="img"width="25"height="40"source="assets
- /icon01.png"/>
另外hideChildrenTargets属性用来隐藏Panel容器的其他子项,当我们对Panel容器中的子项应用Resize效果时,默认情况下Panel会反复计算子项的大小和位置以调整布局,如果将这个属性设为true,可以让Panel容器在播放动画时不做这种计算,直到播放完成,这样可以节约系统资源。
2)Rotate旋转效果
Flex效果中Rotate是一种旋转效果,使组件围绕指定的点旋转。Rotate可以指定旋转中心的坐标(originX和originY属性)及旋转的起始角度(angleFrom属性)和最终角度(angleTo属性)。起始旋转角度的有效值范围是0~360,而最终角度则可以是正值也可以是负值,默认值为360。如果angleTo的值比angleFrom的值小,则目标沿逆时针方向旋转,否则以顺时针方向旋转。代码如下:
- <mx:Rotateidmx:Rotateid="rotate"angleFrom="-45"angleTo="0"target="{img}"
- duration="2000"/>
- <mx:Imageidmx:Imageid="img"source="assets/plane.png"
- addedEffect="rotate"/>
另外有时需要设置hideFocusRing属性,以确定在开始播放效果时,效果是否应隐藏对焦环。该属性默认值为true。对于组件而言,对焦环已经被自动隐藏。如果Rotate效果应用于那些不是以UIComponent为基类目标对象,就必须隐藏对焦环。
需要注意的是,hideFocusRing属性在以Effect为基类的效果类中,默认值为false,而在以MaskEffect为基类效果类中,默认值为true。
3)SoundEffect声音效果
Flex效果中SoundEffect效果用来播放MP3音频文件。我们可以通过source属性指定要播放的MP3文件,可以直接设置该文件的URL,或是由Embed关键字嵌入MP3文件的Class对象。
SoundEffect效果的属性包括以下几个。
lautoLoad属性用来设置是否自动加载MP3文件,默认值为true。
lbufferTime属性用来设置声音对象的缓冲时间。默认值为1000,单位为毫秒。
lisLoading如果已加载MP3,则该属性为true。
lloops属性用来设置循环次数,默认值为0。
lpanEasingFunction属性用来设置声音均衡效果的缓动函数。
lpanFrom属性和panTo属性用来设置声音对象的起始和最终平移,取值范围在-1.0~1.0之间,其中-1.0表示仅使用左声道,1.0表示仅使用右声道,而0.0表示在2个声道间平均地均衡声音。
lsound属性表示已加载MP3文件的声音对象。
lsource属性表示要播放的MP3文件的URL或类。
lstartTime属性用来设置开始播放时间(以毫秒为单位),默认值为0。
luseDuration属性表示是否根据duration属性指定的时间停止播放,如果为false,则会在MP3完成播放或循环后停止效果,默认值为true。
lvolumeEasingFunction属性用来设置音量效果的缓动函数。
lvolumeFrom属性和volumeTo属性用来设置声音对象的初始和最终音量,取值范围在0.0~1.0之间,默认值为1。
在下面的代码所示的例子中,当应用程序创建完成后开始播放声音文件,声音从左声道过渡到右声道。
代码清单SoundSample.mxml
- <?xmlversionxmlversion="1.0"?>
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"
- creationCompleteEffect="{mySound}">
- <mx:SoundEffectidmx:SoundEffectid="mySound"
- duration="10000"
- useDuration="false"
- panFrom="-1"panTo="1"
- source="@Embed(source='assets/bumperc.mp3')"/>
- </mx:Application>
【编辑推荐】
- 剖析常见Flex效果组件用法
- Flex基础 创建第一个Flex项目
- 解析Flex事件执行流程
- FlexBuilder3.0与Eclipse3.4的完美结合
- 学习笔记 FlexBuilder2.0中如何使用基于Lists的控件