mx.effects
public class SoundEffect
继承SoundEffect Inheritance Effect Inheritance EventDispatcher Inheritance Object

SoundEffect 类用于播放 MP3 音频文件。例如,可以设置在用户单击 Button 控件时播放一种声音。此效果允许您重复播放声音、选择源文件以及控制音量和平移。

可以使用 source 属性指定 MP3 文件。如果已使用 Embed 关键字嵌入 MP3 文件,即可将 MP3 文件的 Class 对象传递给 source 属性。否则,为 MP3 文件指定完整的 URL。

MXML 语法expanded隐藏 MXML 语法

The <mx:SoundEffect> tag inherits all of the tag attributes of its superclass, and adds the following tag attributes:

  <mx:SoundEffect
    Properties
    id="ID"
    autoLoad="true|false"
    bufferTime="1000"
    loops="0"
    panEasingFunction=""
    panFrom="0"
    source=""
    startTime="0"
    useDuration="true|false"
    volumeEasingFunction="true|false"
    volumeTo="1"
     
    Events
    complete="No default"
    id3="No default"
    ioError="No default"
    progress="No default"
  />
  

查看示例

另请参见

mx.effects.effectClasses.SoundEffectInstance
flash.media.Sound


公共属性
 属性定义方
  autoLoad : Boolean
如果为 true,则在指定 source 时加载 MP3 文件。
SoundEffect
  bufferTime : Number = 1000
SoundEffect 类使用内部 Sound 对象来控制 MP3 文件。
SoundEffect
 InheritedclassName : String
[只读 (read-only)] 效果类的名称,如“Fade”。
Effect
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 InheritedcustomFilter : EffectTargetFilter
指定一个 EffectTargetFilter 类型的自定义滤镜对象,效果将使用此对象来确定播放效果的目标。
Effect
 Inheritedduration : Number
效果的持续时间(以毫秒为单位)。
Effect
 InheritedeffectTargetHost : IEffectTargetHost
一个属性,您可以通过设置此属性访问数据效果基于列表的目标控件。
Effect
 Inheritedfilter : String
指定用于过滤效果目标的算法。
Effect
 InheritedhideFocusRing : Boolean
确定在开始播放效果时,效果是否应隐藏对焦环。
Effect
 InheritedinstanceClass : Class
一个 Class 类型的对象,用于指定此效果类的效果实例类。
Effect
  isLoading : Boolean
[只读 (read-only)] 如果已加载 MP3,则此属性为 true。
SoundEffect
 InheritedisPlaying : Boolean
[只读 (read-only)] 一个只读标志,如果当前正在播放效果的任一实例,则为 true;否则,则为 false。
Effect
  loops : int = 0
循环模式下播放该声音的次数,其中值 0 表示此效果播放一次,值 1 表示此效果播放两次,依此类推。
SoundEffect
  panEasingFunction : Function
均衡效果的缓动函数。
SoundEffect
  panFrom : Number
Sound 对象的初始平移。
SoundEffect
  panTo : Number
Sound 对象的最终平移。
SoundEffect
 InheritedperElementOffset : Number
在效果的第一个目标之后,其它效果目标的附加延迟(以毫秒为单位)。
Effect
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
 InheritedrelevantProperties : Array
一个属性名称 Array,执行过滤时将使用这些名称。
Effect
 InheritedrelevantStyles : Array
一个样式名称 Array,执行过滤时将使用这些名称。
Effect
 InheritedrepeatCount : int = 1
效果的重复次数。
Effect
 InheritedrepeatDelay : int = 0
重复播放效果前需要等待的时间(以毫秒为单位)。
Effect
  sound : Sound
[只读 (read-only)] 已加载 MP3 文件的 Sound 对象。
SoundEffect
  source : Object
要播放的 MP3 文件的 URL 或类。
SoundEffect
 InheritedstartDelay : int = 0
开始播放效果前需要等待的时间(以毫秒为单位)。
Effect
  startTime : Number = 0
MP3 文件中的初始位置(以毫秒为单位),应在此位置开始回放。
SoundEffect
 InheritedsuspendBackgroundProcessing : Boolean = false
如果为 true,则在播放效果时阻止所有背景处理。
Effect
 Inheritedtarget : Object
要应用此效果的 UIComponent 对象。
Effect
 Inheritedtargets : Array
一个 UIComponent 对象 Array,这些对象都是效果的目标。
Effect
 InheritedtriggerEvent : Event
