Просмотр полной версии : а как насчет onMouseStop?
Знаю что вопрос тупой))) НО поиском побегала, не нашла. Подскажите плиз... есть событие onMouseMove, а как начет обратного? То есть если мышь останавливается, дейтсвие прекращает выполняться.
Очень спасиб если кто поможет)))
StrangeMan
17.01.2007, 23:03
проверить что мышь остановилась достаточно просто... считывай координаты мыши.. и вычитай их из предыдущео результата считывания, если результат вычитания будет 0 то мышка не двигается..
что-то дебри какие-то растут в коде и ничего не работает)))).... как их правильно считать?
StrangeMan
17.01.2007, 23:17
_xmouse - координата по Х
_ymouse - координата по У
А, ну тогда.... ничего не понятно.
то что это координаты по Х и У я знаю... но вот как их СЧИТАТЬ?)))
К переменной их приклеить что ли?
Не ругайтесь если туплю)))
StrangeMan
17.01.2007, 23:49
ну дa... попробовать так и сделать...
...исправил...
var x_old=0;
var y_old=0;
var function mouseStop():Void{
if((_xmouse-x_old)==0&&(_ymouse-y_old)==0){
func(); //тут пишешь ту функцию которую хочешь запускать приостановки мыши
clearInterval(id);// уту строчку можно убрать, но с ней у нас функция func() будет вызвана всего один раз, а без неё постоянно когда мышка будет стоять
};
x_old=_xmouse;
y_old=_ymouse;
}
var id=srtInterval(mouseStop, 100);// здесь задаётся время через которое будет проверятся остановилась ли мышка
- этот код я не проверял, и если честно я пока в этом деле тоже новичок, в книжках пишут что можно сделать по умному и создать своё событие, но я пока до этого не дошёл
Aziz Zaynutdinoff
17.01.2007, 23:50
понятное дело в переменную заносить...
сначала выполняем проверку на разность между предыдущими координатами и текущими, если они не равны 0, обновляем значения предыдущих координат, если равны 0, значит мышь стоит
Aziz Zaynutdinoff
17.01.2007, 23:52
StrangeMan
в твоём случае событие сработает только в случае, когда мышь будет в (0, 0)
StrangeMan
в твоём случае событие сработает только в случае, когда мышь будет в (0, 0)
точно. и функция будет выполняться через интервал времени, а мне нужно чтобы проверка эта срабатывала постоянно.... елки, уже пример почти доделала комп завис... щас может опять склею.
StrangeMan
18.01.2007, 00:05
проверка на любое событие происходит через определённый интрвал времени, здай этот интервал меньше... при 100 интервал будет 0,1 секунды по моему это достаточно чтобы ни кто не заметил...
а на счёт только когда мышь будет в 0, 0 не понял??? это почему ето.. я код исправил
может лучше _root.onEnterFrame а не setInterval. Хотя не доверяю я этому событию, мне здается, что флешка из-за него начинает тормозить.
Смотря для каких целей. Но тебе лучше юзать onEnterFrame. И нифига события не тормозят, как бы не наоборот.
Итервал иногда и круто весит если где что забудешь почистить....
короче улетел мой тот код, составила щас уже упрощенный до предела...
вот:
var i:Number = 1;
function myScript():Void {
var dot:MovieClip = attachMovie("mc1", "new_mc"+i, i++);
dot._x = _xmouse;
dot._y = _ymouse;
dot.onMouseMove = function() {
// вот тут по идее нужно задать чтобы эти мувики через определенный интервал времени аттачились И ТОЛЬКО пока мышка движется. Но как?
};
}
myScript();
StrangeMan
18.01.2007, 00:23
разве онЭнтерФрейм... работает когда мувик не проигрывается???? по моему нет.. отсюда вывод этим пользоваться не стоит( по карйней мере в данном случае)...
а как вам такой способ?
checkRate = 100;
lim = 1000;
function rememba (){
lastMove = getTimer();
if(!active){
checkInterval = setInterval( checkIt, checkRate );
trace("active");
}
active = true;
}
onMouseMove = rememba;
function checkIt(){
if(getTimer() - lastMove > lim){
trace("stopped");
clearInterval(checkInterval);
active = false;
}
}
onMouseMove();
Ksюta
Если не секрет, для чего вам такое событие понадобилось?
пока писал, информация устарела ((
если надо аттачить мувики, предлагаю такой способ:
var lastX:Number;
var lastY:Number;
var i:Number = 1;
function myScript():Void {
if( lastX == _xmouse && lastY == _ymouse) return;
var dot:MovieClip = attachMovie("mc1", "new_mc"+i, i++);
dot._x = lastX = _xmouse;
dot._y = lastY = _ymouse;
}
onEnterFrame = myScript;
но только надо как-то сечь количество этих клипов, а то их будет слишком много.
Или использовать BitmapData
upd: исправил, было пропущено i
Ksюta
Если не секрет, для чего вам такое событие понадобилось?
Да не серет в принципе)))... нужно чтоб в ролике буквы из массива аттачились таким образом. Трюк для заставки. просто самая фишка в том, что они должны аттачиться или останавливаться в зависимости от поведения мыши... я вообще в AS не полный чайник уже, но это осилить оказалось трудно...
только надо как-то сечь количество этих клипов, а то их будет слишком много.
Или использовать BitmapData
Спасибо) Их как раз не очень много...., так что наверное подойдет,... щас поразбираюсь чуть.
я там i забыл, исправил.
Если сабж, то пост 15.
Если аттачить по мышке, пост 17.
я там i забыл, исправил.
Если сабж, то пост 15.
Если аттачить по мышке, пост 17.
Ну я так и поняла, там без i вылитый startDrag получался.))
спасибо)
тольк при frameRate 45 это оччень круто))) щас подумаю как их на интервал посадить, чтоб пореже...
Всем спасибо, решила проблему)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.