# Keep centered during zoom

**URL:** <https://forum.kirupa.com/t/keep-centered-during-zoom/311855>\
**Category:** Uncategorized\
**Created:** [July 18, 2010, 10:16pm UTC](https://forum.kirupa.com/t/keep-centered-during-zoom/311855 "2010-07-18T22:16:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![rserge](https://avatars.discourse-cdn.com/v4/letter/r/dc4da7/32.png) [@rserge](https://forum.kirupa.com/u/rserge)\
**Post date:** [July 18, 2010, 10:16pm UTC](https://forum.kirupa.com/t/keep-centered-during-zoom/311855/1 "2010-07-18T22:16:53Z")

</div>

I have a button on the stage that centers. I have a zoom slider on the stage too. That code is in red.  
The button moves to x=400, y=200. Once it moves to that point I would like zoom slider to zoom keeping that coordinate in the center of its zooming range. Do I need to add something to zoom code?  
Here is a view…Click on 39, bluish polygon on map. Then move zoom slider in and out. The 39 is not centered as it zooms.  
[http://www.sergemedia.net/ds2/map/lakemap.html](http://www.sergemedia.net/ds2/map/lakemap.html)  
Ideally I would like zoom slider to zoom in and out of current centered position regardless of maps position. So that may be the better question.  
Could this call for onEnterFrame?

```auto

stopAllMCs = function(){
    //map_mc.site39_mc.stop();
    //map_mc.site40_mc.stop();
    // The above works...
    // but for the clips to return to their original state...
    // and not only stop at whatever frame they're at...
    // you might better use...
    map_mc.site39_mc.gotoAndStop(1);
    map_mc.site40_mc.gotoAndStop(1);
};

_root.map_mc.site39_mc.onRelease = function(){
	[COLOR="Red"]//begin slider code
	_root.slide_mc.onLoad=function(){

	scrollMin = _root.range._x+_root.range._width // minimum _x value possiible for scrollbar
	scrollMax = _root.range._x // maximum _x value possiible for scrollbar

	lowestScale = 50 // lowest desired scale of map in %
	highestScale = 200 // highest desired scale of map in %

	_x = scrollMin + (scrollMax - scrollMin)/2 //starting point

	scaleFactor = Math.pow(highestScale/lowestScale,1/(scrollMax-scrollMin)) // variable for SetScale
	function SetScale(){
		// calculates scale and sets it
		_root.scale = _root.map_mc._xscale = _root.map_mc._yscale = lowestScale * Math.pow(scaleFactor,(scrollMax-_x))
	}
	SetScale()
}
_root.slide_mc.onMouseMove=function(){
	if (dragging){
		_x = Math.min(Math.max(_parent._xmouse,scrollMax),scrollMin)
		SetScale()
		updateAfterEvent();
	}
}
//end slider code[/COLOR]
    stopAllMCs();
    map_mc.site39_mc.play();
	
_root.srchMC._visible=false;
	_root.info_mc._visible=true;
	_root.info_mc.gotoAndStop(1);
if (this.pressed) {

_root.map_mc._x = 400 - _root.map_mc.site39_mc._x;
_root.map_mc._y = 200 - _root.map_mc.site39_mc._y;

} else {

_root.map_mc._x = 400 - _root.map_mc.site39_mc._x;
_root.map_mc._y = 200 - _root.map_mc.site39_mc._y;

}
_root.map_mc._xscale=100;
_root.map_mc._yscale=100;

this.pressed = !this.pressed;

};

```
