![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Документация говорит, что классы загруженной флешки доступны через getDefenitinByName(имя). А теперь предположим, что загружено 10 разных флешек, с разными классами, но у некоторых классов имена совпадают, хотя по сути сами классы разные.
Или я чего-то не пойму, или что-то не продуманно. Что в таком случае должен вернуть getDefenitinByName() для имени, которое повторяется? |
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Был буквально неделю назад такой же случай. При локальной работе флешки с одинаковым параметром name возвращались ссылки на разные классы, как только загрузил в сеть, так ссылка возвращалась только на класс который был загружен в первом swf файле.
|
|
|||||
|
Lorem ipsum
|
я как-то не задумывался об этом, потому что на автомате с фанатизмом прописываю полный путь к классу 0о
__________________
Поймай яблоко 2! |
|
|||||
|
Zebestov, жуть. Не лень полный путь писать?
![]() По-хорошему, конечно, надо брать конкретную флэшку и делать ей loaderInfo.applicationDomain.getDefinition(name) А getDefinitionByName - просто для удобства при работе с простой структурой, а не как у вас. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
Я так думаю что эпликейшен домейн решает эту проблему, но не уверен. Но я уверен что в документации написано все на эту тему.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Если загрузка происходит в разные домены, то и получить через getDefinitionByName классы не получится. А если в текущий, то класс может быть только один, остальные подгруженные не будут инициализироваться.
|
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
Ну обычным способом видимо нет :/
|
|
|||||
|
Рискну предположить, что если несколько флешек грузить в текущий applicationдомен, то классы с одинаковыми именами объединяться, как при множественном наследовании. Что будет с функциями - моя гипотеза не разъясняет.
На эту мысль меня натолкнули эксперименты. Возможно кто-то назовет меня Кэпом, но... Опытным путем установлено, что если грузишь флешку в текущий applicationDomain, то даже никаких getDefenitinByName не нужно - просто потом юзаем классы из подгруженной флешки, как если бы они были в родительской, и проблем не возникает. И кроме того, интересная штука -- если в родительской флешке класс Foo extends Bar уже есть, а в загружаемой - есть класс Foo, унаследованный от MovieClip (сделанный во флеш), то в результате появляется Foo с графикой -- то есть, происходит как бы множественное наследование. На практике так делать оказалось удобно - дело в том, что через swc не получается подгружать в проект анимацию (компилятор вылетает с ошибкой java.lang.NullPointerException), а вот если просто откомпилить fla в отрыве от исходников, а исходники включить в проект, и дальше при инициализации откомпиленную swf загружать, то все работает. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|