Руководство по actionscript. часть 5, стр. 016
Листинг 25.3. Класс Polygon
package org. moock. drawing { // Представляет многоугольник, который может быть нарисован на экране public class Polygon extends BasicShape { // Точки многоугольника.
// Чтобы сократить потребление памяти, точки хранятся в виде двух
// массивов целочисленных значений, а не в виде одного массива объектов
// f1 ash. geom. Point.
private var xpoints:Array;
private var ypoints:Array;
// Конструктор
public function Polygon (xpoints:Array = null. ypoints:Array = null) { super( );
setPointsCxpoints, ypoints);
}
// Процедура рисования многоугольника
override protected function drawShape ( ):void {
// Рисуем линии в каждую точку многоугольника
graphics. moveTo(xpoints[0]. ypoints[0]);
for (var i:int = 1; i < xpoints.length; i++) { graphics.lineto(xpoints[i]. ypoints[i]);
}
// Замыкаем фигуру, возвращаясь в первую точку graphics. lineTo(xpoints[0]. ypoints[0]);
}
// Присваивает точки многоугольника
public function setPoints (newXPoints:Array. newYPoints:Array):void { if (newXPoints == null || newYPoints == null) { return;
}
if (newXPoints. length!= newYPoints. length) { throw new Error(«setPoints( ) requires a matching » + «number of x and у points»);
}
xpoints = newXPoints; ypoints = newYPoints;
// Поскольку присваивание новых точек многоугольника вызывает // изменение его формы, он должен быть перерисован на этапе // следующей визуализации экрана. setChanged( );
}
}
}
В листинге 25.4 представлен класс Rectangle — подкласс класса Polygon. По структуре он похож на класс Ellipse, однако использует процедуру рисования из метода экземпляра drawShape ( ) класса Polygon, а не реализует собственную.