1

我正在编写一些 ActionScript 代码,这些代码需要处理一堆相似但不可互换的类型(例如,像素位置、内部位置、行和列位置),我正在尝试想出一个命名方案来最小化复杂性。

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

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

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

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

4

3 回答 3

0

我在 ActionScript 3 中找到了一篇题为Typedefs的文章,其中建议使用:

const pixelPos:Class = int;

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

这是一个无法编译的代码示例:

const pixelPos:Class = int;
function add3(p:pixelPos):void { // <-- type not found on this line
    return p + 3;
}
于 2009-12-08T22:09:03.227 回答
0

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

没有获得类型安全,但似乎可以做你想做的事。

于 2009-12-08T22:12:53.800 回答
0

只需将其设为静态常量,您就可以注册自己的类。像这样:

static const MyClass:Class = int;

而且您不能使用这种类型创建变量:

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

但是你可以做一个例子:

var ert:* = new MyClass();
于 2014-10-01T17:45:50.083 回答