假設我有一系列要按順序執行的動畫。如果我這樣做,我是否創建了一個巨大的調用堆棧,消耗的內存超過了必要的?AS3:按順序調用函數而不創建巨大的調用堆棧
function ch1():void {
var someVar:uint;
function doThis();
...
...
ch2();
}
function ch2():void {
var someOtherVar:String;
function doThat();
...
...
ch3();
}
function ch3():void {
var evenMoreVar:Number;
function doMore();
...
...
ch4();
}
通過這樣做來避免巨大的調用堆棧來調用下一個函數會更好嗎?
function ch1():void {
addEventListener("ch1_end",ch2);
var someVar:uint;
function doThis();
...
...
dispatchEvent(new Event("ch1_end"));
}
這是尾巴呼叫優化。如果編譯器不行,你可以自己做。 –
謝謝,我甚至不知道它有一個名字。我想這個問題就變成了,Adobe Flash Pro CS6編譯器是否會調用尾部優化? – BladePoint
如果你的項目變得複雜,你就會陷入地獄之路。開發一些管理這些動畫的類會更聰明。也許是有限狀態機或類似的東西。 – Pier