包 | flash.media |
类 | public class SoundLoaderContext |
继承 | SoundLoaderContext Object |
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
load()
方法。
使用此类时,请考虑 Flash ® Player 安全模型:
Sound.id3
属性以及 SoundMixer.computeSpectrum()
、SoundMixer.bufferTime
和 SoundTransform()
方法。有关详细信息,请参阅以下部分:
属性 | 定义方 | ||
---|---|---|---|
bufferTime : Number = 1000
在开始传输声音流之前,将其预加载到缓冲区中所用的秒数。
| SoundLoaderContext | ||
checkPolicyFile : Boolean = false
指定 Flash Player 是否应在开始加载声音之前,尝试从所加载声音的服务器下载跨域策略文件。
| SoundLoaderContext | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。
| Object | ||
prototype : Object
[static]
对类或函数对象的原型对象的引用。
| Object |
方法 | 定义方 | ||
---|---|---|---|
创建新的声音加载器上下文对象。
| SoundLoaderContext | ||
指示对象是否已经定义了指定的属性。
| Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。
| Object | ||
指示指定的属性是否存在、是否可枚举。
| Object | ||
设置循环操作动态属性的可用性。
| Object | ||
返回指定对象的字符串表示形式。
| Object | ||
返回指定对象的原始值。
| Object |
bufferTime | 属性 |
public var bufferTime:Number = 1000
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在开始传输声音流之前,将其预加载到缓冲区中所用的秒数。
请注意,无法通过设置全局 SoundMixer.bufferTime
属性来覆盖 SoundLoaderContext.bufferTime
的值。 SoundMixer.bufferTime
属性会影响 SWF 中嵌入声音流的缓冲时间,该属性与动态创建的 Sound 对象(即在 ActionScript 中创建的 Sound 对象)无关。
checkPolicyFile | 属性 |
public var checkPolicyFile:Boolean = false
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
指定 Flash Player 是否应在开始加载声音之前,尝试从所加载声音的服务器下载跨域策略文件。 此属性应用于使用 Sound.load()
方法从执行调用的 SWF 文件自己的域外加载的声音。
如果从执行调用的 SWF 文件自己的域外加载声音,并且需要从 ActionScript 中对声音数据进行低级访问,请将此属性设置为 true
。 对声音数据进行低级访问的示例包括引用 Sound.id3
属性以获取 ID3Info 对象,或调用 SoundMixer.computeSpectrum()
方法以便从加载的声音中获取声音样本。 如果在加载时没有将 checkPolicyFile
属性设置为 true
的情况下尝试访问声音数据,则可能会出现 SecurityError 异常,因为尚未下载所需的策略文件。
如果不需要对正在加载的声音数据进行低级访问,请避免将 checkPolicyFile
设置为 true
。 检查策略文件会占用网络带宽并且可能会延迟下载的开始时间,因此只应在必要时才执行此操作。
如果在将 SoundLoaderContext.checkPolicyFile
设置为 true
的情况下调用 Sound.load()
,则 Flash Player 必须在开始下载指定的声音之前成功下载相关的跨域策略文件,或确定不存在这样的策略文件。 Flash Player 将按此顺序执行下列操作,以验证策略文件是否存在:
Security.loadPolicyFile()
的调用中指定的任何待定策略文件。URLRequest.url
相同的服务器上的 /crossdomain.xml
)。 (声音的 URL 在传递到 Sound.load()
或 Sound 构造函数的 URLRequest 对象的 url
属性中指定。)在所有情况下,Flash Player 要求声音的服务器上存在适当的策略文件,要求其根据策略文件的位置提供对 URLRequest.url
上的声音文件的访问权限,并要求其通过一个或多个 <allow-access-from>
标记允许执行调用的 SWF 文件的域访问声音。
如果将 checkPolicyFile
设置为 true
,则 Flash Player 会等到策略文件验证完成后再加载声音。 应该等到从 Sound 对象调度了 progress
和 complete
事件后再对声音数据执行任何低级操作,如调用 Sound.id3
或 SoundMixer.computeSpectrum()
。
如果将 checkPolicyFile
设置为 true
,但未找到适当的策略文件,则将直到执行要求策略文件的操作时才会收到错误,然后,Flash Player 会引发 SecurityError
异常。 收到 complete
事件后,通过在 try
块内获取 Sound.id3
的值,并查看是否会引发 SecurityError
,您可以测试是否已找到相关策略文件。
如果正在从使用服务器端 HTTP 重定向的 URL 中下载声音,请谨慎使用 checkPolicyFile
。 Flash Player 尝试检索与传递到 Sound.load()
的 URLRequest 对象的 url
属性相对应的策略文件。 如果最终声音文件由于 HTTP 重定向而来自不同的 URL,那么,最初下载的策略文件可能不适用于声音的最终 URL,此 URL 与安全决策相关。
如果发生此情况,这里有一个可能的解决方案。 收到 progress
或 complete
事件后,可以检查包含声音的最终 URL 的 Sound.url
属性值。 然后用根据声音的最终 URL 计算的策略文件 URL 调用 Security.loadPolicyFile()
方法。 最后,轮询 Sound.id3
的值,直到没有引发异常为止。
有关策略文件的详细信息,请参阅《ActionScript 3.0 编程》中的“Flash Player 安全性”一章。
另请参见
SoundLoaderContext | () | 构造函数 |
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
创建新的声音加载器上下文对象。
参数bufferTime:Number (default = 1000 ) — 在开始传输声音流之前,将其预加载到缓冲区中所用的秒数。
|
|
checkPolicyFile:Boolean (default = false ) — 指定在加载对象时 Flash Player 是 (true ) 否应检查跨域策略文件是否存在。
|
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/media/SoundLoaderContext.html