PDA

Просмотр полной версии : Приследование щелчка мыши!


navidim
01.06.2002, 00:35
надо чтоб по нажатию на клавишу мыши объект перебегал туда где находится курсор. Поиск плохо рулит, поэтому помогите :(

Nox Noctis
01.06.2002, 02:43
поиск очень даже хорошо рулит. выруливает.

например (http://www.flasher.ru/forum/showthread.php?s=&threadid=30876)
(хотя примеров оч много)

погляди там в моем сообщении код. скорее всего это то, что ты спрашиваешь.

navidim
01.06.2002, 11:27
можешь объяснить по-подробнее если можно исходник кинь, я вообще в Action Script плохо разбираюсь :(

DUDE
02.06.2002, 13:00
слушай, а если усложнить?
т.е. Я например хотел не просто клип передвинуть
а чтоб сам клип содержал анимацию?
например шестеренка двигается по стальной балке на ней зубцы, и как сам понимаешь : по нажатию кнопки надо не только чтоб он переместился куда надо (это ладно в мх есть на эту тему урок), но при этом поворачивался согласно тому на сколько он переместился.=]

Aib
02.06.2002, 14:29
function MovePinion(){
if (pinion._x-newX>deltaX)
pinion._rotation -= k*deltaX;
pinion._x -= delta;
} else if (pinion._x-newX<-deltaX)
pinion._rotation += k*deltaX;
pinion._x += delta;
} else {
pinion._rotation = k*(newX-pinion._x);
pinion._x = newX;
pinion.onEnterFrame = null;
}
}
_root.onRelease = function(){
newX = _root._xmouse;
pinion.onEnterFrame = MovePinion();
}

ish
02.06.2002, 15:01
Оригинал написал(а) Aib


pinion.onEnterFrame = MovePinion();



хм...

Nox Noctis
02.06.2002, 15:11
2ish
точно. хмм. :)))


вот ! :))

Aib
02.06.2002, 16:08
2Nox Noctis
l = 2*Math.PI*circle._height/2; :p

И в чём "хм..."?

Nox Noctis
02.06.2002, 16:12
2Aib
чего смешного ? ;) ;)
никогда не видел деления двойки на двойку ? :p
нууу... я писал, чтоб было понятно что за формула и откуда взялась :cool:
хотя, конечно, пи на диаметр ничуть не хуже чем пи на два радиуса :p

...а "хм" заключается в скобках :) :)

Aib
02.06.2002, 16:20
2Nox Noctis
Ага, спасибо, а то Я уж испугался... :D

DUDE
02.06.2002, 22:21
Погоди!! это всё просто супер молодца :D
Но можно ли сделать так :
Если эта самая шестерёнка но только ты на неё не с боку смотришь, а например сверху?????
тогда как??

navidim
02.06.2002, 22:35
Ну а все таки скажите скрипт для конкретного случая, то, что я попросил, и растолкуйте плз... :D

Nox Noctis
02.06.2002, 22:42
эээ... ты хочешь сказать, что в этой теме ответа на твой вопрос еще не прозвучало ? :rolleyes:

Aib
03.06.2002, 01:15
2DUDE
Делаешь 5-100 кадров состояния шестирёнки и показываешь их один за другим втом же цикле. И смотри на нёё под тем углом, которым хочешь.

navidim
03.06.2002, 12:18
Эээ я хочу сказать ответ на мой вопрос конечно прозвучал! :rolleyes: Но, к сожалению не работает такой скрипт у меня... Может из-за моей ошибки или ошибки автора. А прошу я объяснить в проверенном на дееспособность скрипте как что и куда!!! :rolleyes:

Nox Noctis
03.06.2002, 19:54
это код для мыкса :)
абсолютно то же самое можно сделать в пятерке

