//===Math 함수들을 이용한 무비클립 회전시키기============
var cx:Number=100; //회전 중심 x, y 좌표
var cy:Number=100;
var ang:Number=0; //회전각도
var radius:Number=50; //회전 반지름
var tArr=[]; //회전 좌표 기록용 배열
var g:Graphics; //선그리기 위한 graphics 객체
var g2:Graphics;
function initMathRotation(){
var canvas:Sprite = new Sprite(); //선 그릴 투명 Sprite
addChild(canvas);
g = canvas.graphics;
g.lineStyle(0, 0x999999);
g.moveTo(mc.x, mc.y);
mc.addEventListener(Event.ENTER_FRAME, rotation1);
}
function rotation1(e:Event){
var t=e.target;
t.x = cx + Math.sin(toRad(ang))*radius;
t.y = cy + Math.cos(toRad(ang))*radius;
ang += 10;
if(ang<=360){
recordTrace(); //0~360 사이 x,y좌표 기록하기 함수 호출
g.lineTo(t.x, t.y); //선 그리기.
}
}
function recordTrace(){ //회전좌표 기록용
var tr:String;
if(ang<360){
tr="["+Math.round(mc.x)+",
"+Math.round(mc.y)+"]"
tArr.push(tr);
}else trace(tArr);
}
function toRad(inputAng){ //각도를 라디안으로 변경
return inputAng = inputAng*(Math.PI/180);
}
initMathRotation();
initArrayRotation();
//==이동좌표를 사전 저장한 배열 활용해 무비클립 회전시키기=========
var rotArr:Array=[
[300, 150],[309, 149],[317, 147],[325, 143],[332, 138],
[338, 132],[343, 125],[347, 117],[349, 109],[350, 100],
[349, 91],[347, 83],[343, 75],[338, 68],[332, 62],
[325, 57],[317, 53],[309, 51],[300, 50],[291, 51],
[283, 53],[275, 57],[268, 62],[262, 68],[257, 75],
[253, 83],[251, 91],[250, 100],[251, 109],[253, 117],
[257, 125],[262, 132],[268, 138],[275, 143],[283, 147],[291,
149]
];
function initArrayRotation(){
mc2.n = 0;
var canvas2:Sprite=new Sprite(); //선 그릴
투명 Sprite
addChild(canvas2);
g2 = canvas2.graphics;
g2.lineStyle(0, 0x999999);
g2.moveTo(mc2.x, mc2.y);
mc2.addEventListener(Event.ENTER_FRAME,
rotation2);
}
function rotation2(e:Event){
var t2=e.target;
t2.x=rotArr[mc2.n][0];
t2.y=rotArr[mc2.n][1];
mc2.n++;
g2.lineTo(t2.x, t2.y);//선 그리기.
if(mc2.n >= rotArr.length){
//배열을 모두 돌았으면
mc2.n = 0; //다시
처음부터 재시작
g2.clear(); //화면 지우고
g2.lineStyle(0, 0x999999); //새로 그리기 시작
g2.moveTo(t2.x,t2.y);
}
}
|