flash.media
public class SoundLoaderContext
继承SoundLoaderContext Inheritance Object

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

SoundLoaderContext 类为加载声音的 SWF 文件提供安全检查。 SoundLoaderContext 对象以参数的形式传递到构造函数和 Sound 类的 load() 方法。

使用此类时,请考虑 Flash ® Player 安全模型:

有关详细信息,请参阅以下部分:




公共 属性
 属性定义方
  bufferTime : Number = 1000
在开始传输声音流之前,将其预加载到缓冲区中所用的秒数。
SoundLoaderContext
  checkPolicyFile : Boolean = false
指定 Flash Player 是否应在开始加载声音之前,尝试从所加载声音的服务器下载跨域策略文件。
SoundLoaderContext
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedprototype : Object
[static] 对类或函数对象的原型对象的引用。
Object
公共 方法
 方法定义方
  
SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
创建新的声音加载器上下文对象。
SoundLoaderContext
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
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 将按此顺序执行下列操作,以验证策略文件是否存在:

在所有情况下,Flash Player 要求声音的服务器上存在适当的策略文件,要求其根据策略文件的位置提供对 URLRequest.url 上的声音文件的访问权限,并要求其通过一个或多个 <allow-access-from> 标记允许执行调用的 SWF 文件的域访问声音。

如果将 checkPolicyFile 设置为 true,则 Flash Player 会等到策略文件验证完成后再加载声音。 应该等到从 Sound 对象调度了 progresscomplete 事件后再对声音数据执行任何低级操作,如调用 Sound.id3SoundMixer.computeSpectrum()

如果将 checkPolicyFile 设置为 true,但未找到适当的策略文件,则将直到执行要求策略文件的操作时才会收到错误,然后,Flash Player 会引发 SecurityError 异常。 收到 complete 事件后,通过在 try 块内获取 Sound.id3 的值,并查看是否会引发 SecurityError,您可以测试是否已找到相关策略文件。

如果正在从使用服务器端 HTTP 重定向的 URL 中下载声音,请谨慎使用 checkPolicyFile。 Flash Player 尝试检索与传递到 Sound.load() 的 URLRequest 对象的 url 属性相对应的策略文件。 如果最终声音文件由于 HTTP 重定向而来自不同的 URL,那么,最初下载的策略文件可能不适用于声音的最终 URL,此 URL 与安全决策相关。

如果发生此情况,这里有一个可能的解决方案。 收到 progresscomplete 事件后,可以检查包含声音的最终 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