2009-06-18 2 views
2

안녕하세요, 저는 movieclip에 대한 변환 회전 비율을 사용해야하는 ActionScript 3을 만들고 있습니다. 회전과 스케일링이 제대로 작동하지만 변환을 처리 할 때 변환을 통해 원점 외부로 객체가 이동하게되므로 객체를 회전시키고 싶을 때 객체가 더 이상 예상대로 회전하지 않습니다. 원본을 번역하면서 movieclip을 번역 할 수 있도록 번역을 구현하는 가장 좋은 방법은 무엇입니까 ...액션 스크립트 변환

마지막 사항 .. movieclip.scale과 movieclip.transform.scale 함수의 차이점은 무엇입니까? movieclip.scale을 사용하는 경우 해당 movieclip.scale에서 movieclip.transform.matrix를 가져올 수 있습니까?

답변

2

회전 및 크기 조절을 포함한 모든 행렬 변환은 좌표 시스템의 원점에 대해 적용됩니다. 클립이 살아있다. 다른 점을 중심으로 회전하거나 비율을 조정하려면 클립을 해당 점으로 변환하고 변환 한 다음 다시 번역해야합니다. 즉,이 :

var tx:Number = clip.x; 
var ty:Number = clip.y; 
var m:Matrix = clip.transform.matrix; 
m.translate(-tx, -ty); 
m.rotate(30*Math.PI/180); 
m.translate(tx, ty); 
clip.transform.matrix = m; 

그것은 정확히 규모의 변화와 같은 방식으로 작동합니다 :

clip.rotation = 30; 

이 같은 일을한다.

다른 질문에 대해서는 MovieClip.scaleX/Y와 Matrix.scale의 차이점은 rotate와 완전히 동일합니다. 회전을 어느 방식 으로든 적용 할 수 있지만 내장 된 MC 속성은 클립의 등록 포인트 및 행렬 함수는 원점을 기준으로합니다. 클립의 등록 포인트가 (0,0)에 있으면 동일하게 작동합니다.