2009-01-20 4 views
7

AIR에서 호스팅되는지 여부에 따라 약간 다르게 작동해야하는 swc 파일이 있습니다. 인터넷에서 두 가지 제안을 보았습니다.액션 스크립트 라이브러리에서 AIR 대 Flash Player 감지

  • WindowedApplication의 Test Application.application.
  • Security.APPLICATION에 대한 Security.sandboxType을 테스트하십시오.

그러나 컴파일러는 WindowedApplication 또는 Security.APPLICATION을 찾을 수 없으므로 이러한 파일은 내 .swc에서 작동하지 않는 것 같습니다. 내 라이브러리에는 다른 AIR 기능이 필요하지 않으므로 AIR 라이브러리에 연결되어 있지 않다고 가정하고 Flash Player에서 계속 작동하도록해서는 안됩니다.

제안 사항?

답변

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

나는 AIR API 클래스 중 하나를 String으로 전달할 수있는 flash.utils.getDefinitionByName()을 시도합니다. 이렇게하면 Flex 환경에서 catch하거나 AIR 환경에서 오류를 발생시킬 수 있습니다.