Читаем Macromedia Flash Professional 8. Графика и анимация полностью

После вызова действия или метода startDrag клип останется перетаскиваемым на сколь угодно долгое время. Чтобы завершить операцию "drag'n'drop", например, если пользователь отпустит кнопку мыши, нужно вызвать действие или метод stopDrag. Вот так (действие):

stopDrag();

или так (метод):

_root.car.stopDrag();

На заметку

Для завершения операции "drag'n'drop" также можно вызвать еще раз действие или метод startDrag, но уже для другого клипа. Только один клип в данный момент времени может быть перетаскиваемым.

Теперь давайте подумаем, как применить только что полученные сведения в деле написания реальных сценариев-обработчиков событий.

Для запуска и завершения операции "drag'n'drop" можно использовать обработчики событий mouseDown и mouseUp клипа — это очевидно. Давайте напишем эти обработчики и привяжем их к клипу, который нужно сделать перетаскиваемым.

onClipEvent(mouseDown) {

this.startDrag(false);

}

onClipEvent(mouseUp) {

this._x = _root._xmouse;

this._y = _root._ymouse;

this.stopDrag();

}

Обработчик события mouseDown запускает операцию перетаскивания клипа. А обработчик события mouseUp завершает эту операцию и одновременно помещает клип в ту точку, в которой пользователь отпустил кнопку мыши. Как видим, здесь нет ничего сложного.

Объект MovieClip предоставляет доступное только для чтения свойство _droptarget, возвращающее ссылку на так называемую "цель" операции "drag'n'drop" — на клип, в который был "брошен" перетаскиваемый клип. Можно проверить результат, возвращаемый этим свойством, и, в зависимости от него, завершить или не завершить операцию перетаскивания.

Здесь имеет место небольшое затруднение. Дело в том, что свойство _droptarget возвращает результат в особом формате, применяемом в старых версиях Flash (это версии 1–4). Это так называемая "запись со слэшем", когда в качестве разделителя между именем экземпляра объекта и названием его свойства или метода используется косая черта (/), а не точка. Для того чтобы преобразовать "запись со слэшем" в знакомую нам "запись с точкой", нужно воспользоваться встроенной во Flash функцией evai.

Давайте перепишем сценарии-обработчики событий mouseDown и mouseUp так, чтобы они не позволяли пользователю "бросить" перетаскиваемый клип в клип по имени forbiddenArea. Сценарии будут выглядеть так:

onClipEvent(mouseDown) {

this.startDrag(false);

oldX = this._x;

oldY = this._y;

}

onClipEvent(mouseUp) {

if (eval(this._droptarget)!= _root.forbiddenArea) {

this._x = _root._xmouse;

this._y = _root._ymouse;

} else {

this._x = oldX;

this._y = oldY;

}

this.stopDrag();

}

Теперь первый обработчик, помимо запуска операции "drag'n'drop", сохраняет изначальные координаты перетаскиваемого клипа в переменных oldX и oldY. Второй же обработчик, обнаружив, что пользователь перетащил клип в "запрещенное место", восстанавливает изначальное положение перетаскиваемого клипа. В обоих случаях операция "drag'n'drop" завершается.

Так же просто можно написать сценарий, который, наоборот, разрешит "бросать" перетаскиваемый элемент только в одно определенное место. Вообще, можно много чего придумать…

Создание фигурного курсора мыши

Очень многие приложения (не только созданные во Flash, но и обычные, работающие в системе Windows) "щеголяют" фигурными курсорами мыши. Давайте выясним, как создать такой курсор средствами Flash.

Предположим, что мы создали образец-клип и нарисовали в нем курсор желаемой формы. Далее мы поместили экземпляр созданного клипа на рабочий лист и назвали его cursor. Теперь, чтобы превратить этот клип в фигурный курсор мыши, привяжем к нему такой обработчик события по имени load:

onClipEvent(load) {

this.startDrag(true);

}

Обработчик load сразу же после загрузки клипа делает его перетаскиваемым. После этого клип cursor будет всегда перемещаться за курсором мыши и фактически сам станет курсором, чего мы и добивались.

Казалось бы, все замечательно. Одно плохо: "родной" курсор мыши, рисуемый самой системой Windows, портит всю картину. Его нужно спрятать. Для этого воспользуемся методом hide пока еще не изученного нами объекта Mouse (он будет рассмотрен далее в этой главе). Этот метод скрывает системный курсор мыши.

Перепишем обработчик события load. Он будет выглядеть так:

Перейти на страницу:

Похожие книги

SAP R/3 Системное администрирование
SAP R/3 Системное администрирование

