ActionScript 3.0 и пунктирная линия с уникальным рисунком

Ну вот, как всегда... Недавно писал о динамическом рисовании пунктирной линии в ActionScript 3.0, а сегодня совершенно случайно обнаружил гораздо более интересное решение - пользовательский класс DashedLine от Andy Woodruff. Класс DashedLine предоставляет широкие возможности при создании пунктирных линий и очень прост в использовании. Работа с этим классом очень сильно напоминает работу со стандартными методами рисования линий в ActionScript 3.0. Вот несколько примеров пунктирных линий, которые были созданы с помощью класса DashedLine:

Пунктирная линия в ActionScript 3.0

Согласитесь, очень даже неплохое решение (особенно если его сравнить с решением из предыдущего поста). При этом рисовать с помощью данного класса действительно невероятно просто. Смотрите сами...

Код ActionScript 3.0:

/* подключаем класс */ import DashedLine; /* рисуем */ var dashedLine:DashedLine = new DashedLine(2,0x333333,new Array(5,10)); dashedLine.moveTo(50,50); dashedLine.lineTo(500,50); addChild(dashedLine);

Данный код, как нетрудно догадаться, нарисует пунктирную линию из точки с координатами (50,50) в точку с координатами (500,50). Это будет сделано с помощью методов moveTo() и lineTo(). Эти два метода используются точно также, как и одноимённые стандартные методы динамического рисования в ActionScript (смотри пост о динамическом рисовании в ActionScript).

Но стоит объяснить, какие параметры передаются в конструктор класса DashedLine при создании объекта. Как можно видеть, этих параметра всего три:

1-й параметр - это толщина пунктирной линии (в приведённом выше примере - 2);

2-й параметр - это цвет линии (в приведённом выше примере - 0x333333);

3-й параметр - это массив, с помощью которого определяется рисунок пунктирной линии.

Это как раз тот случай, когда лучше один раз показать, чем долго и нудно объяснять. Например, мы передаём в качестве параметра массив Array(50,20). В результате будет создана следующая пунктирная линия:

Пунктирная линия в ActionScript 3.0

Согласитесь, всё просто и понятно :-)

Давайте, ради закрепления, создадим пунктирную линию с вот таким рисунком:

Пунктирная линия в ActionScript 3.0

Это мы сделаем с помощью следующего кода...

Код ActionScript 3.0:

/* подключаем класс */ import DashedLine; /* рисуем */ var dashedLine:DashedLine = new DashedLine(4,0x333333,new Array(12,6,4,6)); dashedLine.moveTo(50,50); dashedLine.lineTo(500,50); addChild(dashedLine);

Вот и всё... Хотя, нет, не всё :-)

Дело в том, что с помощью класса DashedLine мы можем рисовать не только линии, но и более сложные примитивы. Например, мы можем нарисовать прямоугольный примитив с пунктирной обводкой. Делается это так...

Код ActionScript 3.0:

/* подключаем класс */ import DashedLine; /* рисуем */ var dashedLine:DashedLine = new DashedLine(2,0x333333,new Array(5,5)); dashedLine.beginFill(0xdddddd,1); dashedLine.moveTo(50,150); dashedLine.lineTo(50,150); dashedLine.lineTo(250,150); dashedLine.lineTo(250,200); dashedLine.lineTo(50,200); dashedLine.lineTo(50,150); dashedLine.endFill(); addChild(dashedLine);

Здесь вы видите два "новых" метода:

- beginFill() - начинает заливку примитива и в качестве параметров принимает цвет и прозрачность заливки;

- endFill() - завершает заливку примитива.

Если вы работали с программным рисованием в ActionScript ранее, то сразу же поймёте, что эти два метода копируют не только название, но и функционал стандартных методов beginFill() и endFill().

Исходник под Adobe Flash CS5.5 и сам класс DashedLine скачать можно здесь.

Автор: admin

Дата добавления: 2011-11-12

Просмотров: 6326

Рейтинг поста: +3-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-10-09
Ммм... Знакомые лица :-) По крайней мере, ник очень знакомый :-)
Комментатор
Комментарий добавил(а): Glega
Дата добавления: 2013-10-09
Спасибо! Как раз то, что нужно!!!
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика