AS3:FPS下台了

时间:2014-08-01 11:03:28

标签: actionscript-3 text updates frame-rate

嗨。当我想要使用ENTER_FRAME更新信息时:

import flash.events.Event;

var ticks:uint = 0;
var last:uint = getTimer();
var food:uint = 10;
var wood:uint = 10;
var stone:uint = 10;

stage.addEventListener(Event.ENTER_FRAME, update); // getFPS
stage.addEventListener(Event.ENTER_FRAME, list); //get Materials Info

function update(e:Event){
ticks++;
var now:uint = getTimer();
var delta:uint = now - last;
   if (delta >= 1000) {
            var fps:int = ticks / delta * 1000;
            fpsText.text = String(fps+"fps");
            ticks = 0;
            last = now;
        }

}// 

function list(e:Event){

foodText.text = String(food+"food");
woodText.text = String(wood+"wood");
stoneText.text = String(stone+"stone");

}//

fps下降。

当我更改这样的代码时:

import flash.events.Event;

var ticks:uint = 0;
var last:uint = getTimer();
var food:uint = 10;
var wood:uint = 10;
var stone:uint = 10;

stage.addEventListener(Event.ENTER_FRAME, update); // getFPS

function update(e:Event){
ticks++;
var now:uint = getTimer();
var delta:uint = now - last;
   if (delta >= 1000) {
            var fps:int = ticks / delta * 1000;
            fpsText.text = String(fps+"fps");
            list();
            ticks = 0;
            last = now;
        }

}// 

function list(){

foodText.text = String(food+"food");
woodText.text = String(wood+"wood");
stoneText.text = String(stone+"stone");

}//

fps在15分钟后下降。

我知道问题出在函数列表()中,但我如何在不减慢fps的情况下快速列出材料。 我怎么改变这个干净运行? 谢谢你。

1 个答案:

答案 0 :(得分:0)

我假设在其他地方有更多的代码可以改变食物,木材和石头的价值。如果没有更改,则无需更新enterframe上的值。也许只有在更改值时才能更新UI?所以从输入框架中删除list()并在更改值时执行类似的操作?

function getWood(){
   wood++;
   list();
}

function useWood(){
   wood--;
   list();
}