2013-03-08 3 views
0

테스트 목적으로 SWF를 간단한 응용 프로그램에로드하려고합니다. SWF는 다음 명령을 사용하여 swftools-0.9.1을 사용하여 컴파일되었습니다.FlexPaper - 원격 SWF 파일을 AIR 응용 프로그램에로드 할 수 없습니다.

/usr/bin/pdf2swf 10993.PDF -o 10993.SWF -f -T 9 

SWF는 브라우저에서 정상적으로로드됩니다. 플렉스 SDK 4.6과 함께 다음 플렉스 코드를 사용

:

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         xmlns:flexpaper="com.devaldi.controls.flexpaper.*" 
         creationComplete="onCreationComplete()"> 
    <fx:Script> 
     <![CDATA[ 
      import flash.utils.setTimeout; 

      private function onCreationComplete():void 
      { 
       swf.SwfFile = 'http://my/domain/10993.SWF'; 
      } 
     ]]> 
    </fx:Script> 
    <flexpaper:FlexPaperViewer width="100%" height="100%" id="swf"/> 
</s:WindowedApplication> 

crossdomain.xml 파일은 다음과 같습니다

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="*"/> 
</cross-domain-policy> 

최종 결과는 다음과 같습니다

SecurityError: Error #3207: Application-sandbox content cannot access this feature. 

어떤 생각 왜 이런 일이 일어 났습니까?

+0

어디에서 오류가 발생합니까? 전체 스택 추적을 가지고 있습니까? 아니면 FlexPaperViewer 내부에서이 오류가 발생 했습니까? – JeffryHouser

+0

오류가 ADL.exe에 의해 생성되고 Flash Builder에 표시되지만 디버그 모드로 실행 중일 때만 표시됩니다. – Reado

답변

0

보안 제한 사항으로 인해 AIR에서 외부 SWF를로드 할 수 없습니다. Adobe에 따르면 HTML 구성 요소를 사용하여 외부 HTML 페이지를 통해 외부 SWF를로드하는 것 이외에 다른 해결 방법은 없습니다.

0

이것은 AIR 응용 프로그램에서 호출 할 때 Security.allowDomain()에 대한 호출이 포함 된로드 된 SWF가이 오류를 발생시키는 원인 일 수 있습니다. -t 옵션을 사용하지 않고 SWF 파일을 다시 생성 해보십시오.