Flash MX теперь имеет возможность динамически рисовать линии и кривые, используя новые методы рисования объекта MovieClip. Я научу вас, как создать простое приложение для рисования линий, используя встроенный API-интерфейс рисования Flash.
Загрузите примеры файлов здесь .
Используемые функции
Основные функции, которые я использую для этого приложения:
myMovieClip.createEmptyMovieClip (instanceName, depth)
Этот метод создает пустой фрагмент ролика как дочерний элемент существующего фрагмента ролика. Этот метод работает аналогично методу attachMovie
, но вам не нужно attachMovie
имя attachMovie
для attachMovie
ролика. Точка регистрации вновь созданного пустого фрагмента ролика — верхний левый угол. Этот метод не работает, если какой-либо из параметров отсутствует.
myMovieClip.lineStyle (thickness,rgb,alpha)
Этот метод указывает стиль линии, который Flash использует для последующих вызовов методов lineTo
и curveTo
пока вы не lineStyle
с другими параметрами. Вы можете вызвать метод lineStyle
в середине рисования пути, чтобы указать разные стили для разных отрезков в пределах пути.
myMovieClip.moveTo (x, y)
Этот метод перемещает текущую позицию рисования в (x, y)
. Если какой-либо из параметров отсутствует, этот метод не выполняется, и текущая позиция рисования не изменяется.
myMovieClip.lineTo (x, y)
Этот метод рисует линию, используя текущий стиль линии от текущей позиции рисования до (x, y)
; текущая позиция рисования затем устанавливается на (x, y)
. Если мувиклип, который вы рисуете, содержит контент, созданный с помощью инструментов рисования Flash, — вызовы lineTo
выполняются под контентом. Если вы вызываете метод lineTo
перед любыми вызовами метода moveTo, текущая позиция рисования по умолчанию lineTo
(0, 0)
. Если какой-либо из параметров отсутствует, этот метод не выполняется, и текущая позиция рисования не изменяется.
Процесс
1. Создайте новый фильм и выберите первый кадр.
Откройте окно ActionScript и введите:
createEmptyMovieClip("Line",1);
Приведенный выше код создает пустой мувиклип с именем экземпляра Line с глубиной 1
2. Введите код ниже, чтобы установить стиль линии:
Line.lineStyle(1,0x000000,100);
Приведенный выше код устанавливает стиль линии динамически. Линия будет толщиной в 1 пункт и будет иметь шестнадцатеричный цвет черного и альфа-значение 100.
3. Введите код, который нарисует линию:
onMouseDown = function (){ Line.moveTo(_xmouse, _ymouse); onMouseMove = function (){ Line.lineTo(_xmouse, _ymouse);} } onMouseUp=function(){ onMouseMove=null; }
Приведенный выше код нарисует линию, когда вы нажимаете и перетаскиваете мышь.
Давайте посмотрим, как работает каждая строка:
onMouseDown = function (){
Функция onMouseDown
активируется при нажатии кнопки мыши.
Line.moveTo(_xmouse, _ymouse);
Это переместит линию в начальную точку, которая будет находиться там, где вы щелкнули. _xmouse
и _ymouse
— это _xmouse
_ymouse
по x и y.
onMouseMove = function (){
Функция onMouseMove
активируется только при перемещении мыши.
Line.lineTo(_xmouse, _ymouse);}
Это создаст линию к точке, куда когда-либо будет перетащена ваша мышь.
onMouseUp=function(){
Функция onMouseUp
активируется при отпускании кнопки мыши.
onMouseMove=null;
Эта функция отключает функцию onMouseMove()
чтобы линия больше не рисовалась до тех пор, пока пользователь снова не нажмет кнопку мыши.
Это полный код:
createEmptyMovieClip("Line",1); Line.lineStyle(1,0x000000,100); onMouseDown = function () { Line.moveTo(_xmouse, _ymouse); } onMouseMove = function () { Line.lineTo(_xmouse, _ymouse);} } onMouseUp=function() { onMouseMove=null; } //The above code should be entered in the first frame of the movie
Проверьте фильм. Нажмите и перетащите, чтобы увидеть нарисованную линию. Если вы правильно выполнили все шаги, вы получите тот же результат, что и мой.