Руководство по actionscript. часть 5, стр. 050
В листинге 26.10 продемонстрирован код, часть которого вам знакома из листинга 26.6. Обратите особое внимание на метод drawLine ( ), который выделен полужирным шрифтом.
Листинг 26.10. Приложение ScribbleAS3, версия с не отображаемыми на экране векторами
package { import flash. display.*; import flash. events.*; import flash. ui.*; import flash. geom.*;
// Простое приложение для рисования. В данной версии вектор рисуется // за пределами экрана, после чего он копируется на поверхность растрового // изображения, исключая снижение производительности, которое связано // с рисованием слишком большого количества векторов, public class ScribbleAS3_VectorV2 extends Sprite { private var canvas:Bitmap; // Холст растрового изображения,
// отображаемого на экране private var virtual Canvas:Shape; // Холст векторного изображения.
// не отображаемого на экране private var canvasContai ner:Sprite: // Содержит растровое изображение.
// обеспечивая интерактивность
private var isDrawing:Boolean = false; // Сообщает о том, нажата ли
// кнопка мыши в настоящий момент private var border:Shape; // Линия вокруг растрового изображения private var lastX:int; // х-координата последней точки,
// в которой щелкнул кнопкой мыши пользователь private var lastYrint; // у-координата последней точки,
// в которой щелкнул кнопкой мыши пользователь
// Конструктор
public function ScribbleAS3_VectorV2 ( ) { createCanvas( ); registerForInputEvents( );
// Предотвращаем изменение размеров окна приложения stage. scaleMode = StageScaleMode. N0_SCALE;
}
// Создает холст растрового изображения, отображаемого на экране,
// и холст векторного изображения, не отображаемого на экране
private function createCanvas (width:int = 200, height:int = 200):void {
// Создаем новый объект, не отображаемый на экране, в котором будет
// происходить рисование векторных линий перед их переносом
// в объект canvasData
virtual Canvas = new Shape( );
// Определяем объект данных, который будет хранить реальные пиксельные
// данные для рисунка пользователя. Линии копируются из объекта
// virtual Canvas в данный объект.