Уравнение масштабирования для карты, так что при масштабировании пользователь остается в центре - Flash - PullRequest
0 голосов
/ 04 августа 2009

ингредиенты:

- one vector map
- one masked viewing area
- one slider taking the map from 100% to 600%
- map is draggable
- map movieclip center is the top left of the movieclip

Допустим, вы увеличиваете масштаб, перетаскиваете карту так, чтобы нижний правый квадрант находился в области просмотра, а затем уменьшаете масштаб.

Проблема: Поскольку «центр» карты - это верхний левый угол фрагмента ролика, масштабирование происходит с этой точки. Как я могу сохранить центральную точку (при масштабировании) как точку, которая центрирована в области просмотра?

1 Ответ

0 голосов
/ 01 сентября 2009

Сразу после масштабирования карты вы можете изменить положение карты, чтобы ее центр совпадал с центром масок.

//assuming map is the name of your map clip, and mapMask the name of the mask
map.x = mapMask.x + mapMask.width * .5 - map.width * .5;
map.y = mapMask.y + mapMask.height * .5 - map.height * .5;

Это должно работать, поскольку маска всегда будет больше, чем маска.

Гудлак!

...