Иллюстрированный самоучитель по Flash-games


Создание полной программы рисования - часть 2


on (release) {

if (_currentFrame ==1) {

gotoAndStop(2);

_root.actions.fill = true;

} else {

gotoAndStop(l);

_root.actions.fill = false;
}
}

С помощью кнопок, определяющих цвета, и кнопки выбора режима (с заливкой/без заливки) пользователь может рисовать разноцветные фигуры. Как и в предыдущем примере, код, необходимый для рисования, содержится в клипе "actions".
Он начинается с определения значения следующих переменных: draw - false, fill - false, linecolor - 0x000000. Также определяются четыре переменные, для которые ограничивают область в которой пользователь может рисовать.

onClipEvent (load) {

// Рисовать или не рисовать?

draw = false;

// Определяем значение fill

fill = false;

// Начальный цвет линии - черный. linecolor = 0x000000;

// Определяем границы области рисования.

хтах = 550;

xmin = 70;

утах = 400;

ymin = 0;

}

При нажатии кнопки мыши курсор начинает оставлять след. Координаты курсора хранятся в переменных х и у. Их значения проверяются, и, если они выходят за фаницы разрешенной области, рисование не происходит.
Переменная linecolor передается функции lineStyle в качестве аргумента, определяющего цвет линии. Если переменная fill имеет значение true, то определяется новый массив. Он содержит координаты всех точек вдоль кривой, которую нарисовал пользователь. Массив состоит из объектов следующего вида: {х: значение, у: значение}. Элементы массива потребуются для создания залитой цветом области.

onClipEvent (mouseDown) {
// Определяем позицию курсора.

х = _root._xmouse;

у = _root . _ymouse;

// Рисуем, если не вышли за границы поля

if ((x>xmin) and (x<xmax) and (y>ymin) and (y<ymax)) {

draw = true;

// Определяем параметры линии.

_root.lineStyle(1,lineColor,100);

_root.moveTo(x,у);

// Если выбран режим заливки, то создаем массив if (fill) {

fillArray = new Array();

fillArray,push({x:x, y:y});
}

}

}

После того как переменной draw присвоено значение true, продолжаем линию до тех пор, пока пользователь не отпустит кнопку мыши. При каждом обращении к кадру переменным х и у присваиваются текущие координаты курсора. Если эти значения выходят за разрешенные границы, переменные х и у переопределяются. Затем используется команда lineTo для отображения очередного сегмента линии. Если выбран режим заливки, то добавляется новый элемент в массив fillArray.




Начало  Назад  Вперед



Книжный магазин