Руководство по actionscript. часть 5, стр. 054
Хотя все три перечисленные операции также могут быть реализованы с помощью метода draw ( ) совместно с другими методами класса BitmapData, метод copyPixels ( ) обычно предпочтителен благодаря его удобству.
Метод copyPixels ( ) имеет следующий вид:
целевойОбъектШtmapData. copyPi xel s(исходныйОбъектШtmapData, исходнаяОбласть, целеваяТочка, обьектВ! tmapDataHaHanaA Ipha. точкаКаналаАIpha. обьединениеКаналовАIpha)
Здесь целевой0бъектВ1tmapData — это объект BitmapData, в который будут перенесены пикселы. Рассмотрим параметры метода draw ( ).
? исходный0бьектВ1 tmapData — экземпляр класса BitmapData, который будет скопирован в объект целевой0бъектВ1 tmapData. Объекты исходный0бъектВ1 tmapData и це-левой0бъектВ1tmapData могут являться одним объектом, позволяя копировать пикселы из одной области изображения в другую область того же изображения.
? исходнаяОбласть — объект Rectangle, определяющий область объекта исходный-0бьектВ1tmapData, которая будет скопирована в объект целевойОбъектВ! tmapData. Чтобы скопировать весь объект исходныйОбъектВт tmapData, используйте переменную исходныйОбъектВ! tmapData. rect. Если в функцию передается аргумент обьектВ1tmapDataKaнaлaAльфa, данный параметр также определяет ширину и высоту прямоугольной области внутри объекта объектВ! tmapDataKananaA Ipha, значения канала Alpha которой будут скопированы в объект целевойОбьект-BitmapData.
? целеваяТочка — объект Point, определяющий позицию левого верхнего угла прямоугольной области внутри объекта целевой0бьектВ1tmapData, в которую будут помещены копируемые пикселы.
? 06beKTBitmapDataKaHanaA Ipha — необязательный объект BitmapData, отличный от объекта исходныйОбъектВ! tmapData, значения канала Alpha которого станут новыми значениями канала Alpha пикселов, переносимых в объект целевой0бьектВ1 tmapData. Высота и ширина конкретной прямоугольной области, значения канала Alpha которой будут скопированы в объект целевойОбъектВ! tmapData, определяются параметром исходнаяОбласть.
С помощью этого параметра мы можем объединять RGB-каналы одного растрового изображения (исходныйОбъектШ tmapData) с каналом Alpha другого растрового изображения (oObeKTBitmapDataKaHanaA Ipha). Подобная методика может быть использована, например, для создания на фотографиях в электронном приложении, имитирующем альбом для наклеивания газетных вырезок, эффекта краев неправильной формы. Каждая фотография могла бы храниться в своем собственном объекте BitmapData, а края неправильной формы можно было бы хранить в виде значений канала Alpha в одном повторно используемом объекте BitmapData. С помощью параметра o6bet ? WHKaKaHanaAlpha — объект Point, определяющий левый верхний угол прямоугольной области внутри объекта объектВт tmapDataKaHanaA Ipha, из которой будут получены значения канала Alpha. Ширина и высота прямоугольной области задаются параметром исходнаяОбласть.
? объединениеКаналовА Ipha — значение типа Boolean, которое показывает, должны ли значения каналов Alpha объектов целевой0бъектВ1 tmapData и исходныйОбь-ектВ1 tmapData в процессе копирования данных объединяться (true), или значения канала Alpha объекта исходный0бъектВ1 tmapData должны полностью заменять существующие значения канала Alpha объекта целевойОбъектВ!’tmapData (false). Этот параметр оказывает влияние на результат только в том случае, когда оба объекта целевой0бьектВ1 tmapData и исходный0бъектВ1 tmapData являются прозрачными растровыми изображениями. Значением по умолчанию является false, указывающее, что значения канала Alpha объекта исходный0бъектВ1 tmapData полностью заменяют существующие значения канала Alpha объекта целевойОбъ-eKTBitmapData. Алгоритм, используемый для объединения значений каналов Alpha, соответствует алгоритму, рассмотренному ранее в подразд. «Метод экземпляра draw( ) класса BitmapData» данного раздела.