Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ошибка безопасности при загрузке из вторичной swf (http://www.flasher.ru/forum/showthread.php?t=175760)

s3dworld 23.02.2012 17:55

Ошибка безопасности при загрузке из вторичной swf
 
Всем доброго вечера!

Уже второй день не могу решить свою проблему. Есть Loader.swf и есть Game.swf. Пишу игру под социальную сеть ВКонтакте. На ВКонтактовский сервер заливаю Loader.swf, а на наш сервер - Game.swf. Для того чтобы каждый раз не бегать ВКонтакт, я решил локально запускать игру и связываться с их API. Вот в чём суть. Я успешно получаю список друзей, у которых установлена игра. Так же успешно получаю информацию о пользователях по полученным UIN'ам. Запоминаю из этой информации поле с адресом картинки. Далее я гружу эти картинки и вывожу их. Всё это успешно работает, если я запускаю с локального компьютера Game.swf (собственно именно в нём весь этот код). Стоит же мне запустить Loader.swf (а она в свою очередь грузит Game.swf и добавляет его в свой список отображения) локально или из ВКонтакта (из ВКонтакта вообще не выскакивает сообщений, просто не выводится и всё), то появляются ошибки. Вот что мне пишут:

Цитата:

SecurityError: Error #2122: Нарушение изолированной среды: Loader.content: http://????/Game.swf?1330004762315 не может осуществить доступ к http://cs5504.vkontakte.ru/????/????.jpg. Необходим файл политики, но, когда были загружены эти мультимедийные данные, флаг checkPolicyFile не был установлен.
at flash.display::Loader/get content()
Тогда я решил поставить этот флаг:

Цитата:

*** Нарушение безопасности изолированной среды ***
Подключение к http://cs5504.vkontakte.ru/????/????.jpg прервано – нет разрешения от http://????/Game.swf?1330005003350

SecurityError: Error #2123: Нарушение изолированной среды: Loader.content: http://????/Game.swf?1330004975044 не может осуществить доступ к http://cs5504.vkontakte.ru/????/????.jpg. Не предоставлен доступ к файлам политики.
at flash.display::Loader/get content()
Я уже и пробовал грузить Game.swf разными способами:

Код AS3:

loader.load(new URLRequest(url),new LoaderContext(true,ApplicationDomain.currentDomain,SecurityDomain.currentDomain));

И так:

Код AS3:

loader.load(new URLRequest(url),new LoaderContext(true));

И вот так:

Код AS3:

loader.load(new URLRequest(url));

Ничего не помогает. Помогите, пожалуйста! Сам уже ничего не понимаю. У меня нет вариантов. Первая swf может грузить, а дочерняя нет. Что мне надо прописать чтобы заработало?

GBee 23.02.2012 18:01

Хак вы не захотели использовать?

Добавлено через 2 минуты
Цитата:

*** Нарушение безопасности изолированной среды ***
Подключение к http://cs5504.vkontakte.ru/????/????.jpg прервано – нет разрешения от http://????/Game.swf?1330005003350
http://help.adobe.com/ru_RU/FlashPla...#allowDomain()

?

s3dworld 23.02.2012 18:11

GBee
Цитата:

Хак вы не захотели использовать?
Не, не хочется.

У меня в конструкторах обоих swf уже прописано:

Код AS3:

Security.allowDomain("*");
var localConnection:LocalConnection=new LocalConnection();
localConnection.allowDomain("*");


maxkar 23.02.2012 18:44

Цитата:

*** Нарушение безопасности изолированной среды ***
Подключение к http://cs5504.vkontakte.ru/????/????.jpg прервано – нет разрешения от http://????/Game.swf?1330005003350
allow-networking стоит при публикации (компиляции) Game.swf?

s3dworld 23.02.2012 18:51

maxkar
Цитата:

allow-networking стоит при публикации (компиляции) Game.swf?
Это вот этот?

http://xmages.net/storage/10/1/0/a/3...d/ed900a92.png

В обоих swf стояло "Доступ только к локальным файлам". Game.swf скомпилировал с другим параметром, но всё осталось по прежнему. Неужели никто не поможет?

maxkar 23.02.2012 18:54

Да, оно. В обеих поставьте "доступ только к сети". Так как Game.swf вы грузите в домен безопасности Loader.swf, там могут использоваться и его (loader'а) настройки.

s3dworld 23.02.2012 19:02

maxkar
Цитата:

Да, оно. В обеих поставьте "доступ только к сети". Так как Game.swf вы грузите в домен безопасности Loader.swf, там могут использоваться и его (loader'а) настройки.
Не помогло. Всё так же. (((((

maxkar 23.02.2012 19:12

А сейчас какой вариант сделан и какая ошибка? Интересует загрузка Game.swf в ApplicationDomain.currentDomain + SecurityDomain.currentDomain, для картинок - checkPolicyFile в true и для обоих файлов "доступ только к сети".

Ошибок было изначально три (2122, 2123 и невозомжность соединения), что осталось сейчас?

s3dworld 23.02.2012 19:26

maxkar
Сейчас всё подробно опишу.

Для Loader.swf поставил "Доступ только к сети". Загружаю swf следующим кодом:

Код AS3:

gameLoader.load(
    new URLRequest("http://????/Game.swf?"+(new Date()).getTime().toString()),
    new LoaderContext(true,ApplicationDomain.currentDomain));

Для Game.swf поставил "Доступ только к сети". Загружаю картинки следующим кодом:

Код AS3:

loader.load(new URLRequest(url),new LoaderContext(true));

При этом выводит:

Цитата:

*** Нарушение безопасности изолированной среды ***
Подключение к http://cs9315.vkontakte.ru/????/????.jpg прервано – нет разрешения от http://????/Game.swf?1330010554854

*** Нарушение безопасности изолированной среды ***
Подключение к http://cs5504.vkontakte.ru/????/????.jpg прервано – нет разрешения от http://????/Game.swf?1330010554854
SecurityError: Error #2123: Нарушение изолированной среды: Loader.content: http://????/Game.swf?1330010554854 не может осуществить доступ к http://cs5504.vkontakte.ru/????/????.jpg. Не предоставлен доступ к файлам политики.
at flash.display::Loader/get content()
at d.game.loading::UsersLoad/GetData()
at d.game.gui.mainBottom::GUIMainBottom/ResetFriends()
at d.game.gui.mainBottom::GUIMainBottom()
at d.game.manager::GUIManager()
at d.game::Game/OnFirstLoadSuccess()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at d.game.loading::FirstLoad/OnMapPreparationSuccess()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at d.game.manager::MapManager/OnAllObjectsLoadSuccess()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at d.game.loading::MapLoad/OnObjectLoadSuccess()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at d.game.loading::ObjectLoad/OnComplete()
А запустить с:

Код AS3:

gameLoader.load(
    new URLRequest("http://eqtst.anybrothers.com/gamenew/i/Game.swf?"+(new Date()).getTime().toString()),
    new LoaderContext(true,ApplicationDomain.currentDomain,SecurityDomain.currentDomain));

Я не могу. Ругается:

Цитата:

SecurityError: Error #2142: Нарушение изолированной среды: локальные SWF-файлы не могут использовать свойство LoaderContext.securityDomain. file:///????/Loader.swf пытался загрузить http://????/Game.swf?1330010714546.
at flash.display::Loader/_load()
at flash.display::Loader/load()
at d::Main/gameLoad()
at d::Main/onAddedToStage()
Я пока вообще ничего не понимаю.

MikroAcse 23.02.2012 19:54

Цитата:

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


Часовой пояс GMT +4, время: 03:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.