2014-01-07 7 views
0

as3의 동영상 클립에 대한 원형 정렬? 제가 이동에 문제가있어 중심에 대하여 사용자의 무비 클립을 배치하는 방식으로 순환원형 궤도에서 무비 클립을 정렬하는 방법은 무엇입니까?

for(var i:int;i<15;i++) 
{ 
    var obj:mc = new mc(); 
    obj.scaleX = obj.scaleY = 0.5; 
    this.addChild(obj); 

    obj.gotoAndStop(i); 

    obj.centerX = 372.3; 
    obj.centerY = stage.stageHeight/2; 

    //for tilt objects 
    //obj.angle = 200 - i*36; 

    obj.angle = i*24; //for spaceing objects 36 for 10; 
    obj.radius = 300; 
    itemArray.push(obj); 
} 
allign(); 
+0

allign 함수() {위한 \t (VAR I : INT; I >"+ itemArray [i] .angle); \t \t itemArray [i] .rotation = itemArray [i] .angle + 90; // 90 중앙을 향하며 \t \t trace ("rotation :: >>"+ ""+ i, itemArray [i] .rotation)); \t \t} \t } – Striker

+0

이 될 수 있음은 관련 : http://stackoverflow.com/questions/13780252/what-is-an-elegant-way-to-position-8-circles-around-a-point – Cherniv

답변

1

사용 삼각 방정식 영화 클립 정렬.

솔루션이

 //Suppose the point center c={x:0, y:0}, and radius constant r=100; // define pool of data type Vector for your Items(MovieClips) var objectPool:Vector.<Item>=new Vector.<Item>(); //generate pool for your items and add them around the center var numItems:int=4; var angle:Number=360/numItems; //suppose you have a custom class ClipItem as a blue print for your clips var clipItem:ClipItem; var _x:Number, _y:Number; for(var i:int=0; i<numItems) { clipItem=new ClipItem; _x=c.x+Math.sin(angle)*r; _y=c.y+Math.cos(angle)*r; clipItem.x=_x; clipItem.y=_y; angle+=angle; //You might need reference to the clips for other interactions // such as moving them around. putting them in one place is ideal. objectPool.push(clipItem); } 

가고

! 미리 정의 된 중심 및 반지름 상수에 클립을 플롯했습니다.

항목을 이동 하시겠습니까? 작은 증분에서 x와 y를 찾는 동일한 로직을 따르십시오. 각 실행마다 매주 1시 각도를 증가시켜야합니다. TimerEvent.TIMER/Event.ENTER_FRAME 이벤트 리스너에서이를 수행하여 새 위치를 계산하고 클립 ' 위치.

희망이 있습니다. 감사

+0

그러나 'sin'과 'cos'는 각도가 아닌 라디안을 매개 변수로 사용합니다. 따라서 'angle'은 'var angle : Number = (360/numItems) * Math.PI/180'으로 인스턴스화되어야합니다. – stalem

관련 문제