У меня проблема с запуском SWF в другом. Кажется, работает неверная версия кода. Вот объяснение окружающей среды.
a.swf (класс документа: ClassA ()) загружается в b.swf (класс документа: ClassB ()) с помощью типичных методов загрузки:
var _loader:Loader = new Loader();<br>
addChild(_loader);<br>
//add relevant event listeners...<br>
_loader.load(new URLRequest("b.swf"))
Прямо сейчас, конструктор ClassB таков:
public function ClassB()<br>
{<br>
trace("ClassB() version 1.0");<br>
}
Если я опубликую a.swf и b.swf, загрузив b.swf в a.swf, я получу трассировку «ClassB () версия 1.0»
Теперь, если я обновлю ClassB () до trace("ClassB() version 1.1")
и только , опубликую b.swf, а затем запустите a.swf, я ожидаю, что на выходе будет «ClassB () version 1.1» однако это все еще "ClassB () версия 1.0"!
Я не уверен, что происходит.
a.swf определенно загружает новую версию b.swf (я изменил объекты на сцене в b.swf, который добавлен как потомок ClassA (), так что эти изменения показывают) ... но это все еще работает старая (1.0) версия кода ClassB. Я также проверил это, запустив b.swf сам по себе, и он показывает 1.1
Я могу заставить его запустить версию ClassB 1.1, если я также переиздаю a.swf
Первое, что я могу вспомнить, это то, что ClassA и ClassB используют один и тот же путь к классам, поэтому, когда я публикую a.swf, он содержит версию ClassB, которая была создана в то время (1.0), а затем запускает эта версия (вместо новой версии / 1.1 внутри b.swf). Это верно? Есть ли способ избежать этого, сохраняя их на том же пути класса? Или проблема в другом?
Заранее спасибо!