2009-05-18 9 views
2

AS2で記述されたswfをAS3 swfにロードしようとしています - Loaderクラスを使用し、Event.COMPLETEをリッスンしています。私onCompleteHandler機能では、私はImがしようとしてステージにこれを追加したい -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でいくつかの関数を公開することができます。また、SWFBridgeと呼ばれる助けてくれるヘルパークラスもあります。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 request:URLRequest = new URLRequest( "testLoadSwf.swf"); loader.load(request);

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

関連する問題