如果触发了某个效果,则此项目是由 EffectManager 传递给此 Effect 的 Event 对象;如果 EffectManager 当前没有播放此效果,则为 null。
Effect
  useDuration : Boolean = true
如果为 true,则会在 duration 属性中指定的时间过后停止效果。
SoundEffect
  volumeEasingFunction : Function
音量效果的缓动函数。
SoundEffect
  volumeFrom : Number
Sound 对象的初始音量。
SoundEffect
  volumeTo : Number
Sound 对象的最终音量。
SoundEffect
受保护的属性
 属性定义方
 InheritedendValuesCaptured : Boolean = false
一个标志,如果已确定效果的结束值,则该标志中包含 true;如果需要在效果运行时从效果目标的当前属性捕获这些值,则其中包含 false。
Effect
公共方法
 方法定义方
  
SoundEffect(target:Object = null)
构造函数。
SoundEffect
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
捕获效果目标上相关属性的当前值,并将这些值另存为结束值。
Effect
 Inherited
捕获另一组目标相关属性的当前值。在运行数据更改效果时,此函数由 Flex 使用。
Effect
 Inherited
捕获效果目标上相关属性的当前值。
Effect
 Inherited
创建一个效果实例并对其进行初始化。
Effect
 Inherited
createInstances(targets:Array = null):Array
获取一个目标对象 Array,并对每个目标调用 createInstance() 方法。
Effect
 Inherited
删除实例中的事件侦听器,然后从实例列表中删除该实例。
Effect
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
end(effectInstance:IEffectInstance = null):void
中断当前正在播放的效果,立即跳转到该效果的末尾。
Effect
 Inherited
返回一个字符串 Array,其中每个 String 都是被此效果更改的属性名称。
Effect
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
如果 source 属性指向 URL,则加载 MP3。
SoundEffect
 Inherited
暂停效果,直到调用 resume() 方法。
Effect
 Inherited
play(targets:Array = null, playReversedFromEnd:Boolean = false):Array
开始播放效果。
Effect
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
在效果由 pause() 方法暂停后继续播放效果。
Effect
 Inherited
逆序播放效果;如果当前正在播放效果,则从该效果的当前位置开始逆序播放。
Effect
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
停止播放效果,使效果目标保持当前状态。
Effect
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
受保护的方法
 方法定义方
 Inherited
applyValueToTarget(target:Object, property:String, value:*, props:Object):void
供 Effect 基础结构内部使用。
Effect
 Inherited
当效果实例完成播放时调用。
Effect
 Inherited
当效果实例开始播放时调用此方法。
Effect
 Inherited
filterInstance(propChanges:Array, target:Object):Boolean
确定筛选效果实例所用的逻辑。
Effect
 Inherited
getValueFromTarget(target:Object, property:String):*
由 captureStartValues() 方法调用,用来从目标获得某个属性的值。
Effect
 Inherited
将效果的属性复制到效果实例。
Effect
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  当声音文件完成加载时调度。SoundEffect
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
 Inherited当效果完成播放时(既可以是效果实际完成播放时,也可以是通过调用 end() 方法中断效果时)调度。Effect
 Inherited当效果开始播放时调度。Effect
  当 ID3 数据可用于 MP3 声音文件时调度。SoundEffect
  在加载声音文件期间发生错误时调度。SoundEffect
  加载声音文件时定期调度。SoundEffect
属性详细信息
autoLoad属性
autoLoad:Boolean  [读写]

如果为 true,则在指定 source 时加载 MP3 文件。

默认值为 true.



实现
    public function get autoLoad():Boolean
    public function set autoLoad(value:Boolean):void
bufferTime属性 
public var bufferTime:Number = 1000

SoundEffect 类使用内部 Sound 对象来控制 MP3 文件。此属性指定声音数据应在 Sound 对象的缓冲区中存储的最短时间(以毫秒为单位)。在开始回放以及在网络中断后继续回放之前,Sound 对象将一直等待,直至至少拥有这一数量的数据为止。

默认值为 1000.

isLoading属性 
isLoading:Boolean  [只读 (read-only)]

如果已加载 MP3,则此属性为 true



实现
    public function get isLoading():Boolean
loops属性 
public var loops:int = 0

循环模式下播放该声音的次数,其中值 0 表示此效果播放一次,值 1 表示此效果播放两次,依此类推。如果要重复播放 MP3 文件,也是使用 useDuration 属性的设置来确定回放时间。

