在ActionScript中模仿typedef?

时间:2009-12-08 22:07:13

标签: actionscript typedef

我正在研究一些需要兼顾一堆类似但不可互换的类型的ActionScript代码(例如,像素位置,内部位置,行和列位置)和我我试图提出一个命名方案,以尽量减少复杂性。

此外,我还不知道“内部位置”的最佳格式是什么 - 使用int,uint和Number都有优点和缺点。

通常我会用typedef来解决这个问题:

typedef float pixelPos;
typedef int internalPos;
typedef int rowColPos;

有没有办法在ActionScript中获得类似的功能?

3 个答案:

答案 0 :(得分:0)

我找到了一篇名为Typedefs in ActionScript 3的文章,建议使用:

const pixelPos:Class = int;

但是这不起作用 - 编译器抱怨“找不到类型或者不是编译时常量:pixelPos”(注意:当我使用Object而不是{{1}时也会发生这种情况})。

以下是无法编译的代码示例:

int

答案 1 :(得分:0)

如果您使用Flex或其他命令行编译器来构建项目,则可以从外部预处理器向构建过程添加传递。

不会获得类型安全性,但看起来可以做你想要的。

答案 2 :(得分:0)

只需将其设为静态const即可注册自己的类。像这样:

static const MyClass:Class = int;

您无法使用此类型创建变量:

var ert:MyClass; //error
private function ert2():MyClass {}; //error

但你可以创建一个实例:

var ert:* = new MyClass();