as3 загружены внешние классы swf

У меня есть внешний swf (ext.swf), который загружен в мой проект FlashDevelop as3.

Когда я делаю проверку (objectsList[0] - Class1), я получаю false, хотя элемент objectsList[0] - Class1. Class1 находится в ext.swf

Но когда я пишу команду типа (objectListInExternalSwf[0] is Class1) во внешнем swf, а затем использую этот swf в моем проекте и выполняю проверку (objectsList[0] is Class1) я получаю истину.

Мой вопрос: должен ли я использовать все классы в моем внешнем swf, чтобы компилятор должен был поместить их в swf, чтобы их можно было использовать в других проектах, где swf загружается как внешний?


person Community    schedule 05.03.2012    source источник
comment
Вы можете разместить код? Что такое objectsList []? Как он образуется? Где код, в котором это создано? Очень сложно взять вашу конкретную реализацию и просто угадать, как вы это сделали, чтобы придумать решение. Добро пожаловать в stackoverflow, кстати.   -  person    schedule 06.03.2012


Ответы (1)


По умолчанию, когда вы загружаете SWF-файл, его содержимое помещается в отдельный ApplicationDomain. Таким образом, даже если у вас один и тот же класс, Flash будет рассматривать его как другой.

Чтобы использовать одно и то же определение класса, вы должны находиться в одном ApplicationDomain (или наследовать от того же):

var l : Loader = new Loader;
l.load( new URLRequest("foo.swf"),
        new LoaderContext(false, new ApplicationDomain(ApplicationDomain.currentDomain));
person Simon Eyraud    schedule 06.03.2012