你可以保存當類被初始化的變量,然後加載它們,這將有效地重置。試試這個:
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
private var _saved:Array = [];
public var awesome:Boolean = true;
public var val:String = "hello";
public function Main()
{
saveVars("awesome","val","alpha");
awesome = false;
alpha = 0.5;
val = "there";
loadVars();
trace(alpha); // 1
trace(val) ;// hello
trace(awesome); // true
}
/**
* Saves defined vars
* @param ...args A list of variables to save
*/
public function saveVars(...args):void
{
_saved = [];
var i:String;
for each(i in args)
{
_saved[i] = this[i];
}
}
/**
* Loads from last save
*/
public function loadVars():void
{
var i:String;
for(i in _saved)
{
this[i] = _saved[i];
}
}
}
}
這顯然是能夠在整個應用程序運行時的任何時刻保存變量的優勢。
我有一種感覺,那就是答案,我不認爲有重新實例化Main()類的方法,會不會有?假定Main函數不是立即重新分配變量。 – 2011-05-12 10:36:10
我不這麼認爲。但是,您可以將這些值嵌入到單獨的類中,並在每次需要重置它們時從Main內重新實例化該類。這會產生一些額外的開銷,但可能會完成您所需要的。 +1 @Marty Wallace建議的方法,因爲這將保留你的價值,而不需要新班級的開銷。 – Geoff 2011-05-12 12:25:08