|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Полноэкранный снимок (Fullscreen Bitmap Draw = Error)
Как делать скриншот полноэкранной сцены???
В полноэкранном режиме выдаёт ошибку. И даже рекомендации этой самой ошибки не помогли. SecurityError: Error #2121: Нарушение изолированной среды: BitmapData.draw: file:///Main.swf не может осуществить доступ к https://www.macromedia.com/support/flashplayer/sys/. Этого можно избежать посредством вызова Security.allowDomain. at flash.display::BitmapData/draw() Последний раз редактировалось billion; 20.08.2012 в 04:45. |
|
|||||
Только что сделал тест, отрисовка работает:
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.display.StageDisplayState; import flash.events.Event; import flash.events.MouseEvent; import flash.text.TextField; public class Test extends Sprite { private var tf : TextField; public function Test() { tf = new TextField(); tf.text = "Hello"; tf.x = 10; tf.y = 10; addChild(tf); if (!stage) { addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); } else addedToStageHandler(); } private function addedToStageHandler(event : Event = null) : void { removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); stage.displayState = StageDisplayState.FULL_SCREEN; stage.addEventListener(MouseEvent.CLICK, stageClickHandler); } private function stageClickHandler(event : MouseEvent) : void { var bd : BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight); bd.draw(null); stage.displayState = StageDisplayState.NORMAL; var bm : Bitmap = new Bitmap(bd); addChild(bm); } } } 1. Какая версия плеера используется для тестирования (версия, standalone/web plugin) 2. Загружается ли эта флешка в другую при тестировании (прелоадером, в качестве модуля) Стоит обратить внимание на то, что при использовании полноэкранного отображения размер стэйджа никоим образом не меняется, то есть при снятии скриншота у вас получится скриншот окна в нормальном размере приложения, а не полноэкранном. |
|
|||||
Скорее всего, у Вас в рисуемых объектах есть картинки (или может быть swf-ка) с другого домена.
Если есть, то загружать их нужно в свой (можно, наверно, и дочерний) контекст безопасности с проверкой "политик" (checkPolicyFile = true) |
|
|||||
до сцены путь пишу так:
//код в mst классе //public static var m:Object = FlexGlobals.topLevelApplication; //а так уже вызываю из компонента bd = new BitmapData(mst.m.stage.stageWidth, mst.m.stage.stageHeight); bd.draw(mst.m.stage); //bd.draw(stage); тоже пробовал Download the Windows Flash Player 11.3 Plugin content debugger (for Netscape-compatible browsers) (EXE, 9.94MB) You have version 11,3,300,265 installed с размером стэйджа разобрался. это не проблема. проблема сделать скриншот. кстати у вас в коде почему то null на прорисовке.... это как? у меня ругается: ArgumentError: Error #2005: Неправильный тип параметра 0. Должен быть тип IBitmapDrawable. at flash.display::BitmapData/draw() А плеер когда выходит в полноэкранный режим, то запускается отдельный процесс "Adobe Flash Player". Его прям видно в процессах. И как мне кажется между этим процессом и диском С конфликт. Перепробовал почти всё. Файлы политик не пробовал использовать. Ещё вот так ругается: *** Нарушение безопасности изолированной среды *** SecurityError: Error #2121: Нарушение изолированной среды: BitmapData.draw: file:///C:/workspace/Flash/BAN3-2012-08-10/bin-debug/Main.swf не может осуществить доступ к https://www.macromedia.com/support/flashplayer/sys/. Этого можно избежать посредством вызова Security.allowDomain.SecurityDomain "file:///C:/workspace/Flash/BAN3-2012-08-10/bin-debug/Main.swf" пытался получить доступ к контексту Player UI (интерфейс пользователя проигрывателя) at flash.display::BitmapData/draw() дело в том что в полноэкранном режиме даже посмотреть не могу требует он этот файл или нет... смотрю через firebug (Firefox) . можкт другой инструмент использовать? |
|
|||||
Регистрация: Mar 2010
Сообщений: 4
|
Цитата:
Самый простой выход не ложить ничего на стейдж, тогда можно будет сделать скриншот с своей вьюшки(например главного клас, у Вас я так понял это "Main.as"), тойсть bd.draw(mst.m); а не Цитата:
|
|
|||||
точно! блин! не догадался подождать исчезновения этой надписи! спешил. ругалось именно на ("Press Ecs to exit full screen mode")!!!
слишком быстро тестил вариант с главным приложением работает! Благодарю за помощь! а то я уже обходные окольные пути разрабатывал. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
а кастинг потому что главное приложение у меня типа Application и всё это сделано во Flash Builder 4.6.
и с чего вы взяли что не тот тип? как написано в хелпе а сам интефейс так что всё ок. |
|
|||||
.
|
Кастить не надо [х]
Суетно все это. Оно там все до вас скастено. lvgrecords А вот про "Press Ecs to exit full screen mode" как https://www.macromedia.com/support/flashplayer/sys/ порадовали вы меня, аха. Разок встречал, но давно. Полез было в гуглю, но лениво стало. Поделитесь полезной ссылкой, как это чудо работает. P/S/ Правильно сказано: не ложить [x] |
Часовой пояс GMT +4, время: 09:59. |
|
« Предыдущая тема | Следующая тема » |
|
|