包 | mx.core |
类 | public class SoundAsset |
继承 | SoundAsset Sound EventDispatcher Object |
实现 | IFlexAsset |
可以嵌入 MP3 文件格式的声音。您还可以嵌入由 Flash 生成的 SWF 文件中的声音符号。在这两种情况下,MXML 编译器自动生成可扩展 SoundAsset 以代表嵌入的声音数据的类。
编写 Flex 应用程序时,您通常不必直接使用 SoundAsset 类。例如,通过编写以下代码即可嵌入 MP3 文件,然后在 SoundEffect 中使用该文件:
<mx:SoundEffect id="beep" source="@Embed(source='Beep.mp3')"/>
不必了解 MXML 编译器已为您创建了 SoundAsset 的子类。
不过,了解在 ActionScript 级别发生的操作可能会有用。要在 ActionScript 中嵌入位图,请声明类型为 Class 的变量,并为其指定 [Embed]
元数据。例如,您可以通过以下方式嵌入 MP3 文件:
[Bindable] [Embed(source="Beep.mp3")] private var beepClass:Class;
MXML 编译器识别出 .mp3 扩展名,将 MP3 数据转码为播放器使用的声音格式,自动生成 SoundAsset 类的子类,并将您的变量设置为对此自动生成类的引用。然后,您可以使用此类引用通过 new
运算符创建 SoundAsset 实例,还可以在这些实例上使用 Sound 类的 API:
var beepSound:SoundAsset = SoundAsset(new beepClass()); beepSound.play();
但是,您很少需要自己创建 SoundAsset 实例,因为可以直接将 sound-related 属性和样式设置为 sound-producing 类,之后组件将根据需要创建声音实例。例如,要使用 SoundEffect 播放此声音,则可以将 SoundEffect 的 source
属性设置为 beepClass
。在 MXML 中,您可以按照以下方法执行此操作:
<mx:SoundEffect id="beepEffect" source="{beepClass}"/>
方法 | 定义方 | ||
---|---|---|---|
构造函数。 | SoundAsset | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
关闭该流,从而停止所有数据的下载。 | Sound | ||
将事件调度到事件流中。 | EventDispatcher | ||
从 Sound 对象提取原始声音数据。 | Sound | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
启动从指定 URL 加载外部 MP3 文件的过程。 | Sound | ||
生成一个新的 SoundChannel 对象来回放该声音。 | Sound | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher |
SoundAsset | () | 构造函数 |
public function SoundAsset()
构造函数。