Назад в раздел
Drag and Drop. Варианты
div.main {margin-left: 20pt; margin-right: 20pt}
Drag and Drop. Варианты.
Фактически в данном уроке я рассмотрю три варианта. //Четвертый просто улучшенный третий.
1. StartDrag 2. Трех-кадровый цикл 3. onClipEvent(mouseMove)
Для начала открываем Flash. Рисуем четыре круга.
Далее делаем наши кружочки кнопками (поочередно отмечаем круги по одному и нажимаем F8 в появившемся меню выбираем Button).
Теперь делаем их Муви Клипами (поочередно отмечаем круги по одному и нажимаем F8 в появившемся меню выбираем Movie Clip).
Способ 1. StartDrag Два раза кликаем на первый круг (далее: входим в символ). Нажимаем на круг правой клавишей и выбираем в выпавшем меню Actions. В окошке пишем (если вы работаете в Normal Mode, то выбирайте из списка команд, хотя советую переходить в Expert Mode это можно сделать нажатием клавиш Ctrl+E):
on (press) { startDrag (this, true); } on (release) { stopDrag (); }
Наш первый Драг готов. Можете проверить это протестировав Мувик. Работает это за счет пары стандартных ф-й StartDrag() и StopDrag(). У стандартной ф-ии StartDrag есть один недостаток, драгать вы можете только один мувик.
Способ 2. Трех-кадровый цикл
Входим во второй круг-символ. Добавляем еще один слой. В первом кадре пишем Action:
stop();
Продлеваем мувиклип до трех кадров (отметьте кадр и нажмите F5). Отмечаем третий кадр, нажимаем F6. В нем пишем:
_x = _root._xmouse; _y = _root._ymouse; gotoAndPlay (2);
На кнопке пишем Action:
on (press) { play (); } on (release, releaseOutside) { gotoAndStop (1); }
Второй пример готов. Он работает следующим образом: При нажатии на кнопку мувик начинает проигрываться, дойдя до 3 кадра мувик приравнивает свою Х координату к Х координате мыши, тоже самое происходит с У. Далее мув отправляется на второй кадр. Образуеться цикл. При отпускании кнопки мув отправляет себя на первый кадр, где и останавливаеться.
Способ 3. onClipEvent(mouseMove)
Не входя в символ пишем Action прямо на мувик:
onClipEvent (mouseMove) { if (drag) { _x = _root._xmouse; _y = _root._ymouse; } }
Далее входим в символ и на кнопке пишем:
on (press) { drag = 1; } on (release, releaseOutside) { drag = 0; }
Пример готов. Этот мувик выполняет код написанный на нем при каждом движении мыши. Нажатием кнопки мы присваиваем переменной drag значение 1. Теперь условие if(drag) на мувике исполняеться и аналогично с предидущим примером мувик приравнивает свои координаты к мышке.
Способ 4. Улучшенный 3
Пример 3 исполняеться быстрее всего, единственный его недостаток это то что переменная drag проверяеться при каждом движении мыши, а нам этого не надо. Поэтому делаем следующее. Входим в наш четвертый кружок-символ и добавляем в нем два слоя. В первом кадре верхнего слоя пишем:
stop();
На кнопке пишем:
on (press) { gotoAndStop(2); } on (release, releaseOutside) { gotoAndStop(1); }
Второй кадр второго слоя делаем ключевым (F6). В нем делаем пустой символ (я делаю это так: русую круг, делаю его символом, вхожу в символ, стираю круг). На нем пишем (на пустом символе, а не внутри него):
onClipEvent (mouseMove) { _parent._x = _root._xmouse; _parent._y = _root._ymouse; }
Пример готов. Усовершеннствование в том, что движения мыши обрабатываються только после нажатия кнопки.
Вот в общем то и все. Надеюсь это кому-нибудь поможет.
Если вам это помогло, помяните добрым словом gOloVasTicK'a ;) |
Автор: © gOloVasTicK '~ Источник:
http://www.flasher.ru
|
|
|
|