fp10.1自动降低帧频的测试
sshong 发表于2010年6月27日 17:34:00 更新于2010年6月27日 17:54:00
flashplayer10.1最近发布了,其中一个很大的特性就是自动在flashplayer所在页面失去焦点或者最小化时,将自动降低帧频至2fps。
也看到天地会上的同学们在热烈的讨论这个对webgame的影响。
Flash10.1抛弃了webgame?!
于是下午做了个测试自动降帧频的例子,发现确有其事。

测试过程如下:

1、flash cs3中新建一fla,帧频10fps,拖一个textarea组件命名txt,拖一个button组件命名stopbtn。

2、第一帧加入如下代码:
this.addEventListener(Event.ENTER_FRAME, ontrik);
//
var timer:Timer = new Timer(100);
timer.addEventListener(TimerEvent.TIMER, ontrik);
timer.start();
//
stopbtn.addEventListener(MouseEvent.CLICK, onstop);
function onstop(evt:MouseEvent):void {
    this.removeEventListener(Event.ENTER_FRAME, ontrik);
    timer.stop();
}
//
function ontrik(evt:Event):void {
    if(evt is TimerEvent) {
        txt.appendText("timer触发" + getTimer()+"n");
    }
    else {
        txt.appendText("enterframe触发" + getTimer()+"n");
    }
}
代码很简单,一个侦听enterframe(10fps,按理是100ms触发一次),还有一个100ms间隔的timer。两个侦听触发时把数据输出到txt,单击stopbtn停止侦听。

3、发布,并用ie8或其他含有多tab的浏览器打开该flash

4、打开运行flash所在tab一段时间,切换到其他tab并停留一段时间,再度返回flash所在tab,运行一段时间,单击stop按钮。

5、查看txt中的数据输出。

看一下几张截图:


ps:从图中也可以看出timer确实没有enterframe精准

大家也可以自己切换测试下:


这里是源文件:testFP10_1fps.fla

附:
另一篇关于此的文章:
周期定时器:一个Flash Player10.1中不得不关注的特性
标签:帧频fp10.1分类:As3&Flex阅读:4476
评论
chzcb2010年10月20日 17:04
getTimer()是这个有偏差吧,你可以试一下Date
添加评论
您的大名,限长10汉字,20英文(*)
电子信箱(*)
您的网站
正文,限长500汉字,1000英文(*)
验证码(*) 单击刷新验证码
联系我
博客订阅