package
{
public class Main extends Sprite {
private var a=0;
private var b=0;
private var c=2;
public function Main(){
a=9;
b=4;
c=8;
}
}
}
有没有一种简单的方法可以将我的所有变量重置为第一次加载包时的方式,这样我就不必遍历所有变量并手动重置它们了?
谢谢。
答案 0 :(得分:1)
初始化类时,你可以保存变量,然后将它们加载回来,这实际上是一个重置。试试这个:
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];
}
}
}
}
这显然具有能够在整个应用程序运行时期间保存变量的优势。
答案 1 :(得分:0)
简短的回答是否定的。但是,一种解决方案可能是将类变量分配给您在函数中声明的新变量。这将保留初始值并使其可用于其他功能。只有在重新实例化该类时,才会发生真正的“重置”。
答案 2 :(得分:0)
迟到了?
为什么不创建一个由“导入”和“AddChild”语法加载的新类,在这些语法中放置你要删除的变量并重新加载?