我有一个haxe库,我需要编译到JS和AS3。 我已经让JS部分工作正常,并且可以在node.js中使用导出的代码。 但是编译到AS-3时遇到以下问题。 haxe编译器包含haxe标准库,并在默认包中生成AS3类:
package {
import flash.Boot;
public class List {
...
现在的问题是我得到了大量模糊的引用错误:
Error:(101, 0) Ambiguous reference to List
在这种情况下,List类与List一起冲突,List被定义为Feathers(Starling)库的一部分。
到目前为止,我还没有找到任何解决方案。我希望有一个编译器标志可用于设置默认包名,但到目前为止还没有找到任何东西。
**编辑**
编译我在项目中包含的羽毛源时出错。 我不想修改羽毛源代码。
/Users/santiago/Documents/source/frameworks/Feathers/source/feathers/controls/renderers/DefaultListItemRenderer.as
Error:(200, 0) [lib (module cuarenta-lib)]: Ambiguous reference to List
Error:(202, 0) [lib (module cuarenta-lib)]: Ambiguous reference to List
Error:(208, 0) [lib (module cuarenta-lib)]: Ambiguous reference to List
Error:(222, 0) [lib (module cuarenta-lib)]: Ambiguous reference to List
谢谢!
答案 0 :(得分:0)
编辑:这个答案没有意义,因为List类是Haxe标准库的一部分。为了清楚起见,我将它留在这里。
两种肮脏但简单有效的解决方案。
答案 1 :(得分:0)
要将一个类移动到另一个类并避免冲突,您可以使用 @:native 元数据。
将以下内容添加到编译器调用中,以将List
重命名为hx.List
:
--macro addMetadata('@:native("hx.List")', 'List')