Actionscript 3 AS3:FPS降落
啊。当我想用如下输入框更新信息时:Actionscript 3 AS3:FPS降落,actionscript-3,text,updates,frame-rate,Actionscript 3,Text,Updates,Frame Rate,啊。当我想用如下输入框更新信息时: 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.ENTE
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的情况下快速列出材质。
如何将此更改为干净运行?
Thx代表hlp。我假设其他地方有更多的代码会改变食物、木材和石头的价值。如果enterframe上的值不变,则无需更新这些值。也许只有在更改值时才能更新UI?所以,从输入框中删除列表,并在更改值时执行类似操作
function getWood(){
wood++;
list();
}
function useWood(){
wood--;
list();
}
这是唯一执行的代码吗?如果这不是一个选项,您可以运行enterframe并另外使用计时器以较慢的速度更新某些UI?