2011-05-03 72 views
0

我在一个类中有一堆变量。有些情况下,我想按照明确定义的逻辑将其设置为空/“temp”等。我们面临的挑战是在多个地方列出变量 - 单调乏味且容易出错。flex:引用类变量

classname.speed = NaN的

classname.speedtype = “not_set”

classname.distance = NaN的

classname.distancetype = “not_set”

理想的情况下,宁愿选择一种方式以编程方式引用这些变量并为所有类变量设置类似 “如果变量以类型结尾,则设置为”not_set“;对于其他变量设置为NaN

我该如何做到这一点?任何指针将帮助

回答

1

最简单的方法将只写函数来清除它们。
如果你想要更自动的东西,它会要求努力 - 看看introspection api。基本上,你在你的类上调用describeType,它返回XML描述。所有变量都将在那里列出,以及其他信息。然后,您可以解析返回的XML并将所有变量设置为所需的值,并使用方括号语法动态访问它们:

var myClass:MyClass = new MyClass(); 
myClass["varName"] = "new value"; 
0

它可以通过继承实现接口扩展 其中包含公共字段

public class MyClass 
{ 
    public a:String = null; 
    public b:String = null; 

    public function MyClass() 
    { 
    } 

} 

其中包含常见var和子类实现可能be

public class MyClassChild extends MyClass 
{ 
    public var c:String = null; 
    public function MyClassChild() 
    { 
     super(); 
     this.a =""; 
     this.b =""; 
    } 

} 

,你可以投或使用每个回路设定值

var temp:MyClassChild = new MyClassChild(); 

MyClass(temp).a = "Hello World"; 

希望帮助