Руководство по actionscript. часть 5, стр. 039
При измерении производительности среды Flash всегда выполняйте тесты в рабочей, а не в отладочной версии. Производительность в рабочей версии приложения зачастую оказывается в два раза выше, чем в отладочной.
Класс ScribbleASS: пример использования метода setPixel32()
Присваивание цвета пикселу в растровом изображении имеет множество практических применений: от создания собственных эффектов до коррекции фотографий или генерации динамического интерфейса. Рассмотрим всего одно практическое применение метода set Pixel 32 ( ) — простую программу для рисования. В листинге 26.6 представлена адаптация на языке ActionScript 3.0 программы Scribble. Выполнение этого кода приводит к созданию пустого растрового изображения, на котором пользователь рисует линии с помощью мыши. Когда пользователь перемещает мышь, удерживая нажатой левую кнопку, на пустом растровом изображении рисуется пиксел черного цвета.
Листинг 26.6. Очень простая программа рисования ScribbleAS3
package {
import flash. display.*; import flash. events.*; import flash. ui.*; import flash. geom.*;
// Простое приложение для рисования. Рисует одну точку на объекте
// BitmapData всякий раз, когда возникает событие MouseEvent. M0USE_M0VE
// при нажатой левой кнопке мыши.
public class ScribbleAS3 extends Sprite {
// Растровое изображение, отображаемое на экране
private var canvas:Bitmap;
// Содержит растровое изображение, обеспечивая интерактивность private var canvasContaiпег:Sprite;
// Линия вокруг растрового изображения private var border:Shape;
// Сообщает о том, нажата ли кнопка мыши в настоящий момент private var isDrawing:Boolean = false;
// Конструктор
public function SeribbleAS3 ( ) { createCanvas( ); registerForInputEvents( );
// Предотвращаем изменение размеров окна приложения stage. scaleMode = StageScaleMode. N0_SCALE:
}
// Создает пустое растровое изображение, на котором будем рисовать private function createCanvas (width:int = 200, height:int = 200):void {
// Определяем объект BitmapData, который будет хранить пиксельные
// данные для рисунка пользователя
var canvasData:BitmapData = new BitmapData(width, height,
false. OxFFFFFFFF);
// Создаем новый отображаемый объект Bitmap, используемый // для отображения объекта canvasData canvas = new Bitmap(canvasData);
// Создаем объект Sprite, который будет содержать объект Bitmap. Класс // Bitmap не поддерживает события ввода; следовательно, помещаем его // в объект Sprite, чтобы пользователь мог взаимодействовать с этим // объектом.