Carousel Question

I’ve completed all 3 tutorials listed on gotoAndLearn and I’ve got the following code -

import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transistions.easing.*;
// Variables
// numOfItems : Number of icons in the ring
// radiusX : Width of the ring
// radiusY : Height of the ring
// centerX and centerY : Centers the ring on the stage
// speed : Speed it spins
var numOfItems:Number;
var radiusX:Number = 225;
var radiusY:Number = 75;
var centerX:Number = Stage.width/2;
var centerY:Number = Stage.height/2;
var speed:Number = 0.01;
var perspective:Number = 35;
var home:MovieClip = this;
theText._alpha = 0;
var tooltip:MovieClip = this.attachMovie("tooltip", "tooltip", 10000);
var box:MovieClip = this.attachMovie("box","box",25);
box._x = centerX;
box._y = centerY;
tooltip._alpha = 0;
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
 var nodes = this.firstChild.childNodes;
 numOfItems = nodes.length;
 for (var i = 0; i<numOfItems; i++) {
  var t = home.attachMovie("item", "item"+i, i+1);
  t.angle = i*((Math.PI*2)/numOfItems);
  t.onEnterFrame = mover;
  t.toolText = nodes*.attributes.tooltip;
  t.content = nodes*.attributes.content;
  t.icon.inner.loadMovie(nodes*.attributes.image);
  t.r.inner.loadMovie(nodes*.attributes.image);
  t.icon.onRollOver = over;
  t.icon.onRollOut = out;
  t.icon.onRelease = released;
 }
};
function released() {
 home.tooltip._alpha = 0;
 for(var i=0;i<numOfItems;i++)
 {
  var t:MovieClip = home["item"+i];
  t.xPos = t._x;
  t.yPos = t._y;
  t.theScale = t._xscale;
  delete t.icon.onRollOver;
  delete t.icon.onRollOut;
  delete t.icon.onRelease;
  delete t.onEnterFrame;
  if(t != this._parent)
  {
   var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
   var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
   var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
 
  }
  else
  {
   var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
   var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
   var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,100,1,true);
   var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,175,1,true);
   var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
   theText.text = t.content;
   var s:Object = this;
   tw.onMotionStopped = function()
   {
    s.onRelease = unReleased;
   }
  }
 }
}
function unReleased()
{
 delete this.onRelease;
 var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
 for(var i=0;i<numOfItems;i++)
 {
  var t:MovieClip = home["item"+i];
  if(t != this._parent)
  {
   var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
   var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
   var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
 
  }
  else
  {
   var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
   var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
   var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
   var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
   tw.onMotionStopped = function()
   {
    for(var i=0;i<numOfItems;i++)
    {
     var t:MovieClip = home["item"+i];
     t.icon.onRollOver = Delegate.create(t.icon,over);
     t.icon.onRollOut = Delegate.create(t.icon,out);
     t.icon.onRelease = Delegate.create(t.icon,released);
     t.onEnterFrame = mover;
    }
   }
  }
 }
}
function over() {
 home.tooltip.tipText.text = this._parent.toolText;
 home.tooltip._x = this._parent._x;
 home.tooltip._y = this._parent._y-this._parent._height/2;
 home.tooltip.onEnterFrame = Delegate.create(this, moveTip);
 home.tooltip._alpha = 100;
}
function out() {
 delete home.tooltip.onEnterFrame;
 home.tooltip._alpha = 0;
}
function moveTip() {
 home.tooltip._x = this._parent._x;
 home.tooltip._y = this._parent._y-this._parent._height/2;
}
xml.load("ring.xml");
function mover() {
 this._x = Math.cos(this.angle)*radiusX+centerX;
 this._y = Math.sin(this.angle)*radiusY+centerY;
 var s:Number = (this._y-perspective)/(centerY+radiusY-perspective);
 this._xscale = this._yscale=s*100;
 this.angle += this._parent.speed;
 this.swapDepths(Math.round(this._xscale)+100);
}
this.onMouseMove = function() {
 speed = (this._xmouse-centerX)/8000;
};

So as you know I’ve got my 10 items dynamically loaded out of XML, as well as the MC Box, which is centered on the stage.

My question is, how would I get the carousel to rotate around the centered box. I’m not sure how to adjust the depths to go behind the centered mc. I know

this.swapDepths(Math.round(this._xscale)+100);

is probably where I need to make an adjustment, but I’m lost as far as what to do.

Any help is appreciated! :slight_smile: