Руководство по actionscript. часть 5, стр. 048
Рассмотрим пример каждого случая. Сначала мы создадим две векторные фигуры — прямоугольник и эллипс — и перенесем их в один объект BitmapData. Этот код показан в листинге 26.8.
—
ТА,
Векторные фигуры, переносимые в объект BitmapData, не обязаны находиться в списке отображения. Совершенно нормально создавать векторные объекты, не отображая их JJsV на экране, просто для того, чтобы скопировать эти объекты в растровое изображение (как показано в листингах 26.8 и 26.9).
Листинг 26.8. Отображаемые объекты, объединенные в растровом изображении
// Создаем прямоугольник var rect:Shape = new Shape( ); rect. graphics. begi nFi11(OxFFOOOO); rect. graphi cs. drawRect(0,0,25,50);
// Создаем эллипс var el 1ipse:Shape = new Shape( ); ell ipse. graphics. beginFi11(OxOOOOFF); el 1i pse. graphi cs. drawEl1i pse(0,0,35,25);
// Создаем объект BitmapData. Он будет выступать в роли холста
// для рисования, поэтому мы присваиваем его переменной с именем canvas.
var canvas:BitmapData = new BitmapDatadOO, 100, false, OxFFFFFFFF);
// Переносим векторное изображение прямоугольника на растровое изображение canvas. draw(rect);
// Переносим векторное изображение эллипса на растровое изображение. // Используем матрицу преобразования, чтобы поместить эллипс в точку // с координатой (10, 10) внутри объекта BitmapData. var matrix:Matrix = new Matrix( ); matrix. translatedO, 10); canvas. draw(ellipse, matrix);
// Связываем объект BitmapData с объектом Bitmap, чтобы отобразить его // на экране
var bmp;Bitmap = new Bitmap(canvas); addChild(bmp);
На рис. 26.7 показано растровое изображение, полученное в результате выполнения предыдущего кода, с увеличенным масштабом для более тщательного рассмотрения. Обратите внимание, что среда выполнения Flash сглаживает края эллипса, поэтому он смешивается с существующим прямоугольником.