Руководство по actionscript. часть 5, стр. 041
// Используем объект Stage, поскольку событие отпускания кнопки мыши
// должно всегда завершать рисование, даже если указатель мыши
// не находится над областью рисования. Подобным образом нажатие
// пробела должно всегда приводить к стиранию рисунка, даже когда
// объект canvasContainer не имеет фокуса.
stage. addEventLi stener(MouseEvent. MOUSEJJP, mouseUpLi stener);
stage. addEventLi stener(KeyboardEvent. KEY_D0WN, keyDownLi stener);
}
// Устанавливает цвет указанного пиксела
public function drawPoint (x:int, y:int, colonuint = OxFFOOOOOO):void { canvas. bitmapData. setPixel32(x, y, color);
}
// Отвечает на события MouseEvent. MOUSE JDOWN
private function mouseDownListener (e:MouseEvent):void {
// Устанавливаем флажок, указывающий на то, что основная кнопка мыши
// в настоящий момент нажата
isDrawing = true;
// Рисуем точку в позиции, где произошел щелчок кнопкой мыши. drawPoint(е.1ocalX, е. localY);
}
// Отвечает на события MouseEvent. M0USE_M0VE
private function mouseMoveListener (e:MouseEvent):void {
// Рисуем точку, когда мышь перемещается над областью рисования
// при нажатой левой кнопке мыши
if (isDrawing) {
// Используем переменные 1ocalX и localY, чтобы получить позицию // указателя относительно объекта canvasContainer. drawPoi nt(е.1ocalX, е. localY);
// Обновляем экран сразу после завершения выполнения // данной функции-приемника события е. updateAfterEvent( );
}
// Отвечает на события MouseEvent. MOUSEJJP
private function mouseUpListener (e:MouseEvent):void {
// Устанавливаем флажок, указывающий на то, что в настоящий момент
// основная кнопка мыши отпущена
isDrawing = false;
}
// Отвечает на события KeyboardEvent. KEYJDOWN
private function keyDownListener (e:KeyboardEvent):void {
// Стираем рисунок, когда пользователь нажимает клавишу Пробел. Чтобы // очистить рисунок, мы присваиваем всем пикселам значение белого // цвета.