Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   нет доступа к контенту (http://www.flasher.ru/forum/showthread.php?t=184679)

Владимир Буквин 24.09.2012 17:43

нет доступа к контенту
 
загрузчик загружает swf файл, но после загрузки не удается получить доступ к контенту.
swf файл не содержит в себе
Код AS3:

Security.allowDomain

. не хочу вписывать это в каждый свой файл. Положил вместо этого в корень сервера crossdomain.xml c таким содержимым:

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>

загружаю swf таким образом
Код AS3:

            context = new LoaderContext(true);
            _loader.load(request, context);

все равно доступа к контенту нет.
это происходит именно в pepflashplayer 21.0.1180.89 от Google chrome
можно это как-то обойти?

Aquahawk 24.09.2012 18:30

Попробуйте перед этим загрузить несуществующий файл с вашего домена обычным urlLoader, из обработчика ошибки его загрузки запустите загрузку того что вам надо, если начнёт работать то расскажу что произошло.

Gaen 25.09.2012 03:59

crossdomain.xml - это про securityDomain, а вам, видимо, нужен applicationDomain.

Цитата:

When loading the file, you can specify that the file be included in the same application domain as that of the Loader object, by setting the applicationDomain parameter to flash.system.ApplicationDomain.currentDomain. By putting the loaded SWF file in the same application domain, you can access its classes directly. This can be useful if you are loading a SWF file that contains embedded media, which you can access via their associated class names.
Код AS3:

var context:LoaderContext = new LoaderContext(); 
context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = ApplicationDomain.currentDomain;
var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/library.swf");
var ldr:Loader = new Loader();
ldr.load(urlReq, context);

http://help.adobe.com/en_US/as3/dev/...0204-7e13.html

Владимир Буквин 27.09.2012 12:06

тогда выходит ошибка
Нарушение изолированной среды: локальные SWF-файлы не могут использовать свойство LoaderContext.securityDomain.

Добавлено через 2 минуты
если уберу
Код AS3:

context.securityDomain = SecurityDomain.currentDomain

, тогда грузит, но не дает доступ к контенту

Aquahawk 27.09.2012 12:11

Посмотрите фаербагом грузится ли кроссдоменник и попробуйте сделать то что я вам рекомендовал.

Владимир Буквин 27.09.2012 12:14

кросдоменник грузится, сейчас пробую urlLoader

Добавлено через 13 минут
попытался загрузить текстовый файл, которого не существует, в обработчике ошибки начал грузить графический файл, - все тоже самое - нет доступа к контенту

Aquahawk 27.09.2012 12:39

значит кроссдоменник не валиден.
Попробуйте в mm.cfg включить PolicyFileLog = 1 и посмотреть что там будет. Почитать на тему тыц и тыц

Добавлено через 37 секунд
И ещё можете минимальный воспроизводимый пример сюда залить.

GBee 27.09.2012 14:02

Цитата:

локальные SWF-файлы не могут использовать свойство LoaderContext.securityDomain.
Видимо надо use-network использовать

Владимир Буквин 27.09.2012 15:01

пробовал use-network=true и use-network=false ошибка все равно выходит

Добавлено через 39 минут
[quote=Aquahawk;1097632]значит кроссдоменник не валиден.
Попробуйте в mm.cfg включить PolicyFileLog = 1 и посмотреть что там будет. Почитать на тему тыц и тыц

в этих статьях много интересного, но почему-то не срабатывает
TraceOutputFileEnable=1
TraceOutputFileName=C:\logs\flashLogs.txt

изначально mm.cfg у меня отсутствовал,я его создал. после компиляции проекта, этот файл используется(я использую notepadd++, в котором открыт mm.cfg и flashLogs.txt) - Notepad++ оповещает, когда в этих файлах происходят изменения. в mm.cfg они происходят, а в логе нет

Добавлено через 43 минуты
нашел, куда они пишутся
C:\Users\UserName\AppData\Roaming\Macromedia\Flash Player\Logs

Wadimir 28.09.2012 12:21

-compiler.allow-source-path-overlap -use-network=false или true


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

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