是否可以使用Haxe编写一个使用类型参数的AS3库?

Bae*_*orn 6 haxe actionscript-3

首先是一个小背景:我正在寻找一种方法来创建一个"集合"库,它抽象基于Flash Player版本的实现(FP10上的Vector,FP9上的Array)远离调用代码.我已经编写了一个小型的AS3 lib,但......

  • ...性能不好(特别是因为两个级别的间接和运行时类型检查Array实现)
  • ...代码很难看(因为Vector类型需要在编译时定义,我需要一个工厂返回基于Enum的具体Vector实例,它只包含支持的类型)

我目前正在考虑将Haxe作为一种可能的解决方案,因为它支持类型参数,并且能够编译为各种Flash Player版本(并且显然编译为mmore优化的字节码).

现在,我的问题是:有没有办法在Haxe中编写一个可以在AS3代码中使用的库

var foo:IMyInterface = new MyImplementation(int);
var bar:IMyInterface = new MyImplementation(getDefinitionByName("my.package.MyClass"));
Run Code Online (Sandbox Code Playgroud)

IMyInterface暴露所需的方法(push,pop,...)?

基本思想是我想在运行时提供类型信息,并获得一个类型安全的Flash Player版本独立的"集合",以便在调用代码中使用,而无需在整个地方使用条件编译片段.

Haxe可以做类似的事情吗?如果是的话,我怎样才能让它发挥作用?

Eug*_*y89 3

Haxe 中有机会覆盖intHaxe 中的本机类(例如 )。查看元数据手册。2.06版本中添加了元数据。

至于getDefinitionByName()方法的模拟。看一下类resolveClass()的方法Type