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

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

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

Регистрация: May 2009
Сообщений: 13
По умолчанию Скриншот в AS2

Привет всем. Я новичек но уже долгое время бьюсь над проблемой создания скриншотов клипов через вэб-интерфейс.
(внешний класс и пхп часть не обсуждаем)

Код AS3:
import flash.display.BitmapData;
import com.quasimondo.display.BitmapExporter;
var webcam:Camera = Camera.get();
image_mc.cam.attachVideo(webcam);
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth());
image_mc.loadMovie("http://test1.ru/screnshoter/flash/PHP/Creatures.swf");
var snapshot:BitmapData = new BitmapData(240,320,false);
BitmapExporter.gatewayURL = "http://test1.ru/screnshoter/flash/PHP/BitmapExporter.php";
snapshot.draw( image_mc);
BitmapExporter.saveBitmap(snapshot, "snapshot.png", "turboscan", 0 );
В общем он сохраняет пустые скрины, хотя на экране мувик подгружается и показывается.
если я уберу создание нового клипа и подгрузку, и создам вручную в исходнике мувик image_mc с картинкой или анимацией то он все правильно скринит.

В принципе пробовал рисовать в созданном клипе , скринит нормально вместе с рисунком.
Код AS3:
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth());
with (image_mc){  тут рисуем };
Что сделать чтобы скринил загруженный мувик ? Заранее спасибо.


Последний раз редактировалось bazic; 15.05.2009 в 01:03.
Старый 14.05.2009, 21:56
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
1. Вы не дожидаетесь загрузки.
2. Не извесно, находится ли картинка в "доверенной" зоне или нет.
2. loadMovie - deprecated, используйте вместо него MovieClipLoader, особенно обратите внимание на checkPolicyFile свойство этого класса.
__________________
Hell is the possibility of sanity

Старый 14.05.2009, 22:32
bazic вне форума Посмотреть профиль Отправить личное сообщение для bazic Найти все сообщения от bazic
  № 3  
Ответить с цитированием
bazic

Регистрация: May 2009
Сообщений: 13
Цитата:
Сообщение от wvxvw Посмотреть сообщение
1. Вы не дожидаетесь загрузки.
2. Не извесно, находится ли картинка в "доверенной" зоне или нет.
2. loadMovie - deprecated, используйте вместо него MovieClipLoader, особенно обратите внимание на checkPolicyFile свойство этого класса.
Переписал п.3
Код:
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);
this.onLoadStart = function(mc:MovieClip) {
trace(mc._url);
};
loader.loadClip("http://test1.ru/screnshoter/flash/PHP/Creatures.swf",_root.createEmptyMovieClip("image_mc",0));
все равно не работает, однако если snapshot.draw( image_mc ); запускать кнопкой а не автоматом скринит нормально, сл-но проблема в п.1. Подскажите как дождаться загрузки и запуска загружаемого ролика?


Последний раз редактировалось bazic; 14.05.2009 в 22:45.
Старый 14.05.2009, 23:29
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну так скриншот нужно делать в слушателе onLoadInit или после него (по времени).
__________________
Hell is the possibility of sanity

Старый 14.05.2009, 23:45
bazic вне форума Посмотреть профиль Отправить личное сообщение для bazic Найти все сообщения от bazic
  № 5  
Ответить с цитированием
bazic

Регистрация: May 2009
Сообщений: 13
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Ну так скриншот нужно делать в слушателе onLoadInit или после него (по времени).
Код AS1/AS2:
import flash.display.BitmapData;
import com.quasimondo.display.BitmapExporter;
var webcam:Camera = Camera.get();
image_mc.cam.attachVideo(webcam);
var snapshot:BitmapData = new BitmapData(240,320,false);
BitmapExporter.gatewayURL = "http://test1.ru/screnshoter/flash/PHP/BitmapExporter.php";
 
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);
this.onLoadStart = function(mc:MovieClip) {
trace("Загрузка из " + mc._url);
};
this.onLoadComplete = function(mc:MovieClip) {
	trace("Загружен!");
};
 
this.onLoadInit = function(mc:MovieClip) { 
	trace("Запущен!");
	snapshot.draw(image_mc);
BitmapExporter.saveBitmap(snapshot, "snapshot.png", "turboscan", 0 );
 
};
loader.loadClip("http://test1.ru/screnshoter/flash/PHP/Creatures.swf",_root.createEmptyMovieClip("image_mc",0));
 
function save() {
snapshot.draw(image_mc);
BitmapExporter.saveBitmap(snapshot, "snapshot.png", "turboscan", 0 ); };
 
save_btn.onPress = function() {
	this._parent.save();
};
Все равно пустоту скринит, а при нажатии на кнопку нормально.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Первый кадр загружаемого мувика содержит изображение? Попробуйте отложить снятие скриншота на один кадр.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.05.2009, 00:08
bazic вне форума Посмотреть профиль Отправить личное сообщение для bazic Найти все сообщения от bazic
  № 7  
Ответить с цитированием
bazic

Регистрация: May 2009
Сообщений: 13
Цитата:
Сообщение от dimarik Посмотреть сообщение
Первый кадр загружаемого мувика содержит изображение? Попробуйте отложить снятие скриншота на один кадр.
Да содержит. Но скрин снимается буквально за милисикунды до того как он запустится. Я пробовал вместо роликов подгружать картинку, с ней все ок. Нужно как то остановить выполнение скрипта на 1 сек.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Как успехи со снятием скрина на следующий после onLoadInit кадр?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.05.2009, 00:59
bazic вне форума Посмотреть профиль Отправить личное сообщение для bazic Найти все сообщения от bazic
  № 9  
Ответить с цитированием
bazic

Регистрация: May 2009
Сообщений: 13
Цитата:
Сообщение от dimarik Посмотреть сообщение
Как успехи со снятием скрина на следующий после onLoadInit кадр?
А как снять на следующем кадре ?
И еще вопросик, на некоторые флэшки в FL2 трасировка постоянно выдает
Код:
*** Security Sandbox Violation ***
SecurityDomain 'кекекеек.swf' tried to access incompatible context 'кекекеек.swf'
что сильно тормозит выполнение скрипта

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
this.onLoadInit = function(mc:MovieClip) {
	this.loader.removeListener(this);
	this.loader = null;
 
	this.onEnterFrame = handler_onEnterFrame;
};
 
 
 
function handler_onEnterFrame():Void {
	delete this.onEnterFrame;
	trace("Запущен!");
	snapshot.draw(image_mc);
	BitmapExporter.saveBitmap(snapshot, "snapshot.png", "turboscan", 0 );
}
По второму вопросу: перестарались с изменением названий файлов. названия должны быть разные. хехе.
Почтайте про политики безопасности FP и crossdomain.xml в частности.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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