2014-02-13 8 views
0

이미지 크기가 780x585입니다. scaleMode = ScaleMode.LETTERBOX로이 이미지의 크기를 1246.93x935.19로 변경하고 있습니다.크기 조정 된 이미지의 Flex Mobile GetPixel 기능은 마치 이미지가 원래 크기 인 것처럼 픽셀을 얻습니다.

사용자가 그래픽을 클릭하여 그림으로 끌면 그래픽이 떨어지는 픽셀 위치를 얻게됩니다.

마우스 업 이벤트를 수신하고 마우스 클릭을 놓을 때 이벤트에서 오는 (x, y) 좌표로 getPixel을 호출하여이를 수행합니다.

이상한 점은 픽셀의 값을 얻지 만 실제 값은 얻지 못하는 것입니다. 대신 크기를 조정하지 않고 이미지 크기에 맞는 값을 얻습니다.

왜 이런 일이 발생했는지 실마리가 있습니까?

감사 데이브

플렉스 물체의 시각적 외관을 변경하는 transormation 매트릭스를 적용한다

답변

1

(이동, 회전 또는 여기로 연신과 같은) 구성 요소에 대한 시각적 변경을 적용.

image.width * = 2를 수행하여 이미지를 이동한다고 가정 해 보겠습니다. 실제 이미지 너비가 수정됩니다. image.matrix.scale (2, 1); (이것은 의사 코드 임) 시각적 모양이 수정되어 크기 조정을 볼 수 있지만 실제 너비는 동일하게 유지됩니다.

레터 박스 크기 조정 적용은 매트릭스 변환을 사용하므로 이미지가 더 커 보이더라도 그 위치와 크기는 여전히 동일합니다. 그것이 이전과 같은 입장을 취하는 이유입니다.

문제를 해결하려면 이미지 현재 배율로 얻은 좌표 (event.localX 또는 기타 항목)를 곱하면됩니다. 최종 크기를 이미 알고 있다면 다음과 같이하면됩니다. newLocalX = event.localX * (resizedImage.width/originalImage.width);

여기에 어떤 정보를 알고 싶다면 Matrixes의 작동 방식을 알고 싶습니다.