7

我有一个 swc,它需要根据它是否由 AIR 托管而略有不同。我在网上看到了两个建议:

  • 测试 WindowedApplication 的 Application.application。
  • 为 Security.APPLICATION 测试 Security.sandboxType。

但是,这些似乎在我的 .swc 中不起作用,因为编译器找不到 WindowedApplication 或 Security.APPLICATION。我的库不需要任何其他 AIR 功能,因此我认为它没有链接到 AIR 库,并且我认为不应该这样才能继续在 Flash 播放器中工作。

有什么建议么?

4

2 回答 2

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");
于 2009-01-21T09:07:50.417 回答
1

我会尝试 flash.utils.getDefinitionByName() 这将允许您将 AIR API 类之一作为字符串传递。这应该会引发一个错误,您可以在 Flex 环境中捕获该错误,或​​者在 AIR 环境中成功。

于 2009-01-20T16:12:48.110 回答