You must be logged in to post Login Register
Search 

Rotating Menu AS3

User Post

3:02 am
July 1, 2009


Donkey Kong

Member

posts 8

1

Hi There


I have created the rotating menu using the tutorial file(see tutorial here:http://freewebhowto.com/publ/16-1-0-508) , at the moment the rotation works horizontally so when you scroll the mouse left or right the circle rotates but I am trying to get it to work vertically, can anyone tell me within the script(below also) where this would be possible. What do I need to change I am a  little new to this


any help would be great, many thanks


……………………………………………………………………………………………………………………..

//Save the center coordinates of the stage
var centerX:Number=stage.stageWidth/2;
var centerY:Number=stage.stageHeight/2;
 
//The number of items we will have (feel free to change!)
var NUMBER_OF_ITEMS:uint=15;
 
//Radius of the menu circle (horizontal and vertical)
var radiusX:Number=200;
var radiusY:Number=200;
 
//Angle difference between the items (in radians)
var angleDifference:Number = Math.PI * (360 / NUMBER_OF_ITEMS) / 180;
 
//How fast a single circle moves (we calculate the speed
//according to the mouse position later on…)
var angleSpeed:Number=0;
 
//Scaling speed of a single circle
var scaleSpeed:Number=0.0002;
 
//This vector holds all the items
//(this could also be an array…)
var itemVector:Vector.=new Vector.;
 
//This loop creates the items and positions them
//on the stage
for (var i:uint = 0; i < NUMBER_OF_ITEMS; i++) {
 
 //Create a new menu item
 var item:Item = new Item();
 
 //Get the angle for the item (we space the items evenly)
 var startingAngle:Number=angleDifference*i;
 
 //Set the x and y coordinates
 item.x=centerX+radiusX*Math.cos(startingAngle);
 item.y=centerY+radiusY*Math.sin(startingAngle);
 
 //Save the starting angle of the item.
 //(We have declared the Item class to be dymamic. Therefore,
 //we can create new properties dynamically.)
 item.angle=startingAngle;
 
 //Add an item number to the item's text field
 item.itemText.text=i.toString();
 
 //Allow no mouse children
 item.mouseChildren=false;
 
 //Add the item to the vector
 itemVector.push(item);
 
 //Add the item to the stage
 addChild(item);
}
 
//We use ENTER_FRAME to animate the items
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
 
//This function is called in each frame
function enterFrameHandler(e:Event):void {
 
 //Calculate the angle speed according to mouse position
 angleSpeed = (mouseX – centerX) / 5000;
 
 //Loop through the vector
 for (var i:uint = 0; i < NUMBER_OF_ITEMS; i++) {
 
  //Save the item to a local variable
  var item:Item=itemVector[i];
 
  //Update the angle
  item.angle+=angleSpeed;
 
  //Set the new coordinates
  item.x=centerX+radiusX*Math.cos(item.angle);
  item.y=centerY+radiusY*Math.sin(item.angle);
 
  //Calculate the vertical distance from centerY to the item
  var dy:Number=centerY-item.y;
 
  //Scale the item according to vertical distance
  item.scaleY = (dy / radiusY);
 
  //If we are above centerY, double the y scale
  if (item.y    item.scaleY*=2;
  }
 
  //Set the x scale to be the same as y scale
  item.scaleX=item.scaleY;
 
  //Adjust the alpha according to y scale
  item.alpha=item.scaleY+1.1;
 
 }
}

………………………………………………………………………………………………………….

Topic RSS 
Search