О работе с методом lineStyle() в ActionScript 3.0 я уже недавно упоминал (статья «Методы динамического рисования в ActionScript 3.0»), но тогда я называл только три первых параметра этого метода. На самом деле параметров у этого метода гораздо больше:
lineStyle(thickness, color, alpha, pixelHinting, scaleMode, caps, joints, miterLimit);
где:
- thickness - толщина линии (целое число от 0 до 255);
- color - цвет линии;
- alpha - прозрачность линии (в диапазоне от 0 до 1);
- pixelHinting - логическое значение (true или false), определяющее, следует ли выполнять хинтинг штрихов до полных пикселов (по умолчанию стоит false);
- scaleMode - режим масштабирования;
Список допустимых значений:
1.) LineScaleMode.NORMAL
2.) LineScaleMode.NONE
3.) LineScaleMode.VERTICAL
- caps - тип концов линии;
Список допустимых значений:
1.) CapsStyle.NONE
2.) CapsStyle.ROUND
3.) CapsStyle.SQUARE
- joints - тип стыка на углах;
Список допустимых значений:
1.) JointStyle.BEVEL
2.) JointStyle.MITER
3.) JointStyle.ROUND
- miterLimit - предел усечения уголка (используется только для случая, когда параметр joints имеет тип JointStyle.MITER).
Как видите, параметров довольно много и их назначение не всегда очевидно.
Зачем столько параметров? А нужны они для того, чтобы тонко настроить стиль линий. Если этого не делать, то мы можем получить, например, вот такой результат при попытке нарисовать прямоугольник с закруглёнными углами:
Согласитесь, смотрится некрасиво. Но мы можем это исправить, воспользовавшись всем арсеналом параметров метода lineStyle(). А чтобы упростить настройку параметров, я сделал небольшой генератор кода для метода lineStyle():
Используя данный генератор, вы можете в визуальном режиме настроить параметры для метода lineStyle() на примере таких геометрических фигур, как прямоугольник и линия (как правило, именно с ними и возникает больше всего проблем при использовании метода lineStyle()). Полученный код выводится в нижнем текстовом поле. Код из этого текстового поля вы можете скопировать и вставить в свой проект (естественно, изменив его под свои нужды). Для удобства и наглядности я снабдил код комментариями.
Пример кода из генератора:
/*
импортируем классы
*/
import flash.display.Sprite;
import flash.display.CapsStyle;
import flash.display.LineScaleMode;
import flash.display.JointStyle;
/*
создаём спрайт, внутри которого будем рисовать
*/
var sprite:Sprite = new Sprite();
/*
настраиваем стиль линии
*/
sprite.graphics.lineStyle(20,52224,1,false,LineScaleMode.NORMAL,CapsStyle.SQUARE,JointStyle.BEVEL);
/*
рисуем прямоугольник
*/
sprite.graphics.beginFill(0xff0000,1)
sprite.graphics.drawRoundRect(0,0,100,100,0,0);
sprite.graphics.endFill();
/*
рисуем линию
*/
sprite.graphics.moveTo(0,150);
sprite.graphics.lineTo(100,150);
sprite.graphics.lineTo(100,200);
/*
добавляем спрайт на сцену
*/
addChild(sprite);
Если вам неудобно настраивать тонкую линию, то вы можете воспользоваться встроенной в флеш-плеер возможностью масштабировать содержимое сцены флеш-ролика. Для этого наведите курсор мышки на флеш-ролик и правым кликом мышки вызовите контекстное меню флеш-ролика:
Кликните по пункту «Увеличить масштаб» и содержимое сцены флеш-ролика будет увеличено. Так гораздо удобнее настраивать внешний вид стыков линий.