在as3中获取变量名的字符串表示形式

时间:2011-12-08 20:56:08

标签: actionscript-3 flex actionscript

这样做的任何方式是as3?

例如,如果我有var dog:String,我如何从该变量中获取“狗”?

考虑反思这样做,但必须有一个更简单的方法

- 甲

4 个答案:

答案 0 :(得分:3)

希望这有帮助。

class A {
   var dog:String = "something";
   var cat:String = "eatdog";
}

function getVars(obj:*):void
{
    for(var i:* in obj){
        trace( i + " : " + obj[i]);
        // this will trace all properties of object.
        // dog : somthing
        // cat : eatdog
    }
}

答案 1 :(得分:1)

答案 2 :(得分:1)

听起来你不想“获取”变量名的字符串表示,而是根据字符串设置变量。

要设置一个名称为字符串的变量,您可以执行以下操作:

this['dog'] = 'value of the dog var';

答案 3 :(得分:0)

在您的示例中,我认为没有办法将“dog”检索为字符串。

但是,如果dogdynamic对象的属性,那么您可以使用如下函数:

function getVarName(subject:*, value:*):String
{
    for(var i:String in subject)
    {
        if(subject[i] == value) return i;
    }

    return "";
}

此功能可以在以下场景中使用:

var holder:Object = {
    dog: "some awesome dog"
}

trace(getVarName(holder, "some awesome dog")); // dog