Я пытаюсь преобразовать макрос в C во что-то, что будет работать аналогично в Actionscript.
Макрос C принимает строку, и с помощью ##
проверяет тип на соответствие другим макросам, чтобы проверить, что свойство элемента имеет правильный тип.
Чтобы уточнить, C:
...
#define STACK_NUM 52
...
#define CHECK_TYPE(i, t) \
( ((i).type == t##_NUM) ) \
Я пытаюсь преобразовать это в нечто подобное в Actionscript. Текущий способ, которым я делаю это, создает класс
public class StringMacro extends String {
public var macro:int;
public function
StringMacro(value:int)
{
super();
macro = value;
}
}
и определение всех макросов из C в переменных этого класса, но это занимает много места, и я действительно не хочу делать это таким образом.
Итак, я придумал что-то вроде этого:
public class Macros {
...
public var STACK_NUM:uint = 52;
...
public function
Macros()
{
}
}
Я хочу сослаться на класс Macros, выполнив что-то вроде этого:
private var macros:Macros = new Macros();
if(CHECK_TYPE(10, STACK))
....
private function
CHECK_TYPE(value:int, t:String):Boolean
{
if(value == macros.(t)) {
return true;
}
}
чтобы я мог передать t в функцию, и она проверит ее среди определений в классе Macro.
Есть ли способ заставить это работать или что-то в этом роде?