![]() |
zoom объекта относительно курсора мышки
Привет бойцы! Читал топики про карты и навигацию, но у меня несколько другая задача. Пишу систему навигации над графическим объектом. Вообщем уже 3-е сутки пошил, как я бъюсь над простой задачей:
1. Есть объект (movieClip) 2. Есть набор уже написанных мною функций, которые работают тут (кнопки фтопку, они для дебагинга) - перемещение объекта по XY в зависимости положении мышки +коэф ускорения. - Key.isDown(пробел) стандартная таскалка драг\дроп (как в фотошопе) - мышкой выделяем область экрана, после чего центр выделения сместится в центр экрана (во фьючере выделенныя область должна увеличится в рамки экрана, опять же как в фотошопе, но для этого, мать его, мне и нужна zoom функция) 3. Хочу сделать следующее: делать zoom относительно координат мышки, т.е. вот так: http://pavel.gorlov.name/@/nav/bug.gif Народ, я умом всё понимаю, ну Нихрена не могу сделать.... Если у кого то из Вас была такая же проблема, поделитесь опытом плиз ;) Я не сторонник искать\рыть чужие скрипты, тем более мне интересно самому понять до конца в чем моя ошибка. Думаю общими усилиями у нас получиться найти нужное русло. (Русло не нашла целая кафедра информатики в моём ВУЗе :away: ) Я пытаюсь это делать так, хрень полная и не работает Код:
|
может я что то не понял.
Текущий зум вычисляется как отношение площади карты к площади выделения. Если площадь карты равна 100, а площадь выделения 50, то zoom=100/50=2. Отлично, теперь передвигаем карту так, что бы центр выделения оказался в центре вьюпорта а после смещения увеличиваем карту на величину зума. По моему все. |
Код:
// f - навигируему объект |
silin спосибо тебе! То, что нужно! Всё гениальное просто, как 9 строк кода. ;-)
|
в данном коде, при уменьшении, картинка переворачивается на 180 при достижении минимального размера. Каким образом этого можно избежать?
|
Очевидно поставить ограничения на масштаб.
|
Выставляю масштаб, но все равно, картинка переворачивается и начинает увеличиваться
Код AS1/AS2:
|
Код AS1/AS2:
|
Спасибо!
|
| Часовой пояс GMT +4, время: 11:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.