Первая часть видеоурока.
Вторая часть видеоурока.
Продолжаем тему рисования во флеш и сегодня рассмотрим ещё один способ - рисование мувиками. Делать мы это будем в среде Macromedia Flash Professional 8.0 и на языке ActionScript 2.0. Принцип прост: если при зажатой ЛКМ изменяется положение курсора мышки, то программа добавляет из библиотеки проекта на сцену флеш-ролика определённый MovieClip, координаты которого совпадают с координатами курсора мышки на данный момент времени.
Итак, приступим к созданию.
Сперва создадим мувик, которым мы и будем "рисовать". Для этого нарисуем на сцене круг небольшого диаметра (конечно, можно использовать и другие геометрические фигуры). Выделяем эту заготовку и жмём на клавиатуре F8. Появляется окно, в котором выбираем тип MovieClip, даём имя "mc", а точку регистрации ставим в центре. Мувик создан и его можно удалить со сцены флеш-ролика. Но при этом мувиклип сохранится в библиотеке проекта. Далее, идём в библиотеку проекта, наводим курсор мышки на наш мувик "mc" и жмём правую клавишу мышки. Появляется контекстное меню нашего мувиклипа. В контекстном меню выбираем пункт Linkage (в русской версии Macromedia Flash это обычно переведено как "Связывание"). Открывается окно настроек. В этом окне в качестве идентификатора укажите "mc" и разрешите экспорт для ActionScript (поставить галочку у соответствующего пункта).
Стоит создать и кнопку-ластик, которая будет удалять ранее нарисованное. Создание и программирование кнопок на ActionScript 2.0 уже ранее рассматривалось и я не буду повторяться. Скажу только, что кнопка будет носить имя "btn".
Последний этап - написание кода. Код будем писать на главной временной шкале флеш-ролика.
Код ActionScript 2.0:
/*
Переменная-счётчик мувиков.
*/
count = 0;
/*
Переменная-флаг. Если она имеет значение true, то рисование разрешено. Если переменная имеет значение false, то рисование запрещено.
*/
flag = false;
/*
Начинаем рисовать при зажатой ЛКМ.
*/
onMouseDown = function () {
flag = true;
};
/*
Отпускаем ЛКМ и запрещаем рисование.
*/
onMouseUp = function () {
flag = false;
};
/*
Каждый раз, когда изменяются координаты курсора мышки, на сцену из библиотеки добавляется экземпляр мувика mc.
В качестве координат мувика назначаются координаты курсора мышки в данный момент времени.
*/
onMouseMove = function () {
if (flag) {
_root.attachMovie("mc", "mc"+count, count);
_root["mc"+count]._x = _xmouse;
_root["mc"+count]._y = _ymouse;
count++;
updateAfterEvent();
}
};
/*
С помощью кнопки btn мы уничтожаем все мувики на сцене и обнуляет переменную count.
*/
btn.onRelease = function() {
count = 0;
for (i=0; i<_root.getNextHighestDepth(); i++) {
_root.getInstanceAtDepth(i).removeMovieClip();
}
};
Описанный способ рисования весьма ресурсоёмкий. Кроме этого, количество мувиклипов, которые можно создать на сцене, ограничено возможностями флеш-плейера. Но есть у этого способа и свои достоинства. Например, мувики можно анимировать, добавлять им градиентную заливку, фильтры и т.д..
Вот что получилось у меня: