Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Остановить выполнения действия при наведении мыши (http://www.flasher.ru/forum/showthread.php?t=36708)

I_RaF_I 04.09.2002 15:47

Остановить выполнения действия при наведении мыши
 
У меня кнопки двигаются по горизонтали с помощью такой беды:

onClipEvent (enterFrame) {
if ( _x>-752) {
_x -= 2;
} else {
_x = 202;
}
}

Мне требовалось остановить при наведении мыши. Я сделал так:

onClipEvent (mouseMove) {
if (_x<800 && _x>-800) {
_x +=2;
}
}

Но получилось подергивания (очень на глюк похожее :rolleyes: ). Хотелось бы переделать. Может посоветуете как сделать, чтобы остановливалось по человечьи?

JeeP 04.09.2002 15:58

наведение мыши отслеживает hitTest - его и пользуй!

принцип такой:

onClipEvent (enterFrame) {
if(!this.hitTest(_xmouse, _ymouse)) { // если не наведено, тогда "двигаемся" :D !
твое движение
}
}

Jema 04.09.2002 16:01

если это кнопки ... лучше юзать on()

и может тогда при on(RollOver) его stop()
а при on(RollOut) play() ....

но попробывать некада.....

Jema 04.09.2002 16:03

2JeeP
 
внатуре красивше... :)

I_RaF_I 04.09.2002 16:23

не пойдет on() и stop() - я пробывал. Кнопки не простые, а в мувике.
Сделал я как Jeep сказал, но глюк все равно какой-то, то едет, то не едит.


onClipEvent (enterFrame) {
if(!this.hitTest(_xmouse, _ymouse)){
if ( _x>-752) {
_x -= 2;
} else {
_x = 202;
}
}}

То вообще встанет....
Тормоза вообщем какие-то. Может это для MX? А то у меня 5-ка.

Jema 04.09.2002 16:35

да ... мож попробуй true поставить....

if(!this.hitTest(_xmouse, _ymouse, true))

I_RaF_I 04.09.2002 16:49

Изменений практически никаких.
Я может добавлю конкретики, если скажу, что полоска узенькая. При наведении мышой - остановливается. Но дальше начинаются чудеса. Убераешь мышь - стоит, наводишь - двигается, поводишь мышь - встает намертво, убераешь двигается. И т.д. Может проще сделать через таймер? Навел - встал, через несколько сек. поехал дальше. Т.е. приводить в чувство его через какое-то время.

Как возобновить движение через 3 сек не подскажите?

JeeP 04.09.2002 17:00

да ... мож попробуй true поставить....

а может еще маслом смазать?


...но глюк все равно какой-то, то едет, то не едит...
естественно, к маусу надо через рут обращаться - не догадался?

это работает:
onClipEvent (enterFrame) {
if (!this.hitTest(_root._xmouse, _root._ymouse)) {
_x++;
}
}

если не будет работать и дальше - ищи ошибку в своей логике!!!

LostWarrior 04.09.2002 17:02

Ну вы извращенцы, блин...
Далается переменная с кодовым названием flag

Код:

on(rollOver){flag=1;}
on(rollOut){flag=0;}
----
onClipEvent (enterFrame) {
if (flag==0){
if ( _x>-752) {
_x -= 2;
} else {
_x = 202;
}
}}

Если не хотите rollOver и rollOut - то в первом и втором кадре кнопки присваиваете flag нужные значения

Jema 04.09.2002 17:19

а может еще маслом смазать?

если поможет ... можно и смазать :)


Часовой пояс GMT +4, время: 03:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.