![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: May 2006
Адрес: Земля
Сообщений: 51
|
Здравствуйте!
Делаю карусель,имеется исходник шириной 980px,на котором друг за другом расположены 2 мувика с1 и с2 каждый шириной 1640px,зазор между ними около 5px,имеется кнопка которая выполняет функцию nextslide() — перемотка роликов влево. Все работает нормально,но при заходе мувиков c1 и c2 на второй круг (т.е. при появлении их справа) расстояние между ними то увеличивается то уменьшается.Пробовал привязывать величины к Stage.width не помогло. Подскажите в чем тут дело? function nextslide() { if (c1._x<=-1960) { c1._x = 1960; } if (c2._x<=-1960) { c2._x = 1960; } c1.poX = c1._x; c2.poX = c2._x; c1.tweenX = new mx.transitions.Tween(c1, "_x", mx.transitions.easing.Strong.easeOut, c1.poX, c1.poX-392, 0.7, true); c2.tweenX = new mx.transitions.Tween(c2, "_x", mx.transitions.easing.Strong.easeOut, c2.poX, c2.poX-392, 0.7, true); } |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Вместо =1960 надо +=1960*2.
|
|
|||||
|
Регистрация: May 2006
Адрес: Земля
Сообщений: 51
|
Так конечно стало лучше,но дело в том что при частом нажатии на кнопку перемотки слайда,все равно зазор между мувиками увеличивается с каждым разом все больше и больше,почему не ясно ((
|
|
|||||
|
Ясно же почему - при частом нажатии анимация не успевает проиграться до конца, а значит
будет разным от времени нажатия. [очень неуверенным голосом] Да и монопольная постановка координат плевал на неё Tween, он продолжит ставить координаты какие ему захочется.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: May 2006
Адрес: Земля
Сообщений: 51
|
Вот засада! Как бороться посоветуете?
|
|
|||||
|
Как вариант - хранить финальную позицию где либо, и при клике ставить её, попутно убивая твин.
Код не тестировал, просто покажу принцип: с1.finishX=c1._x; c2.finishX=c2._x; //как никак надо определить function nextslide() { if (c1._x<=-1960) { c1._x = 1960; } if (c2._x<=-1960) { c2._x = 1960; } c1._x=c1.finishX; c2._x=c2.finishX; c1.poX = c1._x; c2.poX = c2._x; c2.finishX=c2.poX-392; c1.finishX=c1.poX-392; c1.tweenX.stop(); //или как там адоубовский твин убивается? c2.tweenX.stop(); c1.tweenX = new mx.transitions.Tween(c1, "_x", mx.transitions.easing.Strong.easeOut, c1.poX, c1.finishX, 0.7, true); c2.tweenX = new mx.transitions.Tween(c2, "_x", mx.transitions.easing.Strong.easeOut, c2.poX, c2.finishX, 0.7, true); }
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|