![]() |
масштабирование от курсора мыши
Здравствуйте,
у меня никак не приходит в голову сделать такую формулу: делаю увеличение от точки мыши но после увеличения эта точка уходит (в данном случае направо уходит), т.е. не остается под курсором мыши, может кто поможет? буду очень благодарен заранее спасибо... Код AS3:
|
не очень понятно чего добиваешься) У меня была задачка когда надо было скролом увеличивать карту так, чтобы центр увеличения находился в точке где мышка находится. Я двигал центр контейнера в котором лежала карта под мышку и масштабировал содержимое контейнера по необходимости. Чтобы не зависеть от масштаба расчет производил от глобальных координат, а не от текущих точек.
|
да, у меня так же, скролом увеличиваешь карту, центр увеличения где мышка находиться, вот только от каких глобальных координат? можно подробнее?
|
Код AS3:
(ab - ac) = a(b-c) таким образом можно Код AS3:
Код AS3:
Код AS3:
|
както не получается через displayObject.localToGlobal() провести провел, но все равно здесь надо делать переасчет
|
Цитата:
Сначала двигай карту, потом ее изменяй в масштабе. |
Вложений: 1
как же я долго с этим мучился....
масштабировал, потом высчитывал смещение, в итоге все равно ролик уезжал куда-то не туда. помог такой костыль: 1) в масштабируемый ролик добавил невидимый объект, который всегда находился в том месте, относительно которого надо масштабировать. в моем случае это был центр "окна", через которое просматривался оригинальный объек. 2) были кнопки сролла и зума. при сроллинге этот невидимый "центр" двигался в масштабируемом ролике так, чтобы всегда находиться центре окна. 3) в функции масштабирования делалось примерно следующее: Код AS3:
хотя сдается мне, что все это прекрасно реализовывается через TransformMatrix... |
разбираем код и смотрим почему уходит влево.
Код AS3:
Поменяйте операции местами, сначала делайте смещение а потом уже масштабируйте и все должно быть ок. |
Да! Спасибо Вам! заработало, немного изменил (т.е. упростил)
Код: (вот чистый код) Код AS3:
|
координаты мыши и мне помогли, только так и не понял, какая формула при изменении размера через ползунок +/-? Надо искать координату центра контента(карты) при текущем положении
|
| Часовой пояс GMT +4, время: 18:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.