![]() |
Обратный зум
Привет! Не буду напрягать подробностями и просьбой писать большие скрипты. Нужен лишь толчок...
Сделал зум(картинка плавно увеличивается и отцентровывается в том месте, куда щелкнули). Прекрасный обратный зум можно сделать, заменив в некоторых местах знаки(+ на -). Казалось бы все отлично, но есть один большой нюанс... Картинку в полном размере таскать по экрану не разрешается, увеличенную - можно и нужно(для просмотра). Но при щелчке её еще нужно плавно возвращать в оригинальный размер и на то самое место, где она стояла. Вот, собственно, в этом и проблема. Как всегда плавно возвращать клип с картинкой, туда где он стоял, не зависимо от его текущих координат? |
Есть такая идея:
Tween class позволяет делать хорошие анимационные эфекты. Просто сделай движение по 4 свойствам твоей карты: _x, _y, _width и _height. Да, может быть карта будет зумироваться не идеально (хотя по моим представлениям должно быть шикарно), но в итоге она встанет на нужное место с нужной высотой и шириной. |
Вариант, но я с ним как-то особо не работал. Пока разберусь...
Вот какого типа мне нужно сделать штуку - http://www.zinio.com/express3?issue=...o=int&prev=sub (там кликаешь на обложку - её можно крутить-вертеть и она ставится обратно) Может еще есть варианты? Чую, можно по-простому, меняя _x и _y клипа относительно какой-то точкой, по формуле.. Но не представляю как ) |
Что-то я не понял, в чем проблема? Если формулы верны, картинка вернется к своему размеру (_xscale=_yscale=0) и в запомненные (если надо) координаты. Составьте правильно формулу - используйте не просто пошаговый зум от состояния на столько-то, а от состояния к цели.
|
Так я и не говорю, что знаю правильную формулу.. Есть догадки, во всяком случае, что-то приближенное к истине. Вот примерный кусок кода:
Код:
// Находим расстояние между новым положением картинки и дефолтным(28, 80 пох и по у, для полного, вмещаемого в окно размера)Беда одна - если в эту конструкцию включить изменения _x|_yscale, то картинка начинает себя странно вести.. При уменьшении съезжать в стороны и т.п. Да, и пример віше тоже не всегда себя корректно ведёт. Может есть лучший вариант?:umnik2: |
Вообщем, проблему решил. Вышло не очень аккуратно, но зум очень быстрый, поэтому погрешностей сильно не видно. Зато без глюков, как с шагом. Смысл вот в чём(может кому еще интересно будет).
Перенесенный на новое место(точка B) клип можно вернуть к исходной точке(A), создав массив с координатами следования. Эти данные - число, полученное в результате деления суммы A и B на количество нужных нам шагов(чем больше, тем плавнее движется мувик). Единственное опять-таки возникающее НО - это изменение scale, которое клонит мувик в стороны в зависимости от точки привязки. Но это можно отрегулировать, каждый раз прибавляя/отнимая к точкам следования мувика какое-то число. |
Нагородил ты.... много лишнего
|
Цитата:
|
а) возвращаем к нужной точке
б) меняем скейл не обязательно одновременно. если точка привязки стоит "от балды", исправьте и не мучайтесь. для программно изменяемых объектов левый верхний угол изображения ставится "в ноль", если конечно не предполагается специфическое вращение. |
Wolsh, ну это все понятно. К тому же, scale должен обязательно меняться вместе с координатами. Зум, конечно, шустрый, но ведь не настолько, чтобы ничего не разглядеть...
Беда еще и в том, что мувик програмносозданный, а как у таких мувиков менять точку трансформации - из постов на форуме, я так толком и не понял. |
| Часовой пояс GMT +4, время: 08:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.