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

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

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

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
По умолчанию Полноэкранный снимок (Fullscreen Bitmap Draw = Error)

Как делать скриншот полноэкранной сцены???

В полноэкранном режиме выдаёт ошибку. И даже рекомендации этой самой ошибки не помогли.

Код AS3:
Security.allowDomain('*');
Security.allowInsecureDomain('*');
bd.draw(stage);
Код AS3:
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.
Старый 20.08.2012, 10:32
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 2  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
Только что сделал тест, отрисовка работает:
Код AS3:
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. Загружается ли эта флешка в другую при тестировании (прелоадером, в качестве модуля)

Стоит обратить внимание на то, что при использовании полноэкранного отображения размер стэйджа никоим образом не меняется, то есть при снятии скриншота у вас получится скриншот окна в нормальном размере приложения, а не полноэкранном.
__________________
Блог, Twitter
Брюзга.

Старый 20.08.2012, 10:35
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 3  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Скорее всего, у Вас в рисуемых объектах есть картинки (или может быть swf-ка) с другого домена.
Если есть, то загружать их нужно в свой (можно, наверно, и дочерний) контекст безопасности с проверкой "политик" (checkPolicyFile = true)

Старый 20.08.2012, 19:25
billion вне форума Посмотреть профиль Отправить личное сообщение для billion Посетить домашнюю страницу billion Найти все сообщения от billion
  № 4  
Ответить с цитированием
billion

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
до сцены путь пишу так:

Код AS3:
//код в 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); тоже пробовал
версия плеера 11.3
Код:
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
нет. swf-ка одна. Main.swf.

с размером стэйджа разобрался. это не проблема. проблема сделать скриншот.

кстати у вас в коде почему то null на прорисовке.... это как? у меня ругается:

Код AS3:
ArgumentError: Error #2005: Неправильный тип параметра 0. Должен быть тип IBitmapDrawable.
	at flash.display::BitmapData/draw()
я так понимаю у меня ругается именно на кросс-политику. запускаю с диска с:

Код:
file:///C:/workspace/Flash/BAN3-2012-08-10/bin-debug/Main.html#
А плеер когда выходит в полноэкранный режим, то запускается отдельный процесс "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) . можкт другой инструмент использовать?

Старый 20.08.2012, 19:43
lvgrecords вне форума Посмотреть профиль Отправить личное сообщение для lvgrecords Найти все сообщения от lvgrecords
  № 5  
Ответить с цитированием
lvgrecords

Регистрация: Mar 2010
Сообщений: 4
Цитата:
я так понимаю у меня ругается именно на кросс-политику
Именно, Вы наверное пробуете сделать скриншот когда на сцене находить мувик от Адобе ("Press Ecs to exit full screen mode"), а он как раз загружается с другого домейна.

Самый простой выход не ложить ничего на стейдж, тогда можно будет сделать скриншот с своей вьюшки(например главного клас, у Вас я так понял это "Main.as"), тойсть
bd.draw(mst.m);
а не
Цитата:
bd.draw(mst.m.stage);

Старый 20.08.2012, 19:57
billion вне форума Посмотреть профиль Отправить личное сообщение для billion Посетить домашнюю страницу billion Найти все сообщения от billion
  № 6  
Ответить с цитированием
billion

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
точно! блин! не догадался подождать исчезновения этой надписи! спешил. ругалось именно на ("Press Ecs to exit full screen mode")!!!

слишком быстро тестил

вариант с главным приложением работает!

Код AS3:
bd = new BitmapData(mst.m.width, mst.m.height);
bd.draw(mst.m as DisplayObject);
Благодарю за помощь!
а то я уже обходные окольные пути разрабатывал.

Старый 21.08.2012, 12:02
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
bd.draw(mst.m as DisplayObject);
К чему здесь кастинг? Да еще не в тот тип данных, который требует BitmapData#draw()?
__________________
Reality.getBounds(this);

Старый 21.08.2012, 16:44
billion вне форума Посмотреть профиль Отправить личное сообщение для billion Посетить домашнюю страницу billion Найти все сообщения от billion
  № 8  
Ответить с цитированием
billion

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
а кастинг потому что главное приложение у меня типа Application и всё это сделано во Flash Builder 4.6.

и с чего вы взяли что не тот тип?

как написано в хелпе
Код:
BitmapData.draw(source:IBitmapDrawable, .....
а сам интефейс
Код:
IBitmapDrawable Implementors BitmapData, DisplayObject
так что всё ок.

Старый 21.08.2012, 18:31
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 9  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
По этой же логике нет смысла кастить Application к DisplayObject, он является его наследником.
__________________
משיח לא בא
משיח גם לא מטלפן

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Кастить не надо [х]
Суетно все это. Оно там все до вас скастено.

lvgrecords
А вот про "Press Ecs to exit full screen mode" как https://www.macromedia.com/support/flashplayer/sys/ порадовали вы меня, аха. Разок встречал, но давно. Полез было в гуглю, но лениво стало. Поделитесь полезной ссылкой, как это чудо работает.

P/S/ Правильно сказано: не ложить [x]
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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