# Spin inertia on spinning 3D panes?

**URL:** <https://forum.kirupa.com/t/spin-inertia-on-spinning-3d-panes/181753>\
**Category:** Uncategorized\
**Created:** [March 12, 2006, 7:41pm UTC](https://forum.kirupa.com/t/spin-inertia-on-spinning-3d-panes/181753 "2006-03-12T19:41:01Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![mindframe](https://avatars.discourse-cdn.com/v4/letter/m/848f3c/32.png) [@mindframe](https://forum.kirupa.com/u/mindframe)\
**Post date:** [March 12, 2006, 7:41pm UTC](https://forum.kirupa.com/t/spin-inertia-on-spinning-3d-panes/181753/1 "2006-03-12T19:41:01Z")

</div>

There is a tutorial here on “Spinning Panes”  
[http://www.kirupa.com/developer/actionscript/camera\_panning.htm](http://www.kirupa.com/developer/actionscript/camera_panning.htm)

The objects spin around y-axis.  
The spin of the objects is based on mouse position, the more you move your mouse to one side the faster it spins. ( spin -= this.\_xmouse/1000; ).

My question is how do i get the objects to stop spinning when I move the mouse outside a certain region, like ( this.\_xmouse \> 200 ).  
But I don’t want the objects to just stop spinning, I want them to stop spinning gradually, as if they had inertia.

I don’t know how to do this, I was thinking ( setInterval ) or maybe one of the ( mx.transitions ) but I have no idea how to implement any of this.  
Thank you for your help.

Here is the full code from the tutorial :

this.createEmptyMovieClip(“theScene”, 1);  
theScene.\_x = 150;  
theScene.\_y = 100;

objectsInScene = new Array();

focalLength = 500;  
spin = 0;

displayPane = function(){  
var angle = this.angle + spin;  
var x = Math.cos(angle)\*this.radius;  
var z = Math.sin(angle)\*this.radius;  
var y = this.y;

```
var scaleRatio = focalLength/(focalLength + z);
this._x = x * scaleRatio;
this._y = y * scaleRatio;
this._xscale = this._yscale = 100 * scaleRatio;

this._xscale *= Math.sin(angle);
this.swapDepths(Math.round(-z));

```

};

angleStep = 2\*Math.PI/8;  
for (i=0; i \< 8; i++){  
attachedObj = theScene.attachMovie(“pane”, “pane”+i, i);  
attachedObj.angle = angleStep \* i;  
attachedObj.radius = 100;  
attachedObj.x = Math.cos(attachedObj.angle) \* attachedObj.radius;  
attachedObj.z = Math.sin(attachedObj.angle) \* attachedObj.radius;  
attachedObj.y = 40;  
attachedObj.display = displayPane;  
objectsInScene.push(attachedObj);  
}

panCamera = function(){  
spin -= this.\_xmouse/1000;  
for (var i=0; i \< objectsInScene.length; i++){  
objectsInScene\*.display();  
}  
};  
theScene.onEnterFrame = panCamera;
