![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Помогите, пожалуйста, решить проблему с видимостью классов и кросс-скриптингом в разных доменах.
В общем ситуация такая: в главное приложение Main.swf (в домене siteA.com) загружаются swf-ки с разных доменов. С локального домена загружаются библиотеки компонентов и скинов, при чем в ApplicationDomain.currentDomain, т.е.: context = new LoaderContext(false, ApplicationDomain.currentDomain); Loader.load(new URLRequest("http://siteA.com/style.swf"), context); А каждый модуль загружается в свой домен, т.е. без указания context-а, чтобы не пересекались их внутренние классы и потом они нормально выгружались из памяти. Так вот проблема в том, что если swf-ка загружена, допустим, с домена "siteB.com", то при обращении в ней: var objClass:Class = ApplicationDomain.currentDomain.getDefinition('com.style.BigButton') as Class; var MyButton:MovieClip = new objClass(); На всех доменах есть файл "crossdomain.xml" со всеми правами доступа, для всех флешек прописано "Security.allowDomain('*')" но не помогает все равно. Что делать? |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 497
|
Искать нужно в том домене, в котором BigButton определен. Он ведь в siteA.com определен? Естественно, что в siteB его не будет. Смотрите ApplicationDomain.parentDomain.
Кстати, а зачем вообще создавать экземпляры через new (ApplicationDomain.getDefinition(...) as Class)? Почему просто в дочернем домене не написать new com.style.BigButton? |
|
|||||
|
Спасибо за советы, но пока всё равно не удаётся решить это. Дело в том, что у меня есть синглтон, в котором я храню глобальные переменные и ссылки и через который я хотел передать ссылку на нужный ApplicationDomain, так вот даже он создаётся заново для флешки с другого домена. Т.е. во всех модулях с основного домена он один, а для модулей с других доменов он совсем иной (смотрел в дебагере свойства), как будто он в другой области памяти или хз, как это объяснить...
![]() |
|
|||||
|
Так и есть - в отдельном SecurityDomain'е. Почитайте, тут все разжевано
__________________
...вселенская грусть |
|
|||||
|
Огоромное спасибо за ссылку - всё понятно и теперь всё заработало!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|