2009-05-18 7 views
2

AS2로 작성된 swf를 AS3 swf로로드하려고합니다. Loader 클래스를 사용하고 Event.COMPLETE을 수신합니다. 내 onCompleteHandler 기능에 임하려고, 그래서 내가 무대에이를 추가 할 -AS2 swf를 AS3 swf에로드 할 수 있습니까? 이것을 스테이지에 추가하고 As3 swf에서 어떻게 상호 작용할 수 있습니까?

addChild(evt.currentTarget.content) 

을 ... 그러나 나는 다음과 같은 오류 메시지가 얻을 :

Error #2180: It is illegal to move AVM1 content (AS1 or AS2) to a different part of the displayList when it has been loaded into AVM2 (AS3) content. 

AS2의 swwf이 코드를 많이 가지고와 내가 그것을 피할 수만 있다면 AS3으로 마이그레이션하고 싶지 않을 것이다. 아무도 이것이 가능한지 또는로드 된 swf를 스테이지에 추가하는 방법이 다른지 알고 있습니다. 그러면로드 된 swf에서 함수를 호출하는 방법은 무엇입니까? 모든

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 
var request:URLRequest = new URLRequest("testLoadSwf.swf"); 
loader.load(request); 

function onCompleteHandler(evt:Event) { 
    addChild(evt.currentTarget.content); 
} 

감사합니다 - 여기

는 코드입니다.

답변

2

정말 효과적인 방법은 LocalConnection을 사용하는 것입니다. AS2와 AS3은 서로 통신 할 수 없습니다. 여전히 AS2 파일의 소스에 액세스 할 수있는 경우 LocalConnection을 사용하여 일부 기능을 노출 할 수 있습니다. Grant Skinner의 깔끔한 도우미 클래스 인 SWFBridge가 있습니다. 여기에서 사용할 수 있습니다. http://www.gskinner.com/blog/archives/2007/07/swfbridge_easie.html

0

var loader : Loader = new Loader(); loader.contentLoaderInfo.addEventListener (Event.COMPLETE, onCompleteHandler); var 요청 : URLRequest = 새 URLRequest ("testLoadSwf.swf"); loader.load (request);

function onCompleteHandler (evt : Event) { //addChild(evt.currentTarget.content); } addChild (로더)