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

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

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

Регистрация: Sep 2009
Сообщений: 9
По умолчанию Как скопировать часть изображения в Bitmap

Доброе время суток. Не могу решить одну проблему. Есть большое векторное изображение. Во время маштабирования его приходится переводить в растр
Код AS1/AS2:
function rasterizeMovieClip (obj:MovieClip):MovieClip {
	var bd_mc:MovieClip = this.createEmptyMovieClip (obj._name + '_bd', 1);
	bd_mc._visible = false;
	_root.bd = new BitmapData(_root.firstWidth, _root.firstHeight, true, null);
	_root.bd.draw(obj);
	bd_mc.attachBitmap (_root.bd, bd_mc.getNextHighestDepth());
	bd_mc.forceSmoothing = true;
	bd_mc._x = obj._x ;
	bd_mc._y = obj._y ;
	bd_mc._width = obj._width;
	bd_mc._height = obj._height;
	return bd_mc;
}
Вектороное изображение может меняться, но не целиком, а фрагментом(10х10 пикселей). Можно ли сделать так, чтобы при изменении векторной картинки не надо было полностью обновлять растр, а лишь изменять изменившийся фрагмент?

Заранее спасибо.

Старый 22.02.2010, 16:28
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Можно ли сделать так, чтобы при изменении векторной картинки не надо было полностью обновлять растр, а лишь изменять изменившийся фрагмент?
У метода draw() есть параметр clipRect:Rectangle - его и используем
Код AS1/AS2:
// отрисовываем область с началом в (20,20) и размером 10x10 в то же место
// на BitmapData
bitmap.draw(obj, new Matrix(), null, null, new Rectangle(20, 20, 10, 10));
Только надо будет затереть эту область перед перерисовкой цветом фона или прозрачным цветом, чтобы не наслаивалось:
Код AS1/AS2:
bitmap.fillRect(new Rectangle(20, 20, 10, 10), 0x00000000);


Последний раз редактировалось expl; 22.02.2010 в 16:32.
Старый 22.02.2010, 17:59
ovevil вне форума Посмотреть профиль Отправить личное сообщение для ovevil Найти все сообщения от ovevil
  № 3  
Ответить с цитированием
ovevil

Регистрация: Sep 2009
Сообщений: 9
Большое спасибо, буду пробовать

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

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

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


 


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


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