我正在使用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目标的东西。有没有解决这个问题的方法?
答案 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')" />