Руководство по actionscript. часть 5, стр. 053
Чтобы полностью заменить значения канала Alpha в целевом объекте BitmapData значениями объекта-источника BitmapData (вместо объединения двух значений), используйте метод copyPixels ( ) вместо метода draw ( ). Дополнительную информацию можно найти в подразд. «Метод экземпляра copyPixels( ) класса BitmapData» данного раздела.
Невозможность произвольного захвата изображения экрана. Стоит отметить, что в ActionScript невозможно захватить изображение экрана в произвольной прямоугольной области. Язык ActionScript позволяет лишь преобразовывать отображаемые объекты в растровый формат. В ActionScript ближайшим аналогом операции захвата изображения области отображения является использование экземпляра класса Stage в качестве параметра источник метода draw ( ), как показано в следующем коде:
var canvas:BitmapData = new BitmapDatadOO. 100, false. OxFFFFFFFF); canvas Ага^(некий0бьект01spl ayObject. stage);
Здесь некий0бъектй1spl ayObject — это экземпляр класса DisplayObject, находящийся в списке отображения. Предыдущий код создает растровое изображение, содержащее все объекты, которые в настоящий момент находятся в списке отображения, со следующими оговорками:
? цвет фона SWF-файла не копируется в растровое изображение;
? если доступ к объектам, находящимся в списке отображения, запрещен из-за ограничений безопасности, они не копируются в растровое изображение и генерируется исключение SecurityError.
Метод экземпляра copyPixelst) класса BitmapData
Как и draw ( ), метод copyPixels ( ) применяется для копирования значений цвета пикселов из объекта-источника в целевой объект BitmapData. Однако в отличие от метода draw ( ), который копирует пиксельные данные из любого экземпляра класса DisplayOb j ect или объекта BitmapData, метод copyPixels ( ) может копировать их только из объектов BitmapData. Этот метод отличается производительностью и удобством использования. Тестирование показывает, что операции copyPixels ( ) быстрее эквивалентных операций draw ( ) на 25-300 %.
I Чтобы достичь максимальной производительности при копировании значений цвета м?’ 4 „ пикселов между двумя объектами BitmapData, используйте метод copyPixels() вместо *Ц’ метода draw().
Помимо того что метод copyPixels ( ) производительнее метода draw ( ), он предоставляет разработчику простой доступ к таким операциям, как:
? размещение пикселов из объекта-источника в определенной точке объекта-получателя;
? объединение канала Alpha одного растрового изображения с каналом Alpha другого растрового изображения;
? перезапись значений канала Alpha целевого растрового изображения при копировании в него пикселов из исходного растрового изображения.