2011-05-23 69 views
6

第一个小背景:我正在寻找一种方法来创建一个“集合”库,它将抽象基于Flash Player版本的实现(FP9上的Vector,FP9上的Array)抽象为远离调用代码。我已经写了一个小AS3 LIB这样做,但是......是否可以使用Haxe编写一个使用类型参数的AS3库?

  • ...表现不好
  • (尤其是因为间接两个层面上的数组实现的运行时类型的检查)。 ..the代码是丑陋的(因为向量类型需要在编译时被定义我需要返回工厂具体Vector实例基于包含仅支持的类型的枚举)目前,我寻找到HAXE为

可能的解决方案,因为它支持类型参数,并且能够编译成各种Flash Player版本(显然编译成mmore o优化的字节码)。现在

,我的问题是:有没有在HAXE写库的方式,可以使用像这样的AS3代码

var foo:IMyInterface = new MyImplementation(int); 
var bar:IMyInterface = new MyImplementation(getDefinitionByName("my.package.MyClass")); 

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

其基本思想是我想在运行时提供类型信息,并获得类型安全的Flash Player版本独立的“集合”用于调用代码,而不必费心使用遍布整个地方的条件编译片段。

哈克斯可以做那样的事情,如果是的话,我该如何使它工作?

回答

3

Haxe有机会覆盖Haxe中的原生类(例如int)。看看Metadata manual。元数据已添加到2.06版中。

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

+0

使用自定义替换'Array'类中的构建...好主意!我从来没有想到这一点。 :)感谢提示,我认为这会对我有很大的帮助。 – Baelnorn 2011-05-25 09:03:38

+0

@ Baelnorn,总是乐于帮助=)我建议去haxe.org并订阅他们的通讯。你可以在那里问一些关于haXe的具体问题。 – Eugeny89 2011-05-25 10:30:28

相关问题