Архив

Публикации с меткой ‘Графические примитивы’

Знакомство с графическими примитивами

28 сентября 2007 15 комментариев

В этом уроке мы познакомимся с графическими примитивами. То есть научимся рисовать линии и делать заливки. Сразу скажу, что мои примеры далеки от канонов объектно-ориентированного стиля... просто таким образом оформленные примеры мне кажутся... более простыми в понимании основной мысли. Да простят меня взрослые и умные дяденьки. 🙂

Итак, повторяем то же, что мы делали в прошлый раз, только теперь файл базового класса и сам класс будут называться Main.

Вот его содержимое:

package {
	import flash.display.Sprite;
	import flash.display.Shape;

	public class Main extends Sprite {
		public function Main() {
			var k1 = Kvadrat(100,0xFF0000); // Красный квадрат 100 на 100
	 		var k2 = Kvadrat(200,0x00FF00); // Зеленый квадрат 200 на 200

			addChild(k1); // Добавляем Красный квадрат на основную сцену
		 	k1.x=50;
	 		k1.y=50;

			addChild(k2); // Добавляем Зеленый квадрат на основную сцену
	 		k2.x=100;
		 	k2.y=100;
		 }

		private function Kvadrat(w:Number, col:uint) { // Функция, рисующая квадрат
	 		var kvadrat:Shape = new Shape();
 			var Width=w;
 			with (kvadrat.graphics) {
 				beginFill(col, 0.80); // Закрашиваем квадрат, непрозрачность  - 80%
	 			lineTo(0,Width);
 				lineTo(Width,Width);
 				lineTo(Width,0);
 				lineTo(0,0);
	 			endFill();
 			}
 			return kvadrat;
		}
	}
}

В принципе, я думаю и так все понятно... Но на всякий случай рассмотрим алгоритм выполнения этой маленькой программы:

  • Вызывается основная функция Main().
  • С помощью вызова функции Kvadrat() создаем 2 квадрата:
    • beginFill() - задать цвет заливки
    • lineTo() - рисовать линию до координат, указанных в параметрах
    • endFill() - закончить заливку (кстати, многие "взрослые" программеры часто забывают выключить заливку, что порой приводит к непредвиденным ситуациям
  • Добавляем квадраты на сцену командой AddChild()
  • Изменяем координаты с помощью параметров .x и .y

Ну вот, вроде бы и все на сегодня...'