Эта книга полностью обновлена и тщательно пересмотрена. Она является необходимым пособием для руководителей информационных служб, технических консультантов и системных администраторов R/3, которые хотят иметь полное представление об администрировании Basis.Знания, полученные "из первых рук" РѕС' различных специалистов SAP Global Support, работавших над реализацией более 20000 систем R/3, служат РѕСЃРЅРѕРІРѕР№ этой книги, которая научит выполнять все критически важные задачи системного администрирования с оптимальной эффективностью. Она учит быстро принимать правильные решения в сложных ситуациях, используя рекомендации экспертов и ценные рекомендации из реального мира, которые делают это уникальное РїРѕСЃРѕР±ие необходимым для повседневного использования.Кроме всего прочего, эта книга является ценным источником, помогающим подготовиться к экзамену СТС (Certified Technical Consultant) no R/3 Release 4.6C и Enterprise.Р' руководстве рассмотрены:# Настройка системной инфраструктуры.# Администрирование клиента.# Пользователи и полномочия.# Фоновая обработка.# Архивирование данных.# Администрирование спула.# Обслуживание инстанций.# Системный мониторинг.Р

Лиане Вилл , Сигрид Хагеман

Зарубежная компьютерная, околокомпьютерная литература
Цифровой журнал «Компьютерра» № 29
Цифровой журнал «Компьютерра» № 29

ОглавлениеБольшие новостиВиноватого в проблемах iPhone 4 уволили из Apple Автор: Михаил КарповВ Microsoft работают над новой мобильной ОС? Автор: Михаил КарповSkype проведёт первичное размещение акций на бирже Автор: Михаил КарповGoogle закупает беспилотники Автор: Юрий ИльинБилл Гейтс похоронил университеты Автор: Михаил КарповКосмические пираты уничтожили 1295 долларов Автор: Михаил КарповGoogle сговорился с телекомами Автор: Михаил КарповПолиция провела обыск корейского офиса Google Автор: Михаил КарповMicrosoft призывает не переходить на Mac Автор: Михаил КарповПланшет HP на основе WebOS появится в начале 2011 года Автор: Михаил КарповZeus: вирус, который грабит банки Автор: Юрий ИльинКак спасти Microsoft Автор: Андрей ПисьменныйОснователь 4chan рассказал суду о троллях и ньюфагах Автор: Михаил КарповПорностудия судится с пиратами Автор: Михаил КарповLenovo: четыре туза и джокер Автор: Юрий ИльинЧто Apple покажет на конференции в сентябре? Автор: Михаил КарповНа Android сделают телефон-игровую приставку Автор: Михаил КарповOracle атаковал Google и Android Автор: Юрий ИльинКому достанутся дополнительные частоты LTE Автор: Максим БукинТерралабПромзона: Гибридный велосипед Автор: Николай МаслухинСофт: Как настроить модем 3G в Ubuntu Автор: Крестников ЕвгенийПромзона: Походный фильтр для воды Автор: Николай МаслухинСофт: Как устранить эффект красных глаз в Pixelmator Автор: Скрылина СофьяПромзона: Энергетический фонтан Автор: Николай МаслухинСофт: Превращаем Firefox в удобный инструмент Автор: Роман БобылевПромзона: Сенсорный торговый автомат из Японии Автор: Николай МаслухинRaskin — попытка реализации масштабирующегося интерфейса Автор: Андрей ПисьменныйПромзона: Телефон с двумя экранами Автор: Николай МаслухинСофт: Как найти звезду с помощью Android Автор: Николай МаслухинСвоя играВасилий Щепетнёв: Эра Старика Прохазки Автор: Василий ЩепетневКафедра Ваннаха: Требуется военная клиометрия Автор: Ваннах МихаилКивино гнездо: В постели со шпионами Автор: Берд КивиВасилий Щепетнёв: Планы на будущее Автор: Василий ЩепетневКафедра Ваннаха: Свёртка реки Хроноса Автор: Ваннах МихаилИнтерактивАндрей Терехов (РУССОФТ) о русском аутсорсинге Автор: Ирина МатюшонокАналитик Михаил Елашкин о конфликте Oracle и Google Автор: Крестников ЕвгенийReaDitorialТехномир – новая мутация цивилизации Автор: Алексей СысоевИдентификация, абстрагирование, смысл Автор: Юрий ГуськовГолубятня-ОнлайнГолубятня: Интерактив №5 Автор: Сергей ГолубицкийГолубятня: Абсолютная власть Автор: Сергей ГолубицкийГолубятня: 20 килобайтиков Автор: Сергей Голубицкий

Журнал «Компьютерра»

Зарубежная компьютерная, околокомпьютерная литература