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;
이 문제를 해결 한 것 같다 :