![]() |
Проблемы с отображением AVM1 в AVM2
Есть 2 домена, на одном (допустим домен А) swf c AS3, на другом (допустим домен Б) swf c AS2.
На домене Б лежит crossdomain.xml Загружаю из Б в А swf, примерно так: Код AS3:
При тестах локально с таким кодом: Код AS3:
Что я делаю не так, и как заставить корректно работать swf из домена Б в swf c домена А? P.S. Флешки не общаются друг с другом, просто скрипты в загружаемой флешке не работают по отношению к ней же. |
прописать System.security.allowDomain("*"); в подгружаемой флешке не поможет?
и грузить в дефолтовый securityDomain |
System.security.allowDomain("*"); прописывал, не помогает.
А по подробнее про "грузить в дефолтовый securityDomain" можно? Т.е вместо ldrCntx.securityDomain = SecurityDomain.currentDomain; заменить на ldrCntx.securityDomain = null; так? |
да я сам не слишком ориентируюсь, сори
как я понял, по умолчанию флешка с другого домена грузится в контексте своего security domain, а с ldrCntx.securityDomain = SecurityDomain.currentDomain; в контексте загружающего, как если бы она было загружена с того же домена.. вот и подумалось, что с allowDomain("*") могло бы сложиться и с дефолтовой загрузкой, походу устранив косяк.., но это только предположение |
Спасибо. за совет, но косяк устранился через "дырку", но все же хотелось бы понять как это делается документированными методами.
Кто нить в курсе? |
Что за дырка, поясните.
|
Я не знаю дырки это или нет, одно из решений загрузки контента в обход политик безопасности демонстрировал __etc недавно, нечто подобное и у меня есть, но это, так сказать, временные заплатки, которые может и прикроют скоро. Хотелось бы решать проблемы "легальными" и надежными методами.
Решения через серверные скрипты-прокси не в счет. |
loadBytes что ли?
|
нет не bytes и loadBytes, чуток по другому
Код AS3:
|
Я не понял в чем тут «обход».
|
Обход в том, что при таком методе можно не беспокоится есть ли crossdomain.xml или нет его, в любом случае контент загрузится (вернее отобразится).
Хотя судя по документации такого эффекта быть не должно, или я что то недопонимаю? |
Вообще-то должно отобразится. Секьюрити запрещает обращение к контенту и только. В данном случае простое перемещение лоадера не является обходом политики.
|
Ну это радует )
Т.е это самое правильное решение в данном случае? Хотя в доках вроде как сказано, что если нет файла политики, то и загрузить его не удастся, ексепшн то вываливается, значит так делать низя, сделали б адобовцы тогда возможность загрузки любого контента без файла политики, а уже при доступе к нему проверку на безопасность. |
Цитата:
|
Я про то, что если на сервере источнике не будет файла кроссдоменной политики, то отобразить загруженный loader-ом контент без ухищрений не получится.
|
Каких ухищрений? addChild Loader-а — ухищрение? А я думал, что это вполне себе разумное действие.
|
Такс... что то я уже запутался. Зачем я тогда изобретаю велосипед?
Без crossdomain.xml addChild loadera выкидывает обшибку безопасности (нарушение изолированной среды... бла-бла-бла). Или нет? |
Не знаю, последний раз я загружал картинку с удаленного хоста сто лет назад.
Но не должен выдавать ошибку, особенно судя по чудному приведенному коду, где сначала есть попытка обратиться к контенту (что и вываливает ошибку), а затем уже addChild лоадера без всяких try … catch, что свидетельствует о том, что можно не выпендриваться и сразу делать addChild лоадера, не трогая контент. |
Не... Вы немного не поняли сути. Там не просто addChild изначального loadera :)
А ексепшн все же выдается, если напрямую добавлять лоадер в список отображения, об этом свидетельствует код из первого поста. Собственно поэтому и поднялся этот вопрос здесь (иначе бы не спрашивал). Естественно при тестах из Flash IDE или FD никаких ошибок не будет, проблемы начинаются после размещения swf в сети. |
В первом посте добавляется контент лоадера, а не сам лоадер.
|
Точно :)
Век живи - век учись, при добавлении самого лоадера никаких проблем с безопасностью при отображении. Что то я переработался :), ищу сложностей там где их нет вообще. Спасибо, будем знать. |
| Часовой пояс GMT +4, время: 01:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.