![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Nov 2012
Адрес: Комсомольск-на-Амуре
Сообщений: 13
|
Не посчитайте дураком, AS 3.0 изучаю недавно)))
Не могу вспомнить и найти в нете как поставить функцию на тот момент, когда мышь только заходит на объект(( Обработчик события, какое событие(я сформулировать не могу). Нужно что бы объект убегал от мыши , когда мышь только заходит на обьект(( В справке найти не могу, так как к лексикону не привык... Скидывать нечего, так как мне только этот код и нужен. |
|
|||||
|
Регистрация: Dec 2012
Адрес: Ростов-на-Дону
Сообщений: 13
|
|
|
|||||
|
Регистрация: Nov 2012
Адрес: Комсомольск-на-Амуре
Сообщений: 13
|
С private я еще не знаком, и решил вопрос иначе(корявенько наверно и слишком длинно)
import com.greensock.*; import com.greensock.easing.*; mc1.mc.addEventListener(MouseEvent.MOUSE_OVER, mouseOVER); function mouseOVER(event:MouseEvent):void { TweenLite.to(mc1, 1, {x:Math.random()*800, y:Math.random()*650, ease:Cubic.easeOut}); } mc1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN); function mouseDOWN(event:MouseEvent):void { mc1.startDrag(); } stage.addEventListener(MouseEvent.MOUSE_UP, mouseUP); function mouseUP(event:MouseEvent):void { mc1.stopDrag(); } var mcc:Mcc = new Mcc ; mcc.x = 400; mcc.y = 324; mc1.ok_mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_2); function mouseDOWN_2(event:MouseEvent):void { mcc.visible = true; mc1.visible = false; addChild(mcc); } mcc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_3); function mouseDOWN_3(event:MouseEvent):void { mcc.startDrag(); } stage.addEventListener(MouseEvent.MOUSE_UP, mouseUP_2); function mouseUP_2(event:MouseEvent):void { mcc.stopDrag(); } mcc.mcc1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_4); function mouseDOWN_4(event:MouseEvent):void { mcc.visible = false; mc1.visible = true; addChild(mc1); } |
|
|||||
|
Надо не на MOUSE_OVER подписываться в этом случае, а на MouseEvent.ROLL_OVER. При MOUSE_OVER событие будет слаться все время, пока мышь перемещается над объектом
если внутри вложены другие объекты реагирующие на мышь, событие будет и на них всплывать Последний раз редактировалось caseyryan; 24.12.2012 в 07:36. Причина: поправка |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Разница между этими событиями в том, что ROLL_OVER не всплывающее.
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
__________________
Отряд Котовскага |
|
|||||
|
Цитата:
Цитата:
Ну нужно создавать кучу обработчиков на каждый объект, достаточно одного в каждом случае: import com.greensock.*; import com.greensock.easing.*; var mcc:Mcc = new Mcc() ; // правильнее всегда добавлять скобки, хоть и не всегда это имеет значение mcc.x = 400; mcc.y = 324; mc1.mc.addEventListener(MouseEvent.ROLL_OVER, onRollOver); mc1.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); mc1.ok_mc.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); function onRollOver(e:MouseEvent):void { TweenLite.to(mc1, 1, {x:Math.random()*800, y:Math.random()*650, ease:Cubic.easeOut}); } function onMouseUp(e:MouseEvent):void { var target:MovieClip = e.target as MovieClip; if (target == mc1.mc) { } } function onMouseDown(e:MouseEvent):void { var target:MovieClip = e.target as MovieClip; if (target == mc1.mc) { // тут обрабатываем то, что связано с этим мувиклипом } else if (target == mc1.ok_mc) { } else if (target == mcc) { } else if (target == mcc.mcc1) { } } Последний раз редактировалось caseyryan; 24.12.2012 в 08:04. |
|
|||||
|
Регистрация: Nov 2012
Адрес: Комсомольск-на-Амуре
Сообщений: 13
|
Ну вот повозился и вопросы таковы...
Код который я скинул работает, попробовав использовать предложенный не понял и заметил несколько вещей: mc1.mc.addEventListener(MouseEvent.MOUSE_OVER, mouseOVER); mc1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_1); mc1.ok_mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_2); mcc.mcc1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_3); mcc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_4); stage.addEventListener(MouseEvent.MOUSE_UP, mouseUP_1); stage.addEventListener(MouseEvent.MOUSE_UP, mouseUP_2); Далее еще два то же на разные объекты. По нижнем двум действительно думал как бы сократить код, но не пойму как проверить в условии какой из Drag"ов работает (stopDrag или startDrag) По предложенному коду вопрос по поводу имен функции таких к примеру как: Выдает ошибку: Монтажный кадр 1, слой "Слой 1", кадр 1, строка 59 Warning: 1090: Ошибка миграции: Flash Player не запускает обработчик событий onMouseDown автоматически во время выполнения в ActionScript 3.0. Сначала нужно зарегистрировать этот обработчик для события, используя addEventListener ("mouseDown", callback_handler). За предложенный способ все равно спасибо))) Вообще задумка было такая как во в вложении к посту, хотел пошутить над другом))) Но фишка в том что у меня в компилированном виде все без багов, но у него когда проигрывает, курсор при нажатии на "да" во втором окошке липнет и не отпускается (прикол не удался) Последний раз редактировалось SEMA_KMS; 25.12.2012 в 12:48. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|