рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Применение методов рисования

Применение методов рисования - Лекция, раздел Менеджмент, Динамическое управление фильмами-символами В Этом Упражнении Мы С Вами, Используя Методы Рисования Объекта Movieclip, Мы...

В этом упражнении мы с вами, используя методы рисования объекта MovieClip, мы начнем создавать несложное приложение, позволяющее пользователю рисовать.

  1. Откройте файл draw1.fla из папки Lesson14/Assets.

Основной монтажный стол состоит из пяти слоев, названных в соответствии с их содержимым. Слой Background содержит общее графическое оформление проекта. В слое Canvas находится экземпляр фильма-символа под названием canvas – это будет рабочая область для рисования. Слой Icon содержит экземпляр фильма-символа в виде жука, расположенный у левого края сцены. Этот экземпляр называется icon, в следующем упражнении мы создадим дубликаты этого экземпляра, предоставив пользователю несколько значков, которые он сможет перетащить на сцену, чтобы рисовать поверх шаблона. В слое Controller находится особый экземпляр клипа – он называется controller и представляет собой так называемый клип-контроллер (в принципе, это просто экземпляр, который будет содержать большую часть скриптов, обеспечивающих работу нашего проекта). И, наконец, в слое Windows находятся два экземпляра – window1 и window2; они расположены в правой части сцены и пригодятся нам в одном из следующих упражнений.

 

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

  1. Откройте панель Действия, выделите экземпляр клипа controller на основном монтажном столе и введите следующий скрипт:
onClipEvent (mouseUp) { down = false;}

Как мы уже сказали, большую часть действий для обеспечения работоспособности проекта мы будем помещать в экземпляр controller. Данный скрипт создает переменную с именем down, которая будет хранить текущее состояние мыши. С помощью события mouseUp эта переменная будет при отпускании кнопки мыши получать значение false, показывая другим скриптам, что кнопка мыши не нажата.

  1. В конец текущего скрипта добавьте обработчик события клипа mouseDown:
onClipEvent (mouseDown) { if (_root.canvas.hitTest(_root._xMouse,_root._yMouse)) { x = _root._xMouse; y = _root._yMouse; _root.holder.moveTo(x,y); down = true; }}

При нажатии кнопки мыши (mouseDown) условный оператор проверяет, находился ли курсор мыши в момент нажатия над экземпляром клипа canvas. Если это так, то выполняется несколько действий. Во-первых, координаты мыши по x и y записываются в качестве значений переменных x и y соответственно. Затем эти значения используются в методе moveTo() для перемещения курсора рисования клипа holder в текущие координаты мыши. Клип holder – это пустой экземпляр, который будет создаваться динамически (мы запрограммируем это на следующем шаге). Этот-то экземпляр и будет содержать все нарисованные линии. Последнее действие этого скрипта присваивает переменной down значение true, означающее, что кнопка мыши нажата.

  1. В конец текущего скрипта добавьте обработчик события клипа onLoad:
onClipEvent (load) { currentColor = "7F6696"; _root.createEmptyMovieClip("holder",100);}

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

Следующая строка этого скрипта создает пустой экземпляр фильма-символа под именем holder. Как было сказано, именно этот клип будет содержать все рисуемые линии. Он располагается на глубине 100, так что нарисованные линии будут располагаться поверх всех шаблонов, которые пользователь перетащит на сцену.

  1. В конец текущего скрипта, после обработчика события onLoad, добавьте описание функции draw():
function draw() { _root.holder.lineStyle(0, parseInt(currentColor,16) ,100); x = _root._xmouse; y = _root._ymouse; _root.holder.lineTo(x, y);}

Понятно, что эта функция будет вызываться обработчиком события mouseMove, который мы еще не описали. Функция при вызове первым делом устанавливает стиль линий. Как видите, линии будут самыми тонкими (толщина 0), на 100% непрозрачными, цвет же линий зависит от текущего значения переменной currentColor. Три последние строки функции обеспечивают рисование линии. Линия проводится методом lineTo() от текущего положения курсора рисования (установленного посредством moveTo() в нашем обработчике события mouseDown) до текущего положения курсора мыши (значения x и y в этом скрипте).

  1. В конец текущего скрипта добавьте обработчик события клипа mouseMove:
onClipEvent (mouseMove) { updateAfterEvent(); if (down && _root.canvas.hitTest(_root._xMouse, _root._yMouse)) { draw(); }}

Событие mouseMove наступает всякий раз при перемещении мыши. Функция updateAfterEvent() – встроенная функция Flash, обновляющая сцену сразу после события (не дожидаясь следующего кадра). Оператор if проверяет, чему равна переменная down и находится ли мышь над областью рисования (canvas). Если и то, и другое – true, вызывается функция draw(). Таким образом, повторяющийся вызов этой функции создает эмуляцию рисования, пока мышь находится над canvas и ее кнопка нажата. Оператор if предотвращает вызов функции draw(), когда кнопка мыши отпущена или мышь выведена за пределы экземпляра canvas.

 

  1. Командой Управление > Проверить фильм (Control > Test Movie) запустите тест фильма. Начните рисовать.

Когда вы, наведя мышь на область рисования, нажмете кнопку, переменной down будет присвоено значение true – и это значит, что при всяком перемещении мыши будет рисоваться линия. Если мышь покидает пределы клипа canvas, рисование прекращается.

  1. Закройте тестовый фильм и сохраните свою работу под именем draw2.fla.

Теперь мы готовы активировать окна справа от области рисования, а также добавить возможность перетаскивания значков-шаблонов в рабочую область.

– Конец работы –

Эта тема принадлежит разделу:

Динамическое управление фильмами-символами

Что будет изучаться... В этой лекции Построение прокручиваемого списка Дублирование и... Приложение для рисования один из проектов которые мы создадим в этом уроке в ходе изучения различных способов динамического управления...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Применение методов рисования

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Создание экземпляров клипов динамически
Для динамического создания экземпляра фильма-символа предназначены три метода объекта MovieClip: duplicateMovieClip(): C помощью этого метода можно создать дубликат

Построение кнопок с непрерывной обратной связью
Порой возникает необходимость в том, чтобы некие действия выполнялись непрерывно, пока нажата кнопка. Кнопки, запрограммированные таким образом, называют кнопками с непрерывной обратной связью; пре

Динамическое рисование при помощи ActionScript
Посредством ActionScript можно организовать рисование динамически, в ходе воспроизведения фильма. Такая возможность обеспечивается методами объекта MovieClip, предназначенными для рисования.

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

Set_video_reclama(); Z-сортировка экземпляров клипа
Изменение глубины расположения экземпляров фильмов-символов называют z-сортировкой. Почему z? Да потому, что глубину во Flash можно рассматривать, как третье измерение, Z-координату (вдобавок к X и

Перетаскивание экземпляров клипа
Зачастую при создании пользовательского интерфейса возникает необходимость реализовать для экземпляров клипов операцию типа "перетащить и оставить" (drag-and-drop). Этим термином обознача

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги