Jump to content
Search Community

TransformAroundPoint - Keeping track of scale [SOLVED]

Dizquard test
Moderator Tag

Recommended Posts

Hi,

 

Im using the transformAroundPoint plugin with great succes! The only issue I have now is how to keep track of the scaled objects scaleX/scaleY values!

 

I want to be able to toggle the scale/zoom effect on/off depending on how close or far the objects has been scaled. My code looks like this:

public function onMouseWheel( event : MouseEvent ) : void
	{			
		// to the current position of the mouse
		var originX : Number = stage.mouseX
		var originY : Number = stage.mouseY

		// zoom
		if( !event.altKey )
		{
			//_frameholder is the object container to be scaled
			//in my previous attempt to scale (without the tween plugin) i had no issues with using the scale property,
			//but now in my traces the scale value is different and not reliable (meaning that it varies too much(??)).
			if( event.delta > 0 && _frameHolder.scaleX < 2)
			{	
				if (!stage.hasEventListener(Event.ENTER_FRAME))
				{
					//the enterframe enables a mousepanning effect so the user can move around "the map" by moving the mouse
					stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
				}else
				{
					trace("enterframe in progress");
				}
				// zoom in
				var scaleInt:Number = 10 / 9;
				TweenLite.to(_frameHolder, .5, { transformAroundPoint: { point:new Point(originX, originY), scale:String(scaleInt) }} );
			}
			else if ( event.delta < 0 && _frameHolder.scaleX > 1)
			{
				// zoom out					
				var scaleInt:Number = 9 / 10;
				TweenLite.to(_frameHolder, .5, { transformAroundPoint: { point:new Point(originX, originY), scale:String( -scaleInt) }} );
			}
			else if ( _frameHolder.scaleX <= 1 )
			{
				if (stage.hasEventListener(Event.ENTER_FRAME))
				{
					stage.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
				} else
				{
					trace("enterframe already gone");
				}
			}
		}			
	}

 

An example can be seen here http://www.steffensonderby.dk/messe/messe.html Scroll up and down with mouse to zoom or use arrow key up/down.

 

Any reply appreciated.

 

Cheers

Link to comment
Share on other sites

figured it out.

 

I had different values for scaling/zooming in/out

 

it was:

//in
var scaleInt:Number = 10 / 9;
//out
var scaleInt:Number = 9  / 10;

 

and should be:

//in
var scaleInt:Number = 10 / 9;
//out
var scaleInt:Number = 10  / 9;

 

And now it works like a charm :) Thanks again for this plugin!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...