我正在研究一些需要兼顾一堆类似但不可互换的类型的ActionScript代码(例如,像素位置,内部位置,行和列位置)和我我试图提出一个命名方案,以尽量减少复杂性。
此外,我还不知道“内部位置”的最佳格式是什么 - 使用int,uint和Number都有优点和缺点。
通常我会用typedef来解决这个问题:
typedef float pixelPos;
typedef int internalPos;
typedef int rowColPos;
有没有办法在ActionScript中获得类似的功能?
答案 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();