Просмотр полной версии : Остановить выполнения действия при наведении мыши
У меня кнопки двигаются по горизонтали с помощью такой беды:
onClipEvent (enterFrame) {
if ( _x>-752) {
_x -= 2;
} else {
_x = 202;
}
}
Мне требовалось остановить при наведении мыши. Я сделал так:
onClipEvent (mouseMove) {
if (_x<800 && _x>-800) {
_x +=2;
}
}
Но получилось подергивания (очень на глюк похожее :rolleyes: ). Хотелось бы переделать. Может посоветуете как сделать, чтобы остановливалось по человечьи?
наведение мыши отслеживает hitTest - его и пользуй!
принцип такой:
onClipEvent (enterFrame) {
if(!this.hitTest(_xmouse, _ymouse)) { // если не наведено, тогда "двигаемся" :D !
твое движение
}
}
если это кнопки ... лучше юзать on()
и может тогда при on(RollOver) его stop()
а при on(RollOut) play() ....
но попробывать некада.....
не пойдет on() и stop() - я пробывал. Кнопки не простые, а в мувике.
Сделал я как Jeep сказал, но глюк все равно какой-то, то едет, то не едит.
onClipEvent (enterFrame) {
if(!this.hitTest(_xmouse, _ymouse)){
if ( _x>-752) {
_x -= 2;
} else {
_x = 202;
}
}}
То вообще встанет....
Тормоза вообщем какие-то. Может это для MX? А то у меня 5-ка.
да ... мож попробуй true поставить....
if(!this.hitTest(_xmouse, _ymouse, true))
Изменений практически никаких.
Я может добавлю конкретики, если скажу, что полоска узенькая. При наведении мышой - остановливается. Но дальше начинаются чудеса. Убераешь мышь - стоит, наводишь - двигается, поводишь мышь - встает намертво, убераешь двигается. И т.д. Может проще сделать через таймер? Навел - встал, через несколько сек. поехал дальше. Т.е. приводить в чувство его через какое-то время.
Как возобновить движение через 3 сек не подскажите?
да ... мож попробуй 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 нужные значения
а может еще маслом смазать?
если поможет ... можно и смазать :)
2 Jeep: по барабану _root. все происходит на первом уровне. Изменений никаких.
2 LostWarrior: Работает прекрасно, только есть одно но... оно не начинает двигаться пока мышой не проведешь. А надо чтобы оно изначально двигалась.
Я еще вас не достал?
LostWarrior
04.09.2002, 18:04
А ты не пробовал определить значение переменной в первом кадре главного мувика? Или, чтоб совсем круто, onClipEvent(load) :)
Оказывается так просто. Спасибо LostWarrior !
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.