PDA

Просмотр полной версии : Срочно в номер !


Poll_Harvey
21.11.2001, 19:44
Есть мув. К нему код. Почему так работает :

onClipEvent (enterFrame) {
aa = _ymouse;
if(aa<0){
aa *=-1;
}
_xscale = aa;
//_yscale = aa;
}

...а так нет(!!!) :

onClipEvent (enterFrame) {
aa = _ymouse;
if(aa<0){
aa *=-1;
}
//_xscale = aa;
_yscale = aa;
}

По идее в первом случае должно масштабироваться по х, а во втором по у. Но во втором случае происходят странные метаморфозы :( Мув прыгает, масштабируется рывками.... Где грабли то?

УильямБрэдберри
21.11.2001, 20:40
onClipEvent (enterFrame) {
aa = _root._ymouse;
if(aa<0){
aa *=-1;
}
//_xscale = aa;
_yscale = aa;
}

John Connor
21.11.2001, 20:51
лаконично! =)

APM
21.11.2001, 21:01
Грабли скорее всего там где ты их положил.
У тебя за кадром где ты правишь код есть еще один кейфрейм?
Если есть - то см. Грабли 1
http://www.flasher.ru/forum/showthread.php?s=&threadid=21362

Poll_Harvey
21.11.2001, 21:08
Уважаемый Уилл.
Дело в том , что _root использовать нельзя. Отслеживаются координаты именно внутри мувика и _ymouse растёт от его середины . То есть как бы при приближении маркера к мувику снизу он(мувик) увеличивается(в данном случае уменьшается), но если вести маркер дальше вверх мув опять уменьшается...
Короче говоря я собираюсь применить это в меню. Или в этом варианте код надо строить иначе??

З.Ы. Ключевой кадр везде один.

APM
21.11.2001, 21:28
Попробовал с одним кадром действительно ты прав - скачет.
Но так и должно быть, ведь после того как изменяешь _yscale,
относительная координата _ymouse тоже изменится и в следующем
шаге придется снова менять _yscale. У.Б. тоже прав, чтобы этого
не было нужно брать стабильную координату например _root._ymouse.
Решение 1 - отымать от _root._ymouse фиксированное число для данной конкретной менюшки
Решение 2 - использовать дубликат своего мувика, но невидимый,
для определения координаты мышки.
Можно и еще как-то, лишь бы после изменения _yscale используемый xxx._ymouse не менялся

Poll_Harvey
21.11.2001, 21:34
Во-во. Только АРМ вот ведь какая штука: ты попробуй потрейси

_yscale = _ymouse;

При этом не двигай мышой. Результат - 2 разные (!!!) координаты вместо одной постоянной(ведь мыша зафИксина).
Какие уж тут пересчёты относительных координат _ymouse !??

APM
21.11.2001, 21:47
Событие enterFrame вызывается с частотой fps и поэтому у тебя переодически происходит изменение и _yscale и _ymouse
вот трейс
step: 1 _yscale: 100 _ymouse: -205.95
step: 2 _yscale: 205.95 _ymouse: -51.5
step: 3 _yscale: 51.5 _ymouse: -205.95
step: 4 _yscale: 205.95 _ymouse: -52.55
step: 5 _yscale: 52.55 _ymouse: -205.95
step: 6 _yscale: 205.95 _ymouse: -52.55
step: 7 _yscale: 52.55 _ymouse: -205.95
step: 8 _yscale: 205.95 _ymouse: -52.55
step: 9 _yscale: 52.55 _ymouse: -205.95
step: 10 _yscale: 205.95 _ymouse: -52.55
step: 11 _yscale: 52.55 _ymouse: -205.95
step: 12 _yscale: 205.95 _ymouse: -52.55
step: 13 _yscale: 52.55 _ymouse: -205.95
step: 14 _yscale: 205.95 _ymouse: -52.55
step: 15 _yscale: 52.55 _ymouse: -205.95
как видишь очень четкая картинка - автоколебаниями это называется

Poll_Harvey
21.11.2001, 21:51
Автограблями это называется :)))

Ладно, будем обманывать...

Спасибо всем ! ВОПРОС СНИМАЮ.