ling
package{
import flash.display.MovieClip;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.geom.Point;
import flash.utils.Timer;
import flash.net.URLRequest;
public class RotateMenu extends MovieClip{
var floorObj: Sprite;
var obj: Array;
var maskObj: Array;
var clickedNum: int = -1;
var angle: Number = 0;
var timer:Timer;
const hankei: Number = 150;
function RotateMenu(){
obj = new Array();
maskObj = new Array();
for(var i: Number = 0; i < 12; ++i){
obj.push(new Sprite());
var num: Number = obj.length-1;
this.addChild(obj[num]);
obj[num].buttonMode = true;
obj[num].useHandCursor = true;
obj[num].name = String(num);
obj[num].x = this.stage.stageWidth/2;
obj[num].y = this.stage.stageHeight/2;
obj[num].scaleX = 0;
obj[num].scaleY = 0;
obj[num].graphics.clear();
obj[num].graphics.lineStyle(0, 0, 0);
obj[num].graphics.beginFill(0xFF0000);
obj[num].graphics.drawCircle(0, 0, 100);
obj[num].graphics.endFill();
obj[num].alpha = 100;
obj[num].addEventListener(MouseEvent.CLICK, onClick);
}
floorObj = new Sprite();
floorObj.graphics.clear();
floorObj.graphics.lineStyle(0, 0, 0);
floorObj.graphics.beginFill(0xFF0000);
floorObj.graphics.drawRect(0, 0, this.stage.stageWidth, this.stage.stageHeight);
floorObj.graphics.endFill();
floorObj.alpha = 0;
floorObj.addEventListener(MouseEvent.CLICK, onFloorClick);
this.addChildAt(floorObj, 0);
timer = new Timer(33);
timer.addEventListener(TimerEvent.TIMER, loop);
timer.start();
}
function onImageLoaded(event:Event):void{
event.target.loader.x = -event.target.loader.width/2;
event.target.loader.y = -event.target.loader.height/2;
var num: int = int(event.target.loader.parent.name);
maskObj[num].graphics.clear();
maskObj[num].graphics.lineStyle(0, 0, 0);
maskObj[num].graphics.beginFill(0xFF0000);
maskObj[num].graphics.drawCircle(0, 0, Math.min(event.target.loader.width/2, event.target.loader.height/2));
maskObj[num].graphics.endFill();
maskObj[num].alpha = 100;
}
function onClick(event:MouseEvent):void{
if(clickedNum == int(event.target.name)){
clickedNum = -1;
}else{
clickedNum = int(event.target.name);
}
}
function onFloorClick(event:MouseEvent):void{
clickedNum = -1;
}
function loop(event:TimerEvent):void{
angle += 0.01;
for(var i:Number = 0; i < obj.length; i++){
var ichi: Point = new Point();
var ookisa: Number;
if(clickedNum == i){
ichi.x = this.stage.stageWidth/2;
ichi.y = this.stage.stageHeight/2;
ookisa = 0.8;
}else{
ichi.x = this.stage.stageWidth/2 + hankei*Math.cos(angle + i/obj.length*Math.PI*2);
ichi.y = this.stage.stageHeight/2 + hankei*Math.sin(angle + i/obj.length*Math.PI*2);
ookisa = 0.3;
}
obj[i].x += (ichi.x - obj[i].x)/5;
obj[i].y += (ichi.y - obj[i].y)/5;
obj[i].scaleX += (ookisa - obj[i].scaleX)/5;
obj[i].scaleY += (ookisa - obj[i].scaleY)/5;
}
}
}
}