2017-04-20 7 views
-1

Flash Builder에서 웹 유형 Flex 프로젝트를 개발했습니다. 이 프로젝트에서 SWFLoader를 사용하여 swf 파일을로드하려고했습니다. 디버거가 작동하는 데 어려움을 겪었으므로 대신 실행하고 디버깅 할 수있는 동일한 Air 프로젝트를 만들었습니다 (스크립트로 최신 상태로 유지). swf 파일을 문제없이 Air 프로젝트에 성공적으로로드했습니다. 그러나 웹 프로젝트에서 이것을 테스트하기 위해 갔을 때 SWFLoader가 작동하지 않는 것처럼 보였습니다. SWFLoader 요소가로드 된 swf 파일을 표시해야하는 빈 영역을 얻었습니다.SWFLoader는 Air Project에서 작동하지만 Web Project에서는 작동하지 않습니다.

private function get_swf_file_binary_amf(event:ResultEvent):void { 
      Alert.show("SWF Returned"); 
      var decoder:Base64Decoder=new Base64Decoder(); 
      decoder.decode(event.result); 
      var swf_bytes:ByteArray=decoder.toByteArray(); 

      var context:LoaderContext=new LoaderContext(); 
      context.allowLoadBytesCodeExecution=true; 
      context.parameters = {myval: "test_string"}; 

      swf_loaded_file.loaderContext = context; 
      swf_loaded_file.addEventListener(Event.COMPLETE, loadComplete); 
      swf_loaded_file.load(swf_bytes); 
     } 

private function loadComplete(completeEvent:Event):void{ 
    trace("load Complete") 
} 

위의 코드는 내 Adobe Air 프로젝트에서 작동하는 코드입니다. 내 swf 파일의 이진 데이터를 받고 많은 예제처럼 URLLoader를 사용하지 않고 ByteArray로 변환합니다. 내 웹 프로젝트에서 이것을 실행하려고하면 내 문제의 원인이 될 수 있습니까?

편집/업데이트 : context.allowLoadBytesCodeExecution=true;

난 아직도 내 웹 프로젝트가이 줄을 좋아하지 않는 이유를 잘 모르겠습니다, 아직 내 에어 프로젝트는 상관하지 않는다 : 웹 프로젝트가 실패 어디에서 특정 라인을 발견했다.

context.allowLoadBytesCodeExecution=true;

이 문제를 해결 한 것 같다 :

답변

1

나는 저주 라인을 제거했습니다. 이 라인이 무엇인지 잘 모르겠다. 나는 튜토리얼에서이 라인을 옮겼다. 그것을 없애 버리는 것은 나의 Air 프로젝트에서 일한 것을 무너 뜨리는 것처럼 보이지 않으므로 나의 문제를 해결했다고 생각합니다.