2009-01-20 15 views
7

Tengo un swc que necesita operar de manera diferente dependiendo de si está alojado por AIR o no. He visto dos sugerencias en Internet:Detectar AIR frente a Flash Player desde una biblioteca actionscript

  • Aplicación de prueba Application.Application for WindowedApplication.
  • Prueba Security.sandboxType for Security.APPLICATION.

Sin embargo, estos no parecen funcionar en mi .swc ya que el compilador no puede encontrar WindowedApplication o Security.APPLICATION. Mi biblioteca no necesita ninguna otra característica de AIR, así que supongo que no está vinculada a las bibliotecas de AIR, y supongo que no debería estar en orden para que continúe funcionando en Flash Player.

¿Alguna sugerencia?

Respuesta

21

Puede usar el objeto flash.system.Capabilities para averiguar si se está ejecutando en 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

Probaría flash.utils.getDefinitionByName() que le permitirá pasar una de las clases de la API de AIR como una cadena. Esto debería arrojar un error que puede detectar en un entorno Flex o tener éxito en un entorno de AIR.

Cuestiones relacionadas