Форум 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=181904)

Esigns 05.07.2012 18:06

Не берет из браузера битмап
 
Нужно отпечатать через битмап картинку.

Пишу код:
Код AS3:

var bmpData:BitmapData = new BitmapData(map.width, map.height, false);
bmpData.draw(map);
bmp = new Bitmap(bmpData, "auto", true);
 
var s:Sprite = new Sprite();
s.addChild(bmp);
 
var pj:PrintJob = new PrintJob();
if (pj.start()) {                               
    pj.addPage(s);
    pj.send();
}

С флеша ЦС3 отправляет на печать и все отлично, но с браузера не хочет нормально брать битмап.
Пробовал добавлять printAsBitmap = true в PrintJobOptions.
не работает и все. Иногда добавляется на печать и висит в очереди и по истечению таймаута удаляется из очереди само, иногда просто "зависает" в том месте где нужно взять битмап(когда я беру его вручную).

Что делать хз.

strangedk 05.07.2012 18:12

вы делаете

Код AS3:

bmpData.draw(map);

У меня подозрение что на map содержатся какие-то картинки, которые загружаются оттуда где нет crossdomain.xml

нужно добавить файл crossdomain.xml в корень домена

Aquahawk 05.07.2012 18:14

нет разрешения от какой-то картинки которую загрузили. Ключевые слова для поиска bitmapdata crossdomain

Esigns 05.07.2012 18:40

У меня карта отображается на экране, т.е я ее загрузил.
Я могу отправить на печать на прямую карту pj.addPage(map) и все тайлы отпечатаны.
Если же попытаться сделать битмап тогда флеш начинает тупить(причем только из браузера).

Aquahawk 05.07.2012 18:53

направление вам дали. То что вы загрузили и отобразили на экране картинку не всегда даёт вам право её сохранить, отрисовать в битмап, напечатать, или ещё что-нибудь с ней сделать. В некоторых условиях её можно только показывать юзеру. Ваше описание очень похоже на то что происходит.

Esigns 05.07.2012 19:00

Ок. Тогда буду смотреть что к чему. Спасибо

strangedk 05.07.2012 19:19

Место (путь) откуда вы загружаете картинку - для браузера как правило "чужое".

Поэтому если картинка у вас находится по адресу www.some.com/somefolder/image.jpg то по адресу www.some.com/crossdomain.xml должен находиться файл crossdomain.xml с содержанием:

Код AS3:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
        <allow-access-from domain="*" />
        <site-control permitted-cross-domain-policies="all"/>
</cross-domain-policy>


Котяра 05.07.2012 20:33

Можно обойти безопасность через хак:

Esigns 11.10.2012 23:20

Котяра
Спасибо!!!, хак проканал:)
Правда потом, через 2 месяца обновился плеер и мне пришлось таки переделывать всю эту муть, но все равно ОГРОМНОЕ спасибо, благодаря твоему совету я смог сдать проект и получить деньги за него.
Спасибо всем кто отписался.

dimarik 12.10.2012 00:35

Таки есть новый хак )

caseyryan 12.10.2012 08:20

Крутяк ) Конечно скорее всего и это залатают, но пока работает, буду юзать =)


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

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