기하 도형 예제: 표시 객체에 행렬 변환 적용Flash Player 9 이상, Adobe AIR 1.0 이상 DisplayObjectTransformer 샘플 응용 프로그램에서는 다음과 같이 Matrix 클래스를 사용하여 표시 객체를 변환하는 다양한 기능을 보여 줍니다.
이 응용 프로그램에는 다음과 같이 행렬 변환 매개 변수를 조정할 수 있는 인터페이스가 있습니다. 사용자가 [Transform] 버튼을 클릭하면 응용 프로그램에서 적절한 변환을 적용합니다. 원본 표시 객체와 -45° 회전 및 50% 축소 효과가 적용된 표시 객체 이 샘플에 대한 응용 프로그램 파일을 가져오려면 www.adobe.com/go/learn_programmingAS3samples_flash_kr를 참조하십시오. DisplayObjectTransformer 응용 프로그램 파일은 Samples/DisplayObjectTransformer 폴더에 있으며 이 응용 프로그램은 다음과 같은 파일로 구성됩니다.
MatrixTransformer 클래스 정의MatrixTransformer 클래스에는 Matrix 객체의 기하학적 변환을 적용하는 정적 메서드가 포함되어 있습니다. transform() 메서드transform() 메서드에는 다음 항목에 대한 각 매개 변수가 포함되어 있습니다.
반환값은 결과 행렬입니다. transform() 메서드는 클래스의 다음 정적 메서드를 호출합니다.
각 메서드는 변환 효과가 적용된 소스 행렬을 반환합니다. skew() 메서드skew() 메서드는 행렬의 b 및 c 속성을 조정하여 행렬을 기울입니다. 선택적 매개 변수인 unit은 기울이기 각도를 정의하는 데 사용되는 단위를 결정하고, 필요한 경우 이 메서드는 angle 값을 라디안으로 변환합니다. if (unit == "degrees") { angle = Math.PI * 2 * angle / 360; } if (unit == "gradients") { angle = Math.PI * 2 * angle / 100; } 기울이기 변환을 적용하기 위해 skewMatrix라는 Matrix 객체를 만들어 조정합니다. 처음에는 다음과 같이 단위 행렬입니다. var skewMatrix:Matrix = new Matrix(); skewSide 매개 변수는 기울이기 변환을 적용할 변을 결정합니다. 이 매개 변수가 "right"로 설정되면 다음 코드에서는 행렬의 b 속성을 설정합니다. skewMatrix.b = Math.tan(angle); 그렇지 않은 경우에는 다음과 같이 Matrix 객체의 c 속성을 조정하여 아래쪽 변이 기울어집니다. skewMatrix.c = Math.tan(angle); 그런 다음 아래 예제와 같이 두 행렬을 연결하여 기존 행렬에 결과 기울이기가 적용됩니다. sourceMatrix.concat(skewMatrix); return sourceMatrix; scale() 메서드다음 예제에서는 비율 인수가 백분율로 지정되어 있는 경우 scale() 메서드로 비율 인수를 조정하고 행렬 객체의 scale() 메서드를 사용하는 방법을 보여 줍니다. if (percent) { xScale = xScale / 100; yScale = yScale / 100; } sourceMatrix.scale(xScale, yScale); return sourceMatrix; 응용 프로그램에서 MatrixTransformer.transform() 메서드 호출응용 프로그램에는 사용자가 변환 매개 변수를 입력할 수 있는 사용자 인터페이스가 포함되어 있습니다. 그런 다음 표시 객체의 transform 속성의 matrix 속성과 함께 이러한 값을 다음과 같이 Matrix.transform() 메서드에 전달합니다. tempMatrix = MatrixTransformer.transform(tempMatrix, xScaleSlider.value, yScaleSlider.value, dxSlider.value, dySlider.value, rotationSlider.value, skewSlider.value, skewSide ); 그런 다음 응용 프로그램이 표시 객체의 transform 속성의 matrix 속성에 반환값을 적용하여 변환을 트리거합니다. img.content.transform.matrix = tempMatrix; |
|