如果有3个函数需要刷帧进行侦听,对其进行3个EnterFrame 会比将3个整合为1个耗费系统多得多的资源。因此考虑将游戏里多个EnterFrame整合到一个EnterFrame控制类里,用for循环对所有的进行刷新。
以下是测试:同样刷帧执行3个函数fun1 fun2 fun3
//------------方法1-------------------
addEventListener(Event.ENTER_FRAME,enterFrame1Handle)
addEventListener(Event.ENTER_FRAME,enterFrame2Handle)
addEventListener(Event.ENTER_FRAME,enterFrame3Handle)
function enterFrame1Handle(e:Event):void{
fun1()
}
function enterFrame2Handle(e:Event):void{
fun2()
}
function enterFrame3Handle(e:Event):void{
fun3()
}
//--------------------------------------------------------------
//耗费系统资源在11%-14%
//-----------方法2---------------------------------------
/*
var funArray:Array = new Array()
initFunArray()
function initFunArray():void
{
funArray.push(fun1);
funArray.push(fun2);
funArray.push(fun3);
}
addEventListener(Event.ENTER_FRAME,enterFrameHandle)
function enterFrameHandle(e:Event):void{
for(var i:int=0;i<funArray.length;i++)
{
funArray[i]();
}
}
*/
//7% - 11%
//-------------------------------------------------------------------
function fun1():void{
trace(1+2+3+4)
}
function fun2():void{
trace(2+3+4+5)
}
function fun3():void{
trace(3+4+5+6)
}