Скопировать данные из одного растрового изображения в другое можно с помощью нескольких методов:
clone()
,
copyPixels()
,
copyChannel()
,
draw()
и
drawWithQuality()
(метод
drawWithQuality
доступен в средах Flash Player 11.3 и AIR 3.3 и более поздних версий).
Как можно догадаться по его имени, метод
clone()
позволяет клонировать, или дублировать, данные растрового изображения одного объекта BitmapData в другой. При вызове этого метода он возвращает новый объект BitmapData, являющийся точной копией исходного экземпляра.
В примере ниже показано, как клонировать оранжевый квадрат (родитель) и разместить клон рядом с ним.
import flash.display.Bitmap;
import flash.display.BitmapData;
var myParentSquareBitmap:BitmapData = new BitmapData(100, 100, false, 0x00ff3300);
var myClonedChild:BitmapData = myParentSquareBitmap.clone();
var myParentSquareContainer:Bitmap = new Bitmap(myParentSquareBitmap);
this.addChild(myParentSquareContainer);
var myClonedChildContainer:Bitmap = new Bitmap(myClonedChild);
this.addChild(myClonedChildContainer);
myClonedChildContainer.x = 110;
Метод
copyPixels()
предлагает простой и быстрый способ копирования пикселов одного объекта BitmapData в другой. Метод делает прямоугольный снимок (что определяется параметром
sourceRect
) исходного изображения и копирует его в другую прямоугольную область того же размера. Расположение вновь «вставленного» прямоугольника определяется параметром
destPoint
.
Метод
copyChannel()
дублирует значение канала (альфа, красный, зеленый или синий) исходного объекта BitmapData и копирует его в канал целевого объекта BitmapData. При вызове этого метода остальные каналы целевого объекта BitmapData никак не затрагиваются.
Методы
draw()
и
drawWithQuality()
отрисовывают, или визуализируют, графическое содержимое исходного спрайта, ролика или другого экранного объекта в новом растровом изображении. С помощью параметров
matrix
,
colorTransform
,
blendMode
и
clipRect
(для целевого объекта) можно указывать способ визуализации. Этот метод использует для генерации данных векторный визуализатор проигрывателя Flash Player и среды AIR.
При вызове метода
draw()
или
drawWithQuality()
исходный объект (спрайт, ролик или другой экранный объект) передается в качестве первого параметра, как показано ниже.
myBitmap.draw(movieClip);
Если какие-то свойства исходного объекта (цвет, матрица и т.п.) изменялись после того, как он был загружен, они не будут скопированы в новый объект. Если вам нужно скопировать изменения в новый объект, скопируйте значения свойства
transform
исходного объекта в свойство
transform
объекта Bitmap, который использует новый объект BitmapData.