Я создаю приложение оболочки, которое будет загружать внутри него другие SWF-файлы в зависимости от того, в какой главе и в каком разделе находится пользователь. Оболочка написана на ActionScript 3 и загружает в нее различные SWF-файлы AS3, AS2 и AS1. , Я использую LocalConnection после того, как SWF AS2 и AS1 были загружены, чтобы установить правильную переменную для flash, чтобы найти правильный файл XML для загрузки для этой главы / swf. До сих пор у меня не было проблем с загрузкой swfs AS2, но 2 или 3 swfs AS1, которые у меня есть, просто не устанавливаются и не загружаются вообще. В прошлом я очень мало работал с AS1, кроме отладки или настройки старого кода, поэтому мне интересно, не упустил ли я что-то действительно очевидное?
Вот код для загрузки и подключения к AS1 swf из AS3:
AS1SWF = evt.target.content;
sendSwf_lc = new LocalConnection();
addChild(AS1SWF);
stopPlayback(fileID);
private function stopPlayback(fileID:String):void {
sendSwf_lc.send("LocalConnection", "init", fileID, "English");
}
Вот код в приложении AS1 для приема этого вызова LocalConnection.
var conn:LocalConnection;
conn = new LocalConnection();
conn.connect("LocalConnection");
conn.init = function(chapter, language) {
drillFile = "matching/xml/"+chapter+".xml";
drill = new XML();
drill.ignoreWhite = true;
drill.onload = getDrillXML;
drill.load(drillFile);
this.close();
}
function getDrillXML() {
trace("Application is starting now!");
//Rest of code
}
Я, очевидно, кое-что упустил, но вот где swf добирается ... Он загрузит swf AS1 правильно, отправит правильную переменную и запустит функцию init. Он не будет вызывать функцию getDrillXML для события onLoad. Я проверил это с работающим XML и неработающим XML, оно определенно выдаст сообщение об ошибке загрузки, если путь XML неправильный, поэтому, когда я делаю это правильно, он определенно загружает правильный XML. У меня есть оператор trace в самом верху функции getDrillXML, и он никогда не появляется, поэтому он должен быть чем-то, включающим в себя класс XML в AS1, и он неправильно загружает файл XML, завершает загрузку и затем переходит к указанной функции после того, как это сделано.
Я проверил это без LocalConnection и просто жестко запрограммировал переменные там с помощью локального swf, и он работает просто отлично, все загружается и приложение работает как задумано.
Кто-нибудь еще сталкивался с этим раньше? Это проблема сфер? Я что-то упускаю из AS1-версии LocalConnection или XML-классов? Файл опубликован на флеш плеере 6 swf.
Спасибо за любую помощь!