【发布时间】:2013-08-14 23:33:14
【问题描述】:
我在 FlashDevelop 中设置了一个 x 平台 AIR 项目。 相同的代码库可以发布到 iOS 或 android 目标。 我正在使用 Adobe 的纹理格式 (ATF) 压缩纹理图集,目前我将所有压缩文件嵌入到每个 atf 容器文件中(因此它包括桌面、iOS 和安卓 GPU 芯片组的纹理)
我的问题是我们的应用程序包含许多纹理图集,显然我们希望将下载量保持在最低限度,所以我想分别压缩不同的目标(即会有一个 atf 文件只有 pvrtc 压缩iOS,另一个只包含安卓的 etc1 压缩)并且只包含每个平台的兼容文件。
然而,这个问题与 ATF 或压缩无关 - 我已经完成了这一切。
我想知道的是:有没有在编译时只包含必要(目标兼容)文件的解决方案?
我目前正在使用嵌入元数据来包含 .atf 文件,我认为元数据无法在编译时动态修改(即将嵌入源从 xxx_ios.atf 切换到 xxx_android.atf,具体取决于选择了哪个目标)
我想可能还有其他解决方案,即在运行时使用加载器,并且只在编译时使用 adt 编译器中的参数包含适当的资产文件夹,但这并不理想 - 一个可以嵌入文件列表的简单开关我认为在编译时会更好/更优雅,特别是如果我可以让它纯粹是动态的,所以它被项目的目标配置/包含,而不必手动切换导入语句。
关于实现这一目标的最佳方法的任何想法?
谢谢
【问题讨论】:
-
您可以将每个目标资产编译成单独的 SWC(即桌面、ios、android 各一个)。然后根据发布目标包含适当的 SWC。
-
那确实可以,李,干杯。在这种情况下,我发现这可能不是可行的方法(因为所有嵌入式资产都将使用主 swf 加载到系统内存中 - 在移动设备上不是一个好主意),并决定在运行时加载资产。但是是的,我认为编译后的 swc 和链接显然是一个优雅的解决方案,而不是使用嵌入元数据
-
如果您使用的是 Flash Builder,我建议您这样做:stackoverflow.com/questions/9178316/… - 也许 Flash Develop 也有类似的东西?或者,如果 FD 以与 FB 相同的方式编译,它甚至可能以相同的方式工作
标签: actionscript-3 mobile air