2010-03-03 3 views
0

저는 Flash CS3를 사용하여 간단한 그리기 응용 프로그램을 만듭니다. 사용자가 버튼을 클릭하면 특정 무비 클립을 선택합니다. 스테이지의 다른 곳을 클릭하면 클립이 인스턴스화되어 커서 위치의 스테이지에 추가됩니다. 추가 된 클립을 클릭하고 화면에서 드래그 할 수있는 옵션도 추가했습니다. 그리고이 모든 것이 잘 작동합니다.그래픽 클래스로 그린 Flash 그래픽 배치 문제

문제는 Graphics 클래스를 통해 무대에 개체를 동적으로 그리거나 추가 할 수 있어야한다는 것입니다. 이 방법으로 객체를 추가 할 때마다 스테이지의 x와 y 좌표는 항상 0,0이됩니다. 이것은 이러한 그래픽의 위치를 ​​매우 문제가되게 만듭니다. 동적으로 그려진 그래픽을 위해 특별히 수정 된 위치 지정 기능을 만들었고 "작동"하는 동안 무비 클립 위치 지정보다 응답이 느립니다. 여전히이 함수를 최적화하려고 시도하고 있지만 이상적인 솔루션은 무비 클립과 같은 스테이지 중간에 배치 할 때 그래픽이 0이 아닌 좌표를 갖는 것입니다. 이를 달성하기위한 "해결 방법"이 있습니까?

답변

0

당신은 무비 클립 안에 그려 후 주위에 그 무비 클립을 이동해야합니다. 드로잉은 실제로 객체 자체에 바인딩되어 있으므로 객체를 독립적으로 이동할 수 없습니다. 따라서 컨테이너를 만들고 그 위에 그려 넣은 다음 다른 클립 내부로 컨테이너를 이동하십시오.

1

무비 클립/스프라이트 안에 그래픽 클래스로 그리려면 비트 맵에 그려야하고 무비 클립 대신 비트 맵을 표시해야합니다. 무비 클립은 많은 벡터 정보만을 보유 할 수 있습니다. 무언가를 그릴지라도 Graphics 클래스로 만든 모양은 실제로 그대로 있습니다. Mr Doob의 Stats 클래스와 같은 프레임 속도를 추적하는 경우 MovieClip을 채우기 시작할 때 fps는 으로 추월입니다. 해결 방법은 BitmapData의 draw() 메서드를 사용하고 무비 클립의 내부를 현재 표시된 비트 맵으로 복사하는 것입니다. 비트 맵을 만들 때 BitmapData에 링크해야합니다. 매번 무승부를 호출하면 비트 맵이 업데이트됩니다.

지난 주에 페인팅 앱을 만들었으므로이 문제에 대한 직접적인 경험이 있습니다.