Я создаю приложение оболочки, которое будет загружать другие swf-файлы внутри него в зависимости от того, в какой главе и в каком разделе находится пользователь. Оболочка написана на ActionScript 3 и загружает в нее различные AS3, AS2 и AS1 swf. Я использую LocalConnection после загрузки AS2 и AS1 swf, чтобы установить правильную переменную для flash, чтобы найти правильный XML-файл для загрузки для этой главы / swf. До сих пор у меня не было проблем с загрузкой AS2 swf, но 2 или 3 AS1 swf, которые у меня есть, похоже, просто не устанавливаются и не загружаются вообще. В прошлом я очень мало работал с 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 ... Он правильно загрузит AS1 swf, отправит правильную переменную и запустит функцию инициализации. Он не попадет в функцию getDrillXML для события onLoad. Я тестировал это с работающим XML и нефункционирующим XML, он определенно выдаст сообщение об ошибке загрузки, если путь XML неверен, поэтому, когда я делаю это правильно, он определенно загружает правильный XML. У меня есть оператор трассировки в самом верху функции getDrillXML, и он никогда не появляется, поэтому это должно быть что-то, связанное с классом XML в AS1, и оно неправильно загружает файл XML, завершает загрузку и затем переходит к указанной функции после того, как это будет сделано.
Я тестировал это без LocalConnection и просто жестко закодировал переменные с помощью локального swf, и он работает нормально, все загружается, и приложение работает, как задумано.
Кто-нибудь еще сталкивался с этим раньше? Это проблема объема? Мне что-то не хватает в версии AS1 классов LocalConnection или XML? Файл публикуется на флешке 6 swf.
Спасибо за любую помощь!