PDA

Просмотр полной версии : Как перемещением курсора управлять сменой кадров?


slava444
25.05.2006, 23:27
Есть символ clip_mc, который вызывается из библиотеки на экран. Он содержит мультфильм с покадровой анимацией. Кто-нибудь знает как можно организовать управление сменой кадров движением курсора.?Например, если зажать кнопку мыши и перемещать курсор влево, то кадры бы двигались назад, вправо - вперёд. Пробовал присвоить переменной значение clip_mc._xmouse и сравнивать эту переменную с определёнными значениями для x-вого положения курсора, но ничего не получается, видимо значение переменной слишком часто меняется. Help, pls!

MIX-er
25.05.2006, 23:43
посчитай проценты от положения... те 0-100 сто кадров предположим в мувике вот в них и переходи... и это ты хоть положение крысы округляешь???

MIX-er
25.05.2006, 23:51
this.onMouseMove = function() {
trace(int(((Stage.width-_xmouse)/Stage.width)*100));
};

antonyrec
26.05.2006, 00:03
а тебе нужно как? чтобы кадры мувика были зацикленны или нет?
Т.е. пока мышку влево (а кадров, допустим, 7), то все это крутится по циклу?

antonyrec
26.05.2006, 00:24
В любом случае, отслеживаем дельту позиции мышки (как в случае с onMouseWheel (где дельта уже известна)) и, в зависимости от знака + или - , делаем onEnterFrame либо nextFrame() либо prevFrame().

slava444
26.05.2006, 00:26
посчитай проценты от положения... те 0-100 сто кадров предположим в мувике вот в них и переходи... и это ты хоть положение крысы округляешь???
спасибо, надо пропробовать поработать с процентами

slava444
26.05.2006, 00:28
В любом случае, отслеживаем дельту позиции мышки (как в случае с onMouseWheel (где дельта уже известна)) и, в зависимости от знака + или - , делаем onEnterFrame либо nextFrame() либо prevFrame().
onEnterFrame это событие мувика, когда я вызываю мувик из библиотеки, то не получается прикрепить к нему код

slava444
26.05.2006, 00:31
мне именно нужно найти дельту x-вых координат, но в связи с событиями пользователя

antonyrec
26.05.2006, 00:31
onEnterFrame это событие мувика, когда я вызываю мувик из библиотеки, то не получается прикрепить к нему код

А зачем именно к нему?

Usnul
26.05.2006, 00:32
_root.gotoAndStop(_root._xmouse);

antonyrec
26.05.2006, 00:33
И, кстати, можно
Сначала "вызвал мувик из библиотеки", а затем код повесил.

slava444
26.05.2006, 00:38
А зачем именно к нему?
код с таким событием, если его не вставлять в мувик, вызывает ошибку

slava444
26.05.2006, 00:39
И, кстати, можно
Сначала "вызвал мувик из библиотеки", а затем код повесил.
как, например?

slava444
26.05.2006, 00:41
_root.gotoAndStop(_root._xmouse);
_xmose быстро меняется, поэтому кадры в этом случае будут меняться с огромной скоростью и комп повиснет

antonyrec
26.05.2006, 00:45
1) Не нужно код вставлять в сам мувик
2) "вызвал мувик из библиотеки"
3) После этого (когда ты уверен, что он (мувик) загружен) вешай код хоть куда. Хоть _root.onEnterFrame, хоть _level0.onEnterFrame, хоть this.onEnterFrame, хоть твой мув.onEnterFrame. Главное пропиши в onEnterFrame с чем нужно работать.

Nidl
26.05.2006, 00:45
http://www.flasher.ru/forum/showthread.php?t=79258&page=2

см. исходник Silina , пост № 11 .

antonyrec
26.05.2006, 00:47
_root.gotoAndStop(_root._xmouse);
А если кадров 70, а _root._xmouse либо _xmouse==800? Куда прикажете переходить? На 800 кадр?

Nidl
26.05.2006, 00:50
Настоятельно рекомендую смотреть мой пост № 16 .

P.S. Я уже целый час смотрю как вы тут на одном месте топчетесь , доложу вам это кошмарное зрелище ...

slava444
26.05.2006, 00:54
Настоятельно рекомендую смотреть мой пост № 16 .

P.S. Я уже целый час смотрю как вы тут на одном месте топчетесь , доложу вам это кошмарное зрелище ...
огромное спасибо, Nidl! жаль сейчас не могу посмотреть этот исходник...на этом компе не установлен flesh...

antonyrec
26.05.2006, 01:00
Ошибся в onEnterFrame. onMouseMove!

slava444
26.05.2006, 01:12
Ошибся в onEnterFrame. onMouseMove!
Делал так: по событию clip_mc.onMouseMove создавал такую переменную a=clip_mc._xmouse затем сравнивал её с заданными заранее значениями х. Виснет...
А вообще, спасибо. Думаю пока разговор можно закончить до проверки ссылки, присланной Nidl.

antonyrec
26.05.2006, 01:29
FLA'шник, пример линейной анимации зависимой от координат (конечно же не от координат, а от дельты, прошу прощения)

Usnul
26.05.2006, 04:27
А если кадров 70, а _root._xmouse либо _xmouse==800? Куда прикажете переходить? На 800 кадр?
откуда такие умы блин, вам все разжевывать и еще в рот ложить?
ну ок, скажем максимальный х=800, и у тебя скажем 70 кадров. далее:
_root.gotoAndStop(Math.floor(_root._xmouse*70/800));

и потом, я дал _ПРИМЕР_, я показал КАК ПРИВЯЗАТЬ СМЕНУ КАДРОВ К ДВИЖЕНИЮ МЫШИ.

ЗЫ
Ушел за ядом, плохо сердцу.

Usnul
26.05.2006, 04:30
_xmose быстро меняется, поэтому кадры в этом случае будут меняться с огромной скоростью и комп повиснет
еще один "гений".
Ну прикинь, мож кто-то не долбит мышью об стол и не дергает её по сторонам как нескажу кто нескажу что. Фух... откуда вы люди беретесь? и сколько вас там еще осталось? =\

MIX-er
26.05.2006, 09:28
еще один "гений".
Ну прикинь, мож кто-то не долбит мышью об стол и не дергает её по сторонам как нескажу кто нескажу что. Фух... откуда вы люди беретесь? и сколько вас там еще осталось? =\
на самом деле, при желании подумать головой в течении 10 минут он бы сделал то что ему нужно, имея на руках только тот маленький кусочек кода который я дал в первом ответе!!

куда мир катится ни кто, думать не хочет(((

Nirth
26.05.2006, 09:40
Просьба обдумать все, что вам написали в данном топике еще раз, ответ уже дан, возможно в понятии вам поможет документация (
которая есть и на русском (http://flasher.ru/forum/showthread.php?t=72459) ), и FAQ (http://flasher.ru/forum/announcement.php?f=93).
Тема закрыта.