Ініціалізація руху клацанням миші
Тепер ми значно змінимо код, щоб фільм переміщався в будь-які місця, де користувач клацне мишею. Аналогічно тому, як ми привласнювали функцію onEnterFrame фільму, ми можемо привласнити йому функцію onMouseDown. Ця функція буде виконуватися при кожному натисканні кнопки миші в будь-якому місці на головному фільмі. Отже, коли користувач клацає мишею, потрібно спочатку встановити позиції цілей фільму на місце розташування клацання, а потім виконати функцію onEnterFrame для переміщення на цю позицію:
- Використовуючи настроювання кадру, застосовані в попередніх прикладах, скористайтеся панеллю Actions для додавання наступного коду в кадр 1 шаруючи script:
Можна бачити, що цей ActionScript кардинальним образом відрізняється від попереднього ActionScript. Якщо раніше ми приєднували функцію безпосередньо до керуючого елемента onEnterFrame, то цього разу ми спочатку визначаємо функцію moveToMouse, і при клацанні мишею вираження this.onEnterFrame указує на цю функцію й викликає її в кожному кадрі. Функція сама по собі працює так само, як і колись, за винятком того, що переміщення відбувається не на позицію покажчика миші, а на значення змінних target і target, що є змінними місця розташування покажчика миші, значення яких визначаються при кожному клацанні мишею користувачем.
Цей підхід виглядає більше ефективним, тому що потрібно лише один раз визначити функцію, а потім активізувати її, указавши для неї onEnterFrame. Якщо згодом потрібно буде виключити рух, це можна зробити, видаливши this.onEnterFrame.
- Збережете ваш фільм у файлі ball motion_03_click to move.fla і запустите його.
Ви побачите, що об'єкт переміщається на те місце, де ви клацнули мишею, і потім, дійшовши до цього місця, припиняє свій рух, що являє гарний приклад зіставлення з тим случаємо, коли кулька постійно випливала за мишею.
Дата добавления: 2015-04-03; просмотров: 663;