我在动画的时间线上有声音,并且我的 swf 在首屏(在一个非常高的 html 页面中)如果用户向下滚动到页面上的 swf 之外,我想静音所有内容。有谁知道如果以及如何做到这一点?
1 回答
取自http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html
如果您将发布设置设置为 Flash Player 10.1 或更高版本,则可以轻松停止音频/视频:
Flash Player 10.1 对 CPU 使用率的增强
Flash Player 10.1 引入了两个有助于节省 CPU 处理的新功能。这些功能包括在离开屏幕时暂停和恢复 SWF 内容,以及限制页面上 Flash Player 实例的数量。
暂停、节流和恢复
注意:暂停、节流和恢复功能不适用于 Adobe® AIR® 应用程序。为了优化 CPU 和电池使用,Flash Player 10.1 引入了与非活动实例相关的新功能。此功能允许您通过在内容关闭和显示在屏幕上时暂停和恢复 SWF 文件来限制 CPU 使用率。借助此功能,Flash Player 通过删除任何可以在恢复播放内容时重新创建的对象来释放尽可能多的内存。当整个内容都在屏幕外时,内容被视为屏幕外。
两种情况会导致 SWF 内容脱离屏幕:
**这里明确说明:**
用户滚动页面并导致 SWF 内容移出屏幕。在这种情况下,如果有任何音频或视频播放,内容会继续播放,但会停止渲染。如果没有音频或视频播放,为确保播放或 ActionScript 执行不会暂停,请将 hasPriority HTML 参数设置为 true。但是,请记住,无论 hasPriority HTML 参数的值如何,当内容离开屏幕或隐藏时,SWF 内容呈现都会暂停。
在浏览器中打开一个选项卡,这会导致 SWF 内容移动到背景。在这种情况下,无论 hasPriority HTML 标记的值如何,SWF 内容都会减慢或限制在 2 到 8 fps 之间。音频和视频播放将停止,除非 SWF 内容再次可见,否则不会处理任何内容呈现。对于在 Windows 和 Mac 桌面浏览器上运行的 Flash Player 11.2 及更高版本,您可以在应用程序中使用 ThrottleEvent。当 Flash Player 暂停、限制或恢复播放时,Flash Player 会调度 ThrottleEvent。
ThrottleEvent 是一个广播事件,这意味着它由所有具有为此事件注册的侦听器的 EventDispatcher 对象调度。有关广播事件的详细信息,请参阅 DisplayObject 类。