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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.04.2009, 18:01
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 11  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Загрузить в мувиклип и через draw перегнать в BitmapData
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
На 99% реализовал редровинг, чтоб всё намалёванное можно было стереть и вернуть картинки прежний вид. Редровинг пашет, когда картинку берём из библиотеки, а когда картинку грузим, не хочет работать.
В коде есть закомментированный код, если его разкоментить то картинка будет грузиться из библиотеки.
Код AS1/AS2:
var myBrush;
var brushSize = 40; 
var brushoffset = brushSize/2;
var myPoint = new flash.geom.Point(0, 0); 
var myMatrix = new flash.geom.Matrix(); 
var brushcolor = new flash.geom.ColorTransform();
brushcolor.alphaMultiplier = 0.3;
 
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);
drw.createEmptyMovieClip("container",this.getNextHighestDepth());
mcl.loadClip("blue-box-car.jpg",drw.container);
 
function onLoadInit(source_mc:MovieClip):Void 
{
	drawbmp = new flash.display.BitmapData(source_mc._width, source_mc._height, true, 0);
	drawbmp.draw(source_mc);
	startSmudge();
	}
function startSmudge()
{
//Вытащенную картинку из библиотеки мы можем вернуть в прежнее состояние.	
 
/*var source_mc = flash.display.BitmapData.loadBitmap("blue-box-car");
var drawbmp = new flash.display.BitmapData(source_mc.width, source_mc.height, true, 0);
drawbmp.draw(source_mc);*/
 
var smudgebmp = new flash.display.BitmapData(brushSize, brushSize, true, 0);
var smudgeimgbmp = smudgebmp.clone();
var redrawbmp = smudgebmp.clone();
drw.container._x = 84;
 
drw.container.attachBitmap(drawbmp, 1);
 
smudge_btn.onPress = function(){
	myBrush = "smudge";
}
 
redraw_btn.onPress = function(){
	myBrush = "redraw";
}
 
function go(shape_mc){
	smudgebmp.fillRect(smudgebmp.rectangle, 0);
	smudgebmp.draw(shape_mc, myMatrix, brushcolor);
	redrawbmp.fillRect(redrawbmp.rectangle, 0);
	redrawbmp.draw(shape_mc);
}
 
drw.container.onPress = function(){
	if (myBrush == "smudge") this.onMouseMove = brushMouseMove;
	else if (myBrush == "redraw") this.onMouseMove = brushRedrawMouseMove;
	this.onMouseMove(true);
}
 
drw.container.onRelease = drw.container.onReleaseOutside = function(){
	delete this.onMouseMove;
}
 
function brushMouseMove(ignoreimage){
	var offset = new flash.geom.Point(drw.container._xmouse - brushoffset, drw.container._ymouse - brushoffset);
	var drawRect = new flash.geom.Rectangle(offset.x, offset.y, brushSize, brushSize);
	if (!ignoreimage){
		drawbmp.copyPixels(smudgeimgbmp, smudgeimgbmp.rectangle, offset, smudgebmp, myPoint, true);
	}
	smudgeimgbmp.copyPixels(drawbmp, drawRect, myPoint);
	updateAfterEvent();
}
function brushRedrawMouseMove(){
	var offset = new flash.geom.Point(drw.container._xmouse - brushoffset, drw.container._ymouse - brushoffset);
	var drawRect = new flash.geom.Rectangle(offset.x, offset.y, brushSize, brushSize);
	//!Вот здесь косяг
	drawbmp.copyPixels(source_mc, drawRect, offset, redrawbmp, myPoint, true);
	//!
	updateAfterEvent();
}
 
smudge_btn.onPress();
go(brush);
}
Вложения
Тип файла: rar smudge_reDrow.rar (52.3 Кб, 73 просмотров)


Последний раз редактировалось KiL33; 03.05.2009 в 15:13. Причина: забыл код вставить)
Старый 06.05.2009, 08:09
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 13  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Проблемы с возвратом картинки прежнего вида методом copyPixels.
Вложения
Тип файла: rar _smudge_Paint_reDraw.rar (44.0 Кб, 55 просмотров)


Последний раз редактировалось KiL33; 13.05.2009 в 11:00.
Создать новую тему Ответ Часовой пояс GMT +4, время: 03:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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