将 C 宏转换为 Actionscript 3

标签 c actionscript-3 actionscript macros

我正在尝试将 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 类的定义中检查它。

有没有办法让这个工作或类似的东西?

最佳答案

是的,您可以通过这种方式访问​​值,但您需要使用稍微不同的语法。

做:

macros[t]

不是:

macros.(t)

您可能还想考虑为此使用静态变量,这样您就不必创建 Macros 类的实例。如果这符合您的设计。

关于将 C 宏转换为 Actionscript 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3496646/

相关文章:

c - 从txt文件中读取并输入到C中的数组

apache-flex - 哈希值不匹配(可能与编码有关?)

c - 为什么字符串 "exist"和字符内存与字符串内存不同?

flash - 如何在Flash AS3中动态调用参数数量未知的方法?

actionscript-3 - 尝试了解 Adob​​e AIR 和全屏模式

actionscript-3 - 柔性 4 : XML Literals with conditions

java - 使用远程对象从数据库填充组合框

flash - 在Flash/AS3中扩展SimpleButton类时出现错误1017

c - 绘图图像补偿算法

C 链表队列 : What should I return when trying to dequeue an empty queue?