四大Flex效果组件用法详解

开发 后端
你对Flex效果的概念是否了解,这列和大家分享一下,由于Flex效果是一种根据时间渐变的过程,因此所有效果都具有duration属性,用来设置播放时间(以毫秒为单位)。

本文和大家重点讨论一下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效果的使用方法:

  1. <mx:Resizeidmx:Resizeid="expand"target="{img}"widthTo="100"heightTo="160"/> 
  2.  
  3. <mx:Resizeidmx:Resizeid="contract"target="{img}"widthTo="25" 
  4. heightTo="40"/> 
  5.  
  6. <mx:ControlBar> 
  7.  
  8. <mx:Buttonlabelmx:Buttonlabel="Expand"click="expand.end();  
  9. expand.play();"/> 
  10.  
  11. <mx:Buttonlabelmx:Buttonlabel="Contract"click="contract.end();contract.play();"/> 
  12.  
  13. </mx:ControlBar> 
  14.  
  15. <mx:Imageidmx:Imageid="img"width="25"height="40"source="assets  
  16. /icon01.png"/> 

另外hideChildrenTargets属性用来隐藏Panel容器的其他子项,当我们对Panel容器中的子项应用Resize效果时,默认情况下Panel会反复计算子项的大小和位置以调整布局,如果将这个属性设为true,可以让Panel容器在播放动画时不做这种计算,直到播放完成,这样可以节约系统资源。

2)Rotate旋转效果

Flex效果中Rotate是一种旋转效果,使组件围绕指定的点旋转。Rotate可以指定旋转中心的坐标(originX和originY属性)及旋转的起始角度(angleFrom属性)和最终角度(angleTo属性)。起始旋转角度的有效值范围是0~360,而最终角度则可以是正值也可以是负值,默认值为360。如果angleTo的值比angleFrom的值小,则目标沿逆时针方向旋转,否则以顺时针方向旋转。代码如下: 

  1. <mx:Rotateidmx:Rotateid="rotate"angleFrom="-45"angleTo="0"target="{img}"  
  2.  
  3. duration="2000"/> 
  4.  
  5. <mx:Imageidmx:Imageid="img"source="assets/plane.png"  
  6. 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 

  1. <?xmlversionxmlversion="1.0"?> 
  2.  
  3. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" 
  4.  
  5. creationCompleteEffect="{mySound}"> 
  6.  
  7. <mx:SoundEffectidmx:SoundEffectid="mySound" 
  8.  
  9. duration="10000" 
  10.  
  11. useDuration="false" 
  12.  
  13. panFrom="-1"panTo="1"  
  14.  
  15. source="@Embed(source='assets/bumperc.mp3')"/> 
  16.  
  17. </mx:Application> 
  18.  

【编辑推荐】

  1. 剖析常见Flex效果组件用法
  2. Flex基础 创建第一个Flex项目
  3. 解析Flex事件执行流程
  4. FlexBuilder3.0与Eclipse3.4的完美结合
  5. 学习笔记 FlexBuilder2.0中如何使用基于Lists的控件 

 

责任编辑:佚名 来源: javaeye.com
相关推荐

2010-08-13 13:31:48

Flex效果组件

2010-08-05 10:16:14

Flex效果

2010-08-05 10:08:06

Flex效果

2010-08-13 13:46:04

Flex效果组件

2010-08-05 10:29:11

Flex效果

2010-08-13 13:39:51

Flex效果组件

2010-09-10 10:10:36

CSS属性

2016-12-09 09:23:50

android组件Service

2010-08-13 14:45:58

Flex4布局

2010-07-19 10:05:07

jQuery

2010-08-17 09:20:28

DIV布局

2010-07-05 11:12:43

常用UML图

2010-09-10 09:22:50

DIV布局

2010-07-14 14:46:57

Perl操作符

2010-08-13 09:21:12

FlexButton组件

2014-03-27 15:34:55

Android组件Activity

2013-01-10 14:21:24

Android开发组件Activities

2010-07-27 14:58:02

Flex ArrayC

2015-07-17 09:50:16

Carthage优劣比较

2010-08-13 09:11:11

LabelFlex
点赞
收藏

51CTO技术栈公众号