开发者

Mimicking typedef in ActionScript?

I'm working on some ActionScript code that needs to juggle a bunch of similar-but-not-interchangeable types (eg, position-in-pixels, internal-position, row-and-column-position) and I'm trying to come up with a naming scheme to minimize the complexity.

Additionally, I don't yet know what the best format for the "internal position" i开发者_运维百科s – using int, uint and Number all have advantages and disadvantages.

Normally I'd solve this with a typedef:

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

Is there any way of getting similar functionality in ActionScript?


If you're using Flex or another command-line compiler to build your project, you could add a pass from an external preprocessor to your build process.

Doesn't get the type-safety, but otherwise appears to do what you want.


I have found an article titled Typedefs in ActionScript 3, which suggests using:

const pixelPos:Class = int;

But that doesn't work – the compiler complains that "Type was not found or was not a compile-time constant: pixelPos" (note: this also happens when I use Object instead of int).

Here is an example of code which doesn't compile:

const pixelPos:Class = int;
function add3(p:pixelPos):void { // <-- type not found on this line
    return p + 3;
}


Just make it static const and you can register your own class. Like this:

static const MyClass:Class = int;

And you can't make a variable with this type:

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

But you can make an instance:

var ert:* = new MyClass();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