嗨。当我想要使用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的情况下快速列出材料。 我怎么改变这个干净运行? 谢谢你。
答案 0 :(得分:0)
我假设在其他地方有更多的代码可以改变食物,木材和石头的价值。如果没有更改,则无需更新enterframe上的值。也许只有在更改值时才能更新UI?所以从输入框架中删除list()并在更改值时执行类似的操作?
function getWood(){
wood++;
list();
}
function useWood(){
wood--;
list();
}