宏--include是递归地包括不适合构建目标的包

时间:2014-01-27 21:15:33

标签: macros haxe haxeflixel

我正在使用HaxeFlixel lib构建游戏。在我的代码的一部分中,我通过Type.resolveClass()动态解析类。为了避免必须单独引用每个潜在的类,我尝试使用--macro include()将其添加到我的project.xml

<haxeflag name="--macro" value="include('my.pack')" />

这在针对Flash目标进行编译时工作正常,但是当我尝试针对neko进行编译时,我得到了:

C:\HaxeToolkit\haxe\lib\flixel/3,0,4/flixel/FlxG.hx:3: characters 7-34 : You can not access the flash package while targeting neko (for flash.display.DisplayObject)
C:\HaxeToolkit\haxe\lib\flixel/3,0,4/flixel/FlxSprite.hx:3: characters 7-18 :     referenced here
source/objects/enemies/Bat.hx:3: characters 7-23 :     referenced here
--macro:1: character 0 :     referenced here

看起来include宏是递归地包含我的类导入的所有东西,包括不适合neko目标的东西。有没有解决这个问题的方法?

1 个答案:

答案 0 :(得分:2)

OpenFL需要--macro allowPackage("flash")才能生效,从而抑制You can not access the flash package...错误。

include之前调用allowPackage,因此您可以在allowPackage之前手动调用include

<haxeflag name="--macro" value="allowPackage('flash')" />
<haxeflag name="--macro" value="include('my.pack')" />