Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.03.2010, 03:29
Nedash вне форума Посмотреть профиль Отправить личное сообщение для Nedash Найти все сообщения от Nedash
  № 1  
Ответить с цитированием
Nedash

Регистрация: Mar 2010
Сообщений: 7
По умолчанию Проблемы доступа к swf загруженому с сервера

Загружаю с сервера swf файл.

loaderSource.load(new URLRequest("http://.../xxx.swf"))

loaderDest.loadBytes(loaderSource.contentLoaderInfo.bytes);
container.addChild(loaderDest);

И вот тут у меня начинают валится в лог ошибки:

http://localhost:8080/
*** Нарушение безопасности изолированной среды ***
SecurityDomain "http://localhost:8080/crossdomain.xml" пытался получить доступ к несовместимому контексту "file:///D|/client/client.swf"

Если просто добавляю на сцену container.addChild(loaderSource), то все проходит нормально. Но этот вариант меня не устраивает, так как контент из этого файла, будет добавлен на сцену много раз, поэтому и возникает необходимость его клонировать...

Как быть?

Старый 19.04.2010, 20:03
Dan Mor вне форума Посмотреть профиль Отправить личное сообщение для Dan Mor Найти все сообщения от Dan Mor
  № 2  
Ответить с цитированием
Dan Mor

Регистрация: Apr 2010
Сообщений: 1
Меня тоже этот вопрос интересует.
Как вообще можно загружать с сервера обьект и рисовать его экземпляры в разных местах на сцене?
Кто нибудь может помочь?

Старый 19.04.2010, 23:44
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 3  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Устанавливаете прогу апаче и гразите флешку с вирт сервера
Код:
http://loaclhost/my.swf
она потянет в себя файл client.swf который тоже будет на вирт сервере по адресу
Код:
http://loaclhost/client.swf
И таким образом все будет работать вариант б (для ленивых) запускаете флешку
my.swf выбираете в плеере файл - создать проектор и опа, полученный my.exe грузит любые другие swf с компа и не показывает никакую безопастность.
__________________
Гоночка

Старый 20.04.2010, 01:28
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Nedash Посмотреть сообщение
Загружаю с сервера swf файл.

loaderSource.load(new URLRequest("http://.../xxx.swf"))

loaderDest.loadBytes(loaderSource.contentLoaderInfo.bytes);
container.addChild(loaderDest);

И вот тут у меня начинают валится в лог ошибки:

http://localhost:8080/
*** Нарушение безопасности изолированной среды ***
SecurityDomain "http://localhost:8080/crossdomain.xml" пытался получить доступ к несовместимому контексту "file:///D|/client/client.swf"

Если просто добавляю на сцену container.addChild(loaderSource), то все проходит нормально. Но этот вариант меня не устраивает, так как контент из этого файла, будет добавлен на сцену много раз, поэтому и возникает необходимость его клонировать...

Как быть?
Разместить разрешение распространителя (по Муку). Т.е. справный crossdomain.xml.
Второй вариант - использовать импортирующую загрузку. Поиск по форуму.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 21.04.2010, 02:04
Nedash вне форума Посмотреть профиль Отправить личное сообщение для Nedash Найти все сообщения от Nedash
  № 5  
Ответить с цитированием
Nedash

Регистрация: Mar 2010
Сообщений: 7
Цитата:
Сообщение от dimarik Посмотреть сообщение
Разместить разрешение распространителя (по Муку). Т.е. справный crossdomain.xml.
Второй вариант - использовать импортирующую загрузку. Поиск по форуму.
Пробовал оба варианта, и через crossdomain.xml, и через импортирующую загрузку.
Вот содержимое crossdomain.xml:

<cross-domain-policy>
<allow-access-from domain="*" secure="false" />
<site-control permitted-cross-domain-policies="all"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>


Правда, ероры генерятся только при работе из под IDE, это неприятно тем, что чуток засорется лог, хочется избавиться от них.

При использовании импортирующей загрузки, возникает другая ошибка:

SecurityError: Error #2142: Нарушение изолированной среды: локальные SWF-файлы не могут использовать свойство LoaderContext.securityDomain. file:///D|/f1/client/client.swf пытался загрузить http://localhost:8080/GW/ships/ship.swf., и соот. вобще ничего не работает.

Хотелось обойтись без импортирующей загрузки и только убрать вывод в лог ероров.


Последний раз редактировалось Nedash; 21.04.2010 в 02:14.
Старый 22.04.2010, 00:58
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
По первоначальной ошибке понятно, что политикой безопасности FP запрещен доступ к содержимому как данным. BitmapData#draw(loader.content) не будет работать, но картинка может быть показана на экране, если сделать addChild(loader).

Импортирующая загрузка не работает для локально работающей флешки (Security.sandboxType != Security.REMOTE). Т.е. для нее нельзя указывать SecurityDomain, и я здесь становлюсь КО.

Проверьте, что у вашей загружающей флешки стоит "беспредел" -
Код AS3:
trace(Security.sandboxType == Security.LOCAL_TRUSTED)
.

С нею, когда Вы загружаете внешнюю swf посредством локальной swf разрешение распространителя не имеет значения (crossdomain.xml игнорируется). Также игнорируется и разрешение разработчика (Security.allowDomain в loadee флешке).
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 22.04.2010 в 01:00.
Старый 22.04.2010, 02:31
Nedash вне форума Посмотреть профиль Отправить личное сообщение для Nedash Найти все сообщения от Nedash
  № 7  
Ответить с цитированием
Nedash

Регистрация: Mar 2010
Сообщений: 7
Цитата:
Сообщение от dimarik Посмотреть сообщение
По первоначальной ошибке понятно, что политикой безопасности FP запрещен доступ к содержимому как данным. BitmapData#draw(loader.content) не будет работать, но картинка может быть показана на экране, если сделать addChild(loader).
Просто у меня один объект показывается на сцене несколько раз, а добавить один и тот же инстанс на сцену можно только один раз, отсюда же и пришлось заняться клонированием контента.

Цитата:
Сообщение от dimarik Посмотреть сообщение
Проверьте, что у вашей загружающей флешки стоит "беспредел".
Да, у флешки стоит "беспредел"

Старый 22.04.2010, 02:45
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Nedash Посмотреть сообщение
Да, у флешки стоит "беспредел"
Тогда ей разрешено "обращение к содержимому в виде данных". И Вы можете бреспрепятственно обращаться к средствам клонирования объекта.

Тип безопасности песочницы - "локальный с установленным доверием". Операция: обращение к содержимому в виде данных из ресурса в удаленной области действия - "Допускается". Колин Мук, Actionscript 3.0 для Flash. ПОдробное руководство. - СПб.: Питер, 2009, с. 478, т. 19.6.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 22.04.2010 в 02:47.
Старый 25.04.2010, 23:47
Nedash вне форума Посмотреть профиль Отправить личное сообщение для Nedash Найти все сообщения от Nedash
  № 9  
Ответить с цитированием
Nedash

Регистрация: Mar 2010
Сообщений: 7
Цитата:
Сообщение от dimarik Посмотреть сообщение
Тогда ей разрешено "обращение к содержимому в виде данных". И Вы можете бреспрепятственно обращаться к средствам клонирования объекта.

Тип безопасности песочницы - "локальный с установленным доверием". Операция: обращение к содержимому в виде данных из ресурса в удаленной области действия - "Допускается". Колин Мук, Actionscript 3.0 для Flash. ПОдробное руководство. - СПб.: Питер, 2009, с. 478, т. 19.6.
Ясно. Хоть есть нюансы, но будем считать что работает Спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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