我有一个需要稍微不同操作的swc,具体取决于它是否由AIR托管。我在互联网上看到了两条建议:
但是,这些似乎不适用于我的.swc,因为编译器找不到WindowedApplication或Security.APPLICATION。我的库不需要任何其他AIR功能,所以我认为它没有链接到AIR库,我认为不应该继续在flash播放器中工作。
有什么建议吗?
答案 0 :(得分:21)
您可以使用flash.system.Capabilities对象查明您是否在AIR下运行。
var isAir : Boolean = (Capabilities.playerType == "Desktop");
var isFlashPlayer : Boolean = (Capabilities.playerType == "StandAlone");
var isBrowser : Boolean = (Capabilities.playerType == "ActiveX" || Capabilities.playerType == "PlugIn");
var isOther : Boolean = (Capabilities.playerType == "External");
答案 1 :(得分:1)
我会尝试使用flash.utils.getDefinitionByName(),它允许您将一个AIR API类作为String传递。这应该抛出一个错误,您可以在Flex环境中捕获该错误,或者在AIR环境中成功。