Обнаружение AIR и Flash Player из библиотеки ActionScript - PullRequest
7 голосов
/ 20 января 2009

У меня есть SWC, который должен работать немного по-разному, в зависимости от того, находится ли он в AIR или нет. Я видел два предложения в интернете:

  • Тестирование Application.application для WindowedApplication.
  • Test Security.sandboxType для Security.APPLICATION.

Однако, похоже, они не работают в моем .swc, так как компилятор не может найти WindowedApplication или Security.APPLICATION. Моя библиотека не нуждается ни в каких других функциях AIR, поэтому я предполагаю, что она не связана с библиотеками AIR, и я полагаю, что это не должно быть так, чтобы она продолжала работать во флэш-плеере.

Есть предложения?

Ответы [ 2 ]

21 голосов
/ 21 января 2009

Вы можете использовать объект 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 голос
/ 20 января 2009

Я бы попробовал flash.utils.getDefinitionByName (), который позволит вам передать один из классов AIR API в виде строки. Это должно привести к ошибке, которую вы можете отловить в среде Flex или добиться успеха в среде AIR.

...