`
luhantu
  • 浏览: 204306 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Flash player 休眠模式

    博客分类:
  • Flex
 
阅读更多

偶尔听说Flash Player的休眠模式,从网上查来资料甚少。从Flash Player10.1开始,最小化Flash Player 或者 切换到另一个tab页时,会启动一个休眠模式(sleep mode), 这时不论你的应用设定帧率是多少,在休眠模式都会变为4帧(250ms).个人测试了下IE8 和chrome 23,XP 环境,发现在休眠模式下几乎变为2fps。

 

官方文档中描述:ActionScript 代码在睡眠模式下继续执行,这与将 Stage.frameRate 属性设置为 4 fps 类似。但是跳过呈现步骤,因此用户看不到该播放器正在以 4 fps 的速率运行。之所以将帧速率选择为 4 fps (而不是 0),是因为该速率允许所有连接保持打开状态(NetStream、Socket 和 NetConnection)。将帧速率切换到 0 fps 会断开打开的连接。之所以将刷新频率选择为 250 毫秒 (4 fps),是因为许多设备制造商使用此帧频率作为其刷新频率。使用此值可以使运行时的帧频率与设备本身保持在同一范围。当运行时处于睡眠模式时,Stage.frameRate 属性将返回原始 SWF 文件的帧速率,而不是 4 fps。运行时进入或退出睡眠模式时,不会调度 ActionScript 事件。

 

这是Flash Player10.1的一个内部机制,这个机制可能严重影响Flash Web Game等需要在此模式下仍然继续渲染的项目运行。但是查询了所有的资料也没有找到一个合适的方法去直接禁止此模式,很多网友也献计献策进行了很多尝试,我也对此进行了测试。

 

1.在你的程序init()时执行一次即可,不必为URLRequest指定参数,原理就是如果Flash Player正在执行声音播放操作则不会启动休眠模式。

 

var sound:Sound = new Sound(new URLRequest(""));
sound.play();
sound.close();

 

 此实验有一定的效果,可以把帧率提高到10fps左右。

2.用js去调用flash里的函数,其实就是用js的timer 频率来保证swf内部的 timer的时间间隔,帧频率没有变化,在休眠模式时还是很低,而且如果非网页版也没有办法啦。

Timer 本来就不是很准确的时间计算,在睡眠模式下它的执行频率很会跟着改变。new Timer(40)的会在休眠模式下变成时间间隔为500毫秒的timer。


总的来说,现在还没有找到能关闭此功能的方法,如果哪位找到了解决方案,欢迎留言。

 

 

分享到:
评论

相关推荐

    嵌入式系统/ARM技术中的Flash Player 10. 1的优化

    例如,当设备进入休眠或屏保模式,Flash Player会自动调整其运行状态,以节省能源。此外,高效的内存管理机制使得Flash Player在处理中断事件(如来电或切换应用)后,能快速恢复到之前的状态,且只需占用原来一半的...

    使用Flash Professional CS5开发Android AIR应用

    - Android 2.2 版本开始,该操作系统开始支持 Flash Player 10.1 和 AIR 2.5。这意味着开发者可以利用这些技术来创建更丰富、更交互式的移动应用。 - **开发 Android AIR 2.5 应用的 Adobe 工具**: - **Flash ...

    电脑报董师傅热线系统疑难问答参照.pdf

    6. **播放嵌入网页的视频、音频无声**:检查声卡驱动是否正常,浏览器插件如Flash Player是否更新到最新版本,或者尝试更换其他浏览器测试。 7. **局域网绑定IP地址**:在“网络连接”中右击本地连接,选择属性,...

    电脑报董师傅热线系统疑难问答分享.pdf

    6. 嵌入网页的视频、音频无声:检查浏览器设置,确保Flash Player或HTML5支持音频输出,或者更新驱动程序。 7. 局域网绑定IP地址:在“网络连接”中右键点击本地连接,选择属性,然后双击Internet协议(TCP/IP)...

    vc++ 应用源码包_1

    FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可聊天+传文件) 该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了...

    vc++ 应用源码包_2

    FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可聊天+传文件) 该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了...

    vc++ 应用源码包_6

    FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可聊天+传文件) 该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了...

    vc++ 应用源码包_5

    FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可聊天+传文件) 该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了...

    vc++ 应用源码包_3

    FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可聊天+传文件) 该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了...

    vc++ 开发实例源码包

    FlashPlayer播放器4.0的VC++源代码 如题。 FreeBird2011最初版(模仿飞鸽,可聊天+传文件) 该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本...

Global site tag (gtag.js) - Google Analytics