当前位置:  开发笔记 > 编程语言 > 正文

Flex/Actionscript:动态访问静态var

如何解决《Flex/Actionscript:动态访问静态var》经验,为你挑选了1个好方法。

假设我有一个Foo类:

public class Foo
{

   public static var bar:String = "test";

}

如何在运行时使用字符串"Foo"或/和Foo的实例以及字符串"bar"来引用bar?

var x:Object = new Foo();
...
x["bar"]

...不起作用,IntelliJ中的调试模式得到了我的希望,因为bar被列为属性.

更新:

请注意,在"操作点",我对编译时的foo一无所知.我需要通过字符串"Foo"和"bar"来解析Foo.bar.

换句话说,因为flex没有eval,我怎么能和eval("Foo.bar")一样完成?



1> Christian Nu..:

它是一个静态变量,因此您将无法使用foo 实例访问它; 它使用ClassName.variableName表示法静态访问,如下所示:

跟踪(Foo.bar);

//产量:"测试"

同样,因为您已声明Foo和bar公开,所以您应该能够从应用程序的任何位置以这种方式访问​​Foo.bar.


更新:啊,我明白你在问什么.您可以使用flash.utils.Summary.getDefinitionByName():

// Either this way
trace(getDefinitionByName("Foo").bar);

// Or this
trace(getDefinitionByName("Foo")["bar"]);

......后者归功于Jeremy的回答,这对我来说是新的.:)

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有