«Разработка ЦОР для ИД во Flash» Технология работы с событиями onMouseDown и onMouseUp. Прием использования метода hitTest При разработке данного урока использовался уже знакомый слушателям метод hitTest. Новым в данном уроке является использование событий onMouseDown и onMouseUp. Событие onMouseDown возникает при нажатии левой кнопки мыши на объекте, событие onMouseUp возникает при отпускании нажатой левой кнопки мыши. Отличительной особенностью свободного перемещения объекта с использованием событий onMouseDown и onMouseUp в данном уроке является то, что объект приклеивается к курсору и может быть сброшен только на требуемую область рядом с героями. Играющий должен достать из корзинки объект и переместить его трем героям в соответствии с числом, расположенным рядом. При перемещении неправильного количества объектов, они могут быть удалены. Для этого необходимо щелкнуть левой кнопкой мыши по объекту. Если все выполнено верно, то осуществляется переход на следующий кадр. Алгоритм разработки ЦОРа 1. Откройте новый документ Flash. 2. Разместите в 1-м кадре слоя «Фон» статический текст с заданием: «Переместите угощение из корзинки в листочки». 3. Создайте новый слой и на нём разместите все изображения: «Разработка ЦОР для ИД во Flash» 4. Выделите Пчелёнка и листок и преобразуйте в символ – тип клип: 5. Задайте для созданного клипа имя инстанции pchela: «Разработка ЦОР для ИД во Flash» 6. Аналогичным образом поступите с Милой и Кузей. Имена клипов соответственно будут mila и kuzya: 7. Двойным щелчком заходим внутрь символа pchela, выделяем зеленый листик и преобразовываем его в символ клип, задаем имя инстанции listok: 8. Аналогичным образом поступаем и с Милой и Кузей, удалив листок и заменив его на созданный символ из библиотеки. 9. Преобразовываем корзину в символ клип и задаем имя инстанции karzina: 10.Клипу karzina добавляем следующий скрипт, нажав F9: onClipEvent (enterFrame) { if (_root.c == 2 && _root.b == 1 && _root.e == 3) { _root.gotoAndStop(2); } // end if } «Разработка ЦОР для ИД во Flash» В данном скрипте задается переход на следующий кадр при условии, что 2 яблока нужно будет дать Пчелёнку, 1 яблоко – Миле и 3 яблока Кузе. 11.Импортируем изображение фрукта (в моем примере - яблоко). И создаем из нескольких яблок эффект заполненной корзины, преобразовав все яблоки вместе в символ клип и задав ему имя инстанции vnutri: 12. Двойным щелчком заходим внутрь символа vnutri и создаем маску, чтобы скрыть низ яблок в корзинке. Для этого создаем новый слой и на нем инструментом Линия отсекаем нижнюю область яблок и создаем замкнутую область, залив ее инструментом Заливка. Это и будет наша маска: «Разработка ЦОР для ИД во Flash» 13.Щелкаем правой кнопкой мыши по слою и преобразовываем его в маску, выбрав в отрывшемся меню Маска: 14.Корректируем низ созданной маски, чтобы был эффект расположения яблок внутри корзины: «Разработка ЦОР для ИД во Flash» 15.Выходим из символа, нажав синюю стрелку. 16.Переносим из библиотеки изображение яблока и преобразовываем его в символ клип с именем символа яблоко: 17.Экспортируем символ яблоко для ActionScript: «Разработка ЦОР для ИД во Flash» Ставим галочку и задаем имя frukt1: 18.Двойным щелчком заходим внутрь яблока. Создаем новый слой и задаем имя слою: Action Layer 19.Ставим курсор на 15 кадр и нажимаем F5. 20.В 1 кадр добавляем скрипт stop (); 21.Вставляем пустой ключевой кадр в 16 кадр и добавляем скрипт stop (); «Разработка ЦОР для ИД во Flash» 22.С 1 по 5 кадр создаем классическую анимацию движения (эффект увеличения яблока): 23.Импортируем в библиотеку звук и добавляем его в 5 кадр: «Разработка ЦОР для ИД во Flash» 24.С 6 по 14 кадр создаем классическую анимацию движения (эффект уменьшения яблока): 25.Выходим из символа и удаляем яблоко с рабочего поля. Оно будет активироваться из библиотеки. 26.В кадр добавляем следующий скрипт: stop (); c = 0; b = 0; e = 0; a = 0; a1 = 0; d = 0; myArray = new Array(); onMouseDown = function () // Событие onMouseDown возникает при нажатии левой кнопки мыши на объекте { «Разработка ЦОР для ИД во Flash» for (i = 0; i < _root.a; i++) { if (_root.karzina["frukt1" + i].hitTest(_root._xmouse, _root._ymouse, true)) { d = i; } // end if } // end of for if (_root.vnutri.hitTest(_root._xmouse, _root._ymouse, true)) { ++_root.a; _root.a1 = _root.a; myArray.push(_root.a); _root.karzina.attachMovie("frukt1", "frukt1" + _root.a, _root.a); _root.karzina["frukt1" + _root.a].startDrag(); } else { if (_root.karzina["frukt1" + _root.d].hitTest(_root._xmouse, _root._ymouse, true)) { _root.karzina["frukt1" + _root.d].play(); if (_root.pchela.listok.hitTest(_root._xmouse, _root._ymouse, true)) { --_root.c; } // end if if (_root.mila.listok.hitTest(_root._xmouse, _root._ymouse, true)) { --_root.b; } // end if if (_root.kuzya.listok.hitTest(_root._xmouse, _root._ymouse, true)) { --_root.e; } // end if } // end if if (_root.karzina["frukt1" + _root.a].hitTest(_root._xmouse, _root._ymouse, true)) { _root.karzina["frukt1" + _root.a].play(); if (_root.pchela.listok.hitTest(_root._xmouse, _root._ymouse, true)) { --_root.c; } // end if if (_root.mila.listok.hitTest(_root._xmouse, _root._ymouse, true)) { «Разработка ЦОР для ИД во Flash» --_root.b; } // end if if (_root.kuzya.listok.hitTest(_root._xmouse, _root._ymouse, true)) { --_root.e; } // end if } // end if } // end else if }; onMouseUp = function () // Событие onMouseUp возникает при отпускании нажатой левой кнопки мыши { if (_root.karzina["frukt1" + _root.a1].hitTest(_root.pchela.listok)) { _root.karzina["frukt1" + _root.a1].stopDrag(); if (_root.a == _root.a) { ++_root.c; _root.a1 = 0; } // end if } // end if if (_root.karzina["frukt1" + _root.a1].hitTest(_root.mila.listok)) { _root.karzina["frukt1" + _root.a1].stopDrag(); if (_root.a == _root.a) { ++_root.b; _root.a1 = 0; } // end if } // end if if (_root.karzina["frukt1" + _root.a1].hitTest(_root.kuzya.listok)) { _root.karzina["frukt1" + _root.a1].stopDrag(); if (_root.a == _root.a) { ++_root.e; _root.a1 = 0; } // end if } // end if }; 27.Добавляем код, разворачивающий клип на весь экран, и кнопку выхода. 28.Нажимаем Ctrl+Enter - тестируем проект! «Разработка ЦОР для ИД во Flash» 29.Публикуем в формате swf. Пояснение. Для того, чтобы создать второй кадр поступаем аналогично приведенному выше алгоритму. Создаем новый объект для перемещения, например, грушу. И не забываем в скрипте менять название нашего объекта: frukt2 и т.д., экспортировав его в ActionScript. В скрипте клипа karzina изменяем цифры на необходимые и ставим переход на следующий кадр. Чтобы игра стала живее можно озвучить правильность выполнения задания, добавив во 2 кадр звук: Уважаемые коллеги! Работы, выполненные по материалам данного урока можно загружать в библиотеку творческой группы обсуждения и последующей публикации! Жду ваши работы! Успехов! Источники: Лунтик и его дрязья Клипарт http://www.cwer.ru/files/u260510/luntik.jpg Корзинка http://ns2.dragoart.com/tuts/pics/8/262/how-to-draw-an-easter-eggbasket.jpg Груша http://ase-i.narod.ru/Grusha1_big.jpg Яблоко http://www.featurepics.com/FI/Thumb/20070624/Apple-361397.jpg Лунтик http://decor.mamusik.ru/img/shop-preview/151-1-f.jpg Фон http://i036.radikal.ru/0902/b6/07632d08b5cc.jpg Пример работы с событиями onMouseDown и onMouseUp. для