Волгоградец
03.03.2009, 11:07
Привет. Недавно столкнулся с проблемкой, решил, но непонятки остались. Имеем два swf - test1.swf и test2.swf. В них есть символ с таким кодом:
test1.swf
#initclip
function Clip():Void{}
Clip.prototype = new MovieClip();
Object.registerClass("Clip", Clip);
Clip.prototype.test = function():Void{
trace("TEST_1");
}
#endinitclip
В test2.swf то же самое, меняю только trace("TEST_2").
Так вот, если теперь я гружу в main.swf эти флэшки последовательно (по onLoadInit()), то все ок. Если же я пытаюсь грузить их однопоточно - т.е. одновременно и для каждого свой лоадер, то два раза выполняется trace("TEST_1")!
Или же если я меняю строку в test2.swf
Object.registerClass("Clip", Clip);
на
Object.registerClass("Clip2", Clip);
без изменения линкажа в библиотеке, то также дважды выполняется trace("TEST_1")!
Единственное что мне приходит в голову - это то что эти классы записываются куда-то в глобальную область видимости и каким-то образом перекрывают друг друга. Но разве они не должны принадлежать таймлайну каждого из подгружаемых мувиков?
Фуф, чувствую что не понятно объяснил, извиняйте.
test1.swf
#initclip
function Clip():Void{}
Clip.prototype = new MovieClip();
Object.registerClass("Clip", Clip);
Clip.prototype.test = function():Void{
trace("TEST_1");
}
#endinitclip
В test2.swf то же самое, меняю только trace("TEST_2").
Так вот, если теперь я гружу в main.swf эти флэшки последовательно (по onLoadInit()), то все ок. Если же я пытаюсь грузить их однопоточно - т.е. одновременно и для каждого свой лоадер, то два раза выполняется trace("TEST_1")!
Или же если я меняю строку в test2.swf
Object.registerClass("Clip", Clip);
на
Object.registerClass("Clip2", Clip);
без изменения линкажа в библиотеке, то также дважды выполняется trace("TEST_1")!
Единственное что мне приходит в голову - это то что эти классы записываются куда-то в глобальную область видимости и каким-то образом перекрывают друг друга. Но разве они не должны принадлежать таймлайну каждого из подгружаемых мувиков?
Фуф, чувствую что не понятно объяснил, извиняйте.