Веб-сайт, над которым я работаю (использующий AS2, потому что это oldschool), имеет больший индексный файл .swf, который загружает вложенные файлы SWF, используя loadMovie("foo1.swf", placeToShowSwf)
. Есть foo1.swf
через 4, что глупо, потому что единственное, что отличается между ними, - это одно число в адресе XML-файла, которое сообщает ему, какой контент загружать. Поэтому я хочу сократить это до одного файла с помощью простой функции, которую индексный файл вызывает для загрузки XML-файла, как показано здесь.
function setFooNum(i:Number) {
fooNum = i;
//my_xml = new XML(); edit: this line has since been removed and is kept for historical purposes
my_xml.load("foo"+fooNum+".xml");
};
Однако по какой-то причине XML-файл не загружается. Он загружается должным образом вне функции, но это не очень мне помогает. Он корректно меняет fooNum, но это не приносит мне никакой пользы, если уже загружается неправильный XML-файл. Насколько я могу судить, код ведет себя так, как будто my_xml.load("foo"+fooNum+".xml")
вообще не существует.
Это какая-то мера безопасности, о которой я не знаю, и есть ли способ ее обойти?
EDIT
Как отмечали несколько человек, виновником была линия my_xml = new XML()
. К сожалению, сейчас я получаю новую и захватывающую ошибку. Когда setFooNum(i)
вызывается сразу после loadMove()
в индексном файле, trace(fooNum)
внутри функции setFooNum()
печатает, что fooNum установлен правильно, но trace(fooNum)
внутри onLoad()
(что возвращает успех, несмотря на то, что загрузка видимо ничего, кстати) показывает, что fooNum не определено! Кроме того, я сделал кнопку в индексе swf, которая вызывает setFooNum(3)
(для целей отладки), что по какой-то причине заставляет ее работать нормально. Поэтому ожидание загрузки файла несколько секунд, похоже, решает проблему, но это невероятно уродливое решение.
Итак, как мне ждать, пока все полностью загрузится, прежде чем вызывать setFooNum()
?