1

스프라이트에는 3 개의 정사각형 (50 픽셀 x 50 픽셀)이 있습니다. 각각의 피벗은 0, 0입니다. 첫 번째 사각형 X, Y : 0, 0 두 번째 사각형 X, Y : 50 세 번째 사각형 X, Y : 100, 0 -선. 나는 모든 사각형이 같은 지점을 중심으로 모든 지점이 아닌 개별 지점을 중심으로 회전하도록 소실점을 설정하는 방법을 알아낼 수 없습니다. 도움을 주시면 감사하겠습니다!RotateX는 중심을 정사각형으로합니다.

+0

내 생각에 같은 그래픽 개체를 사용하고 수동으로 그려야합니다.하지만 말하기는 어렵습니다. 현재 코드를 제공 할 수 있습니까? – shaunhusain

+0

@Fygo 오버플로 스택이 새로 추가되었습니다. 답변 중 하나가 적합하다면 옆에있는 체크 표시를 클릭하여 정답으로 표시하면 평가가 향상됩니다. – Neil

답변

1

어린이 영화 클립의 회전은 새로운 위치로 회전하여 변환 할 수 있습니다. 하위 동영상 클립의 피벗이 다음 위치의 등록 포인트

과 일치해야합니다. 홀더는 스프라이트이며 내용은 정사각형입니다. (정사각형에 등록 포인트와 일치하는 피벗이 있어야합니다.)

PS : 콘텐츠의 너비와 높이가 홀더보다 커야합니다. 여기에있는 홀더는 일종의 커다란 컨테이너라고합니다 (말하자면).

var holder_Mc:MovieClip = holder_Mc 
var content_Mc:MovieClip = holder_Mc.content_Mc ; 
var rotation_val_num:Number = 50// in degrees 

     var bnd = holder_Mc.getBounds(MovieClip(holder_Mc.parent)) ; 
     var cw:Number = bnd.width ; 
     var ch:Number = bnd.height; 

     var cx:Number = bnd.x ; 
     var cy:Number = bnd.y ; 
      content_Mc.rotation = rotation_val_num ; 


      var bnd2 = holder_Mc.getBounds(MovieClip(holder_Mc.parent)) ; 
      var cw2 = bnd2.width ; 
      var ch2 = bnd2.height; 

      var cx2 = bnd2.x ; 
      var cy2 = bnd2.y ; 



      var dx = Math.abs(holder_Mc.x - cx2) ; 
      var dy = Math.abs(holder_Mc.y - cy2) ; 

      holder_Mc.x = cx + cw/2 + dx - cw2/2 
      holder_Mc.y = cy + ch/2 + dy - ch2/2 
1

기본적으로 회전하는 동안 상자를 이동해야 효과를 얻을 수 있습니다. 상자의 너비/높이와 피벗 포인트 위치도 알고 있기 때문에 계산이 그리 어렵지 않습니다.

그러나 직접 계산하는 이유는 무엇입니까? TweenLite을 사용하면 변환을 처리하는 TransformAroundCenterPlugin을 사용할 수 있습니다. 나는 그것을 사용하는 것이 좋습니다 것입니다. 트위닝하지 않으려면 tween-duration (두 번째 매개 변수)을 0으로 설정하십시오.

// Activate plugin (should be called once) 
TweenPlugin.activate([TransformAroundPointPlugin]); 

// Transform your boxes around it's center, does not use the pivot point. 
TweenLite.to(this.mcBox1, 1, new TweenLiteVars().transformAroundCenter({rotationX: 50})); 
TweenLite.to(this.mcBox2, 1, new TweenLiteVars().transformAroundCenter({rotationX: 190})); 
TweenLite.to(this.mcBox3, 0, new TweenLiteVars().transformAroundCenter({rotationX: 5}));   
+1

약간 지연되었지만 고마워, TweenLite/Max가 이것을 가지고 있다는 것을 몰랐다! – Fygo

관련 문제