duration 属性的优先级高于此属性的优先级。如果效果的持续时间短于播放一次声音所需的时间,则声音将不循环。

默认值为 0.

panEasingFunction属性 
public var panEasingFunction:Function

均衡效果的缓动函数。使用此函数可在 panFrompanTo 的值之间进行插补。

panFrom属性 
public var panFrom:Number

Sound 对象的初始平移。此值介于 -1.0 和 1.0 之间,其中 -1.0 表示仅使用左声道,1.0 表示仅使用右声道,而 0.0 表示在两个声道间平均地均衡声音。

默认值为 0.0.

panTo属性 
public var panTo:Number

Sound 对象的最终平移。此值介于 -1.0 和 1.0 之间,其中 -1.0 表示仅使用左声道,1.0 表示仅使用右声道,而 0.0 表示在两个声道间平均地均衡声音。

默认值为 0.0.

sound属性 
sound:Sound  [只读 (read-only)]

已加载 MP3 文件的 Sound 对象。



实现
    public function get sound():Sound
source属性 
source:Object  [读写]

要播放的 MP3 文件的 URL 或类。如果已使用 Embed 关键字嵌入 MP3 文件,即可将 MP3 文件的 Class 对象传递给 source 属性。否则,为 MP3 文件指定完整的 URL。



实现
    public function get source():Object
    public function set source(value:Object):void
startTime属性 
public var startTime:Number = 0

MP3 文件中的初始位置(以毫秒为单位),应在此位置开始回放。

默认值为 0.

useDuration属性 
public var useDuration:Boolean = true

如果为 true,则会在 duration 属性中指定的时间过后停止效果。如果为 false,则会在 MP3 完成播放或循环后停止效果。

默认值为 true.

volumeEasingFunction属性 
public var volumeEasingFunction:Function

音量效果的缓动函数。此函数用于在 volumeFromvolumeTo 的值之间进行插补。

volumeFrom属性 
public var volumeFrom:Number

Sound 对象的初始音量。此值介于 0.0 和 1.0 之间。

默认值为 1.

volumeTo属性 
public var volumeTo:Number

Sound 对象的最终音量。此值介于 0.0 和 1.0 之间。

默认值为 1.

构造函数详细信息
SoundEffect()构造函数
public function SoundEffect(target:Object = null)

构造函数。

参数
target:Object (default = null) — 要使用此效果为其设置动画的 Object。
方法详细信息
load()方法
public function load():void

如果 source 属性指向 URL,则加载 MP3。

事件详细信息
complete 事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.COMPLETE

当声音文件完成加载时调度。

Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 已完成加载的网络对象。
id3 事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.ID3

当 ID3 数据可用于 MP3 声音文件时调度。

Event.ID3 常量定义 id3 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 加载 MP3 的 Sound 对象,ID3 数据现在可用于此对象。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。
ioError 事件  
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

在加载声音文件期间发生错误时调度。

定义 ioError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
errorID 与特定错误关联的引用编号(仅限 AIR)。
target 发生输入/输出错误的网络对象。
text 要显示为错误消息的文本。
progress 事件  
事件对象类型: flash.events.ProgressEvent
属性 ProgressEvent.type = flash.events.ProgressEvent.PROGRESS

加载声音文件时定期调度。

在事件对象内部,您可以访问当前已加载的字节数和要加载的总字节数。不保证一定会调度此事件,这意味着可能在未调度任何 progress 事件的情况下调度 complete 事件。

定义 progress 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
bytesLoaded 在侦听器处理事件时加载的项数或字节数。
bytesTotal 如果加载进程成功,最终将加载的项目或字节总数。
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 报告进度的 对象。
示例 如何使用示例
SoundEffectExample.mxml
<?xml version="1.0"?>
<!-- Simple example to demonstrate the SoundEffect effect. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:SoundEffect id="mySounds" source="@Embed(source='assets/jazz.mp3')"/>

    <mx:Panel title="Sound Effect Example" width="75%" height="75%" 
        paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">

        <mx:Label width="100%" color="blue" 
            text="Click on the phone to hear the sound effect."/>

        <mx:Image id="flex" source="@Embed(source='assets/Nokia_6630.png')" 
            mouseDownEffect="{mySounds}"/>

    </mx:Panel>
</mx:Application>