高速计算,低速渲染

本文介绍了一种在Flash项目中通过控制渲染频率来优化CPU负载的方法。通过调整EnterFrame事件的触发频率,可以有效地减少不必要的位图渲染,从而降低CPU使用率。文中提供了一个具体的示例,展示了如何实现这一功能。

作为一个flash项目,帧数是固定的,假如设置帧数为60fps,则stage的EnterFrame事件每秒会执行60次

有时候高速运算是需要的,但对于一些位图操作,如果高速渲染,则会造成CPU负载加大;在场景里自动运行的元件,通常都是在EnterFrame里渲染的,所以这里要根据情况控制渲染频率

package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.utils.setInterval;
    
    
public class Sample0915 extends Sprite
    {
        
private var count:int;
        
private var rect:Sprite;
        
private var i:int;
        
private var fps:int = 40;
        
        
public function Sample0915()
        {
            
//元件
            rect = new Sprite();
            rect.graphics.beginFill(
0x0000FF);
            rect.graphics.drawRect(
0,0,50,50);
            rect.graphics.endFill();
            
this.addChild(rect);
            
            
//定义一个5s的定时器
            setInterval(stopEnterFrame,5000);
            
            stage.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
        }
        
        
private function enterFrameHandler(event:Event):void
        {
            i
++;
            
if(i%2==0)    //fps=60/2=30
//          if(i%3==0)    //fps=60/3=20
//          if(i%4==0)    //fps=60/4=15
            {
                render();
            }
        }
        
        
private function stopEnterFrame():void
        {
            stage.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);
        }
        
        
private function render():void
        {
            rect.x 
+= 1;
            count
++;
            trace(count);
        }
    }
}

 

转载于:https://www.cnblogs.com/CoderWayne/archive/2011/09/20/2182288.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值