我正在使用 FDT Free 在移动应用程序上开发一个小游戏。为了控制游戏,需要陀螺仪,因此我将 Adobe 的 gyrscope AIR 扩展(ANE 和 SWC)添加到我的项目的 lib 文件夹中。
在移动设备上测试时,扩展运行良好;但是,当尝试将应用程序作为桌面应用程序运行时,我收到以下错误:
无法加载内容,因为加载扩展程序时出现问题:错误:Windows-x86 不支持请求的扩展程序 com.adobe.gyrscope。
为了排除在桌面运行配置上使用陀螺仪的代码,我已将以下参数添加到编译器参数中:
-define+=CONFIG::MOBILEDEVICE,false
-define+=CONFIG::DESKTOP,true
此外,我还添加了代码片段,以便不编译使用扩展名的代码的某些部分:,例如:
CONFIG::MOBILEDEVICE {
if (Gyroscope.isSupported)
{
gyro = new Gyroscope();
gyro.setRequestedUpdateInterval(1000);
gyro.addEventListener(GyroscopeEvent.UPDATE, onGyroUpdate);
}
使用条件编译工作得很好,但是我该怎么做才能防止在运行桌面运行配置时包含 ANE 和 SWC?
我无法判断此扩展的源代码是否可用,但如果是,您可能更容易在扩展中构建对默认平台的支持,而不是担心条件编译。您可以访问 http://www.adobe.com/devnet/air/articles/building-ane-ios-android-pt2.html 并阅读有关创建默认库的部分以了解如何完成它。它只需要一个简单的 AS3 项目,其存根方法与 NE 的公共接口相匹配。然后你就可以编译NE了,它在任何平台上都可以正常工作。