DUDE
04.06.2002, 00:24
Тепер представь что у меня есть 6 кнопок и по её нажатию(кнопки)к ней передвигалась эта шестерёнка! если ты нажимаешь 123456 то всё ок, всё работает....но вот беда:
как обратно ????
было на форуме обсуждалось но вот беда искал но ссылку забыл :( :( :(

Aib
04.06.2002, 10:24
Если Ты про мой скрипт, то там действительно есть одна ошибка (её ish выделил). Скобок в конце быть не должно, т.к. присваиваем сам метод, а не его значение.
Что до примера Nox Noctis'а, то он работает как танк :D

Nox Noctis
04.06.2002, 13:00
2DUDE
исходник можно посмотреть ? :)

DUDE
04.06.2002, 20:47
Да исходника то и нету!!!Именно по этой причине : по тому что не знаю, как ролик воспроизвети обратно!
точнее придумал один способ но, он слишком мудрёный, и мне кажется совсем не граматный!
состоит в следуюшем : просто в каждом фрейме вешать такой акшен:
stop ();
if (i==1) {
prevFrame ();
}
и так в каждом фрейме. коне4но переменная не одна, а 6,
но это упрошённый вариат, чтоб посказали граматно, или нет.
а на каждую кпопку разумеется вешаем присвоение значения переменной.но тут опять проблема: а если человек будет по кнопочкам водить флэшь заглючит! т.к.нельзя присваивать новое значение одной и той же переменной слишком быстро!
а хотелось то совсем по другому:чтоб в определённом участке
начинался отлов мыши, затем ролик с этой шестеренкой
двигался паралелно этой мыши только по х-оси ,при этом он должен как бы залипать в строго отведённых местах, и не слезать оттуда если мышь сдвинули на пиксель,и как бы переезжала только если на другую кнопу навели!!!!
и наконец самое главное чтоб эта шестерёнка крутилась только в момент движения ролика!!!!!
вот как такое сделать ума не приложу пробовал 5-7 раз получается 4ушь!!например я не могу сделать залипание.
Или к примеру как мышу поимать в строго определённом прямоугольнике???

Nox Noctis
04.06.2002, 20:53
ниччччего не понял :)
сделать гораздо проще, чем понять, что нужно сделать :)

есть такой стаааарый прикол...

http://xentarknight.narod.ru/pogramming_essence.gif

зы: грамОтно

navidim
05.06.2002, 00:03
:eek: Умираю, люди, ну киньте кто-нибудь исходник работающий, ну пожалуйста!!!! Это так просто, но врубиться увы не дано :(

derhab
05.06.2002, 04:04
navidim, не надо умирать. Держи вот, тоже самое что тебе предлагал Nox Noctis, только для пятерки и без вращения мувика, чтоб ты не путался :)

navidim
05.06.2002, 14:15
:D А теперь можешь кое-что объяснить???
this._x += (this.x-this._x)*.1;
this._y += (this.y-this._y)*.1;
что такое this.x и this.y ? И почему умножается на .1???

derhab
05.06.2002, 16:40
this._x это координаты клипа по оси х, this._y соответственно.
А чтоб понять. почему умножается но 0.1, попробуй поизменять это значение. Вобщем экспериментируй. И купи
себе книжку по Экшен Скрипт, если все это тебя сильно интересует ;)

navidim
05.06.2002, 17:09
:rolleyes: я имел ввиду
this.x и this.y что такое у тя, а про координаты по осям я знаю this._x this._y и с числом 0.1 я уже разобрался

derhab
05.06.2002, 17:17
circle.x = _root._xmouse;
circle.y = _root._ymouse;
Это стоит во фрейме. А this.x==circle.x, это один и тот же объект, т.е мувик, просто this это обращение к нему из него же самого, а circle это его инстанснаме.
Так понятно?

DUDE
05.06.2002, 19:43
ай! не поняли и забудьте-чисто для меня это не только не реально но и реализовать зто грамотно несмогу :(:(:(:(:(:(
по этому всё что я сказал не имеет равно никакого зна4ения...........................

navidim
05.06.2002, 19:48
Спасибо тебе огромное, derhab!!!
А то я уж вешаться собрался! :D

derhab
05.06.2002, 19:52
2 navidim. Нашел повод... ;)

Nox Noctis
05.06.2002, 22:08
2DUDE
только не плачь :D :D а то птичку так прям жалко - аж сил нет :)

ты можешь объяснить что должно быть и чего не получается ?
так чтобы было понятно...
(ну, мож это конечно только я не понял о чем речь...)

DUDE
06.06.2002, 20:50
Ты знаешь....такое дело......вообщем всё ок.
жизня налаживается!!!!!а плакать не умею!!!!!
вообщем я нашёл решение проблеммы,
я считал что ускорить ролик нельзя - оказывается можно!!
и ещё не знал как его обратить - тоже нашёл!!!
так что всё ок !!!
извините за сопли на стекле!!!!!!!! больше не буду!!!!!!!!
:) :) :)
PALDIES!!!!!
и всё вовсе не с исходниках !!! а только на форуме!!!!!!!!

Nox Noctis
06.06.2002, 21:01
мм... runasim latviski ? ;)

DUDE
07.06.2002, 20:16
Kapec po latviski??? mes varam runat ari anglju valoda!!!:) :)
nu kurienes tu esi??es dzivoju Latvija, Riga!!!