AS3常用代码(五):动态改变framerate以节省CPU

当程序处于静止,或者用户离开的时候,为了节省CPU,可以将整个SWF的framerate降低以达到节省CPU运算的目的。

核心函数很简单,只要直接设置stage.framerate属性即可。

注1:framerate虽然理论上越低越好,但是不要设置得太低,会引发一些奇怪的错误。推荐设置到5左右。

注2:在SWF转换framerate的时候,会有一小段时间的停顿,对于Tween动画之类的,可以delay一小段时间再开始。

以下是一些代码的简单封装方便使用:

var currentFrameRate:uint;

stage.addEventListener(Event.MOUSE_LEAVE,onMouseLeave);

function onMouseLeave(e:Event):void {

    currentFrameRate = stage.frameRate; //记录下离开前的帧率

    stage.frameRate= 5;

    stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);

}

function onMouseMove(e:MouseEvent):void {

    stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);

    stage.frameRate= currentFrameRate;

}

//以下是两个函数程序运行时调用

function staticFrameRate():void {

    stage.frameRate= 5;

}

function animationFrameRate():void {

    stage.frameRate= 30; //设为动画需要的帧率

}

posted @ 2010-06-19 14:07  rob_2010  阅读(479)  评论(0编辑  收藏  举报