2009-05-18 8 views
2

Я пытаюсь загрузить swf, записанный в AS2, в 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. Существует также аккуратный вспомогательный класс Грант Скиннер, получивший название 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);

функция onCompleteHandler (evt: Event) { //addChild(evt.currentTarget.content); } addChild (loader)

 Смежные вопросы

  • Нет связанных вопросов^_^