Просмотр полной версии : Как перемещением курсора управлять сменой кадров?
slava444
25.05.2006, 23:27
Есть символ clip_mc, который вызывается из библиотеки на экран. Он содержит мультфильм с покадровой анимацией. Кто-нибудь знает как можно организовать управление сменой кадров движением курсора.?Например, если зажать кнопку мыши и перемещать курсор влево, то кадры бы двигались назад, вправо - вперёд. Пробовал присвоить переменной значение clip_mc._xmouse и сравнивать эту переменную с определёнными значениями для x-вого положения курсора, но ничего не получается, видимо значение переменной слишком часто меняется. Help, pls!
посчитай проценты от положения... те 0-100 сто кадров предположим в мувике вот в них и переходи... и это ты хоть положение крысы округляешь???
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 это событие мувика, когда я вызываю мувик из библиотеки, то не получается прикрепить к нему код
А зачем именно к нему?
_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 с чем нужно работать.
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 кадр?
Настоятельно рекомендую смотреть мой пост № 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'шник, пример линейной анимации зависимой от координат (конечно же не от координат, а от дельты, прошу прощения)
А если кадров 70, а _root._xmouse либо _xmouse==800? Куда прикажете переходить? На 800 кадр?
откуда такие умы блин, вам все разжевывать и еще в рот ложить?
ну ок, скажем максимальный х=800, и у тебя скажем 70 кадров. далее:
_root.gotoAndStop(Math.floor(_root._xmouse*70/800));
и потом, я дал _ПРИМЕР_, я показал КАК ПРИВЯЗАТЬ СМЕНУ КАДРОВ К ДВИЖЕНИЮ МЫШИ.
ЗЫ
Ушел за ядом, плохо сердцу.
_xmose быстро меняется, поэтому кадры в этом случае будут меняться с огромной скоростью и комп повиснет
еще один "гений".
Ну прикинь, мож кто-то не долбит мышью об стол и не дергает её по сторонам как нескажу кто нескажу что. Фух... откуда вы люди беретесь? и сколько вас там еще осталось? =\
еще один "гений".
Ну прикинь, мож кто-то не долбит мышью об стол и не дергает её по сторонам как нескажу кто нескажу что. Фух... откуда вы люди беретесь? и сколько вас там еще осталось? =\
на самом деле, при желании подумать головой в течении 10 минут он бы сделал то что ему нужно, имея на руках только тот маленький кусочек кода который я дал в первом ответе!!
куда мир катится ни кто, думать не хочет(((
Просьба обдумать все, что вам написали в данном топике еще раз, ответ уже дан, возможно в понятии вам поможет документация (
которая есть и на русском (http://flasher.ru/forum/showthread.php?t=72459) ), и FAQ (http://flasher.ru/forum/announcement.php?f=93).
Тема закрыта.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.