Как я могу получить доступ к имени статического члена класса в AS3 или JavaScript - PullRequest
2 голосов
/ 04 декабря 2011

У меня есть следующий класс, я хочу делать то, что в комментариях Я знаю, что могу сделать это с помощью условных выражений. Я хотел бы знать, есть ли способ сделать это динамически.

Этот код в AS3, но я знаю, что это может быть связано с javascript, потому что AS3 основан на ECMAScript

public class ClientStatus 
{
    public static const INVITED:int = 0;
    public static const VIP:int = 1;
    public static const MASTER:int = 2;
    public static const GRAND_MASTER:int = 3;
    public static const IMORTAL:int = 4;
    public static const GOD:int = 5;

    public static function getName(status:int):String
    {
        // to get the name related to int value
        // ex: if status equals to 3 return "GRAND_MASTER"
    }
}

Ответы [ 2 ]

0 голосов
/ 04 декабря 2011

С помощью describeType вы можете получить имена всех констант в ClientStatus.Затем вы можете перебрать этот список и создать словарь, примерно такой:

// might have some errors, doing it from my head

private var dic:Dictionary = new Dictionary();

...

var desc:??? = describeType(ClientStatus);
...
for each (var constName:String in constNames) {
    dic[ClientStatus[constName]] = constName;
}

...

public static function getName(status:int):String {
        return dic[status];
}
0 голосов
/ 04 декабря 2011

Самый простой способ - иметь массив строк состояния: вы передаете порядковый номер методу и получаете строку состояния.Другими полезными структурами могут быть Object и Dictionary.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...