Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   connect(null) и BitmapData.draw() - конфликт, как решить? (http://www.flasher.ru/forum/showthread.php?t=145826)

cv' 20.10.2010 18:50

connect(null) и BitmapData.draw() - конфликт, как решить?
 
Доброго вам, уважаемые Flash-самураи!

Как быть?

Задача - сделать скриншот сцены. На сцене есть видео плеер. Скриншот не делается, выдает ошибку

*** Нарушение безопасности изолированной среды ***
Подключение к null прервано – нет разрешения от file://...

Код тривиальный:

Код AS1/AS2:

nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
 
bitmapData:BitmapData = new (blablabla);
bitmapData.draw(this);


Psycho Tiger 20.10.2010 19:03

Вам забыли на сервере где Вы берёте видео дать разрешение на съемку. Как в кинотеатре - смотреть можно, снимать на мобилку - нет )

cv' 20.10.2010 19:44

Нет никакого видео. Нет никакого сервера. NetStream и NetConnection созданы, но никакое видео не воспроизводят, а ошибка все равно есть.

И потом, в корне сервера (когда запрос все же случается) лежит файл

crossdomain.xml
Код:

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

и checkPolicyFile = true

mooncar 20.10.2010 19:51

а разве "checkPolicyFile = true" - это не из AS3.0 ?

cv' 20.10.2010 20:02

Вот эта ссылка утверждает, что в as2 он тоже есть.

mooncar 20.10.2010 20:32

Поробуйте добавить строку
Код AS1/AS2:

System.security.loadPolicyFile('http://www.....ru/crossdomain.xml');

У меня все работает по вашей ситуации.
http://www.heatcable.ru/test.swf
К слову сказать, локально работало и без секьюрных строк в коде и кросдоменника на сервере-источнике потока.

Psycho Tiger 20.10.2010 20:42

mooncar, скорее всего у тебя доверенная зона стоит на локалке.

mooncar 20.10.2010 20:58

Цитата:

Сообщение от Psycho Tiger (Сообщение 944184)
mooncar, скорее всего у тебя доверенная зона стоит на локалке.

Кстати, да, в целях упрощенного дебага.

cv' 21.10.2010 11:49

Цитата:

Сообщение от mooncar (Сообщение 944178)
Поробуйте добавить строку
Код AS1/AS2:

System.security.loadPolicyFile('http://www.....ru/crossdomain.xml');

У меня все работает по вашей ситуации.
http://www.heatcable.ru/test.swf
К слову сказать, локально работало и без секьюрных строк в коде и кросдоменника на сервере-источнике потока.

Круто! А можно посмотреть исходник?
А на счет "System.security.loadPolicyFile" - добавлял эту строку.

Ой! И расскажите пожалуйста как сделать это волшебное "доверенная зона стоит на локалке"? А то я так и не смог разобраться...

mooncar 21.10.2010 12:27

Исходника нет, не сохранял я его после компиляции.
Там ничего особенного, обычный код, который частично скопипащен из стандартного примера в хелпе (у вас такое же начало, работа с потоком), плюс кнопка с формированием битмапы как слепка объекта видео с последующем аттачем в новый мувик.

Дальнейшие слова (до PS) относятся к тестированию на хостинге.
Кросдоменник на моем сервере - источнике потока не запрашивался до записи строки
Код AS1/AS2:

System.security.loadPolicyFile('http://www.....ru/crossdomain.xml');

Почему так, я не знаю. Поэтому и вам посоветовал ее внести. После добавления все заработало, а до этого также выводилось сообщение, аналогичное вашему.
Я, например, что запрашивается, а что нет, отслеживаю с помощью HTTPFox. Хотя этот сниффер уже вроде как немодным стал, посоветую и вам его использовать в FF.


PS.
«сделать это волшебное "доверенная зона стоит на локалке"» - это касается только моего локального дебага, вам надо разбираться с вашей проблемой...
Но если хотите, можете настроить:
http://www.macromedia.com/support/do...manager04.html
Там написано: "The Settings Manager that you see above is not an image; it is the actual Settings Manager itself", это так и есть, это не инструкция, а сам менеджер ваших настроек.

После внесения ваших рабочих дисков в доверенную зону просто легче отлаживать работы при локальных запусках флешки - мне, например, работу класса ExternalInterface удобнее стало тестировать.


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

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