2010-02-01 5 views
0

사용자가 이미지 크기를 조절할 수있는 응용 프로그램을 작성 중입니다. 아래의 방법으로 문제가 발생한다는 것은 이전 스케일 포인트에서 스케일링이 항상 발생한다는 것입니다.BitmapData로 크기 조절

예를 들어, 이미지의 크기를 조절 한 다음 이미지의 크기를 조절하면됩니다. 내가 원하는 지점으로 되돌리려면 두 번 축소해야합니다.

이 문제에 대한 도움을 주시면 대단히 감사하겠습니다.

잘 보이는
private var sourceBMD:BitmapData = testImage.source as BitmapData 
private var matrixScaleX:Number = 1; 
private var matrixScaleY:Number = 1; 
private var baseScaleX:Number = .05; 
private var baseScaleY:Number = .05; 

    private function sourceZoom(zoomType:Boolean = false):void{ 
     var matrix:Matrix = new Matrix(); 
     var matriximage:BitmapData; 


     if(zoomType){ 
      matrixScaleX = matrixScaleX + baseScaleX; 
      matrixScaleY = matrixScaleY + baseScaleY; 
      matrix.a = matrixScaleX; 
      matrix.d = matrixScaleY 
     }else{ 
      matrixScaleX = matrixScaleX - baseScaleX; 
      matrixScaleY = matrixScaleY - baseScaleY; 
      matrix.a = matrixScaleX; 
      matrix.d = matrixScaleY;  
     } 


     matriximage = new BitmapData(sourceBMD.width, sourceBMD.height, false, 0x0000000); 

     trace('MatrixScaleX: ' + matrixScaleX); 
     trace('MatrixScaleY: ' + matrixScaleY); 
     trace('BaseScaleX: ' + baseScaleX); 
     trace('BaseScaleY: ' + baseScaleY); 
     trace('Matrix: ' + ObjectUtil.toString(matrix)); 

     matriximage.draw(sourceBMD, matrix);     
     testImage.source = matriximage;  

    } 
+0

귀하의 질문에 혼란스러워합니다. 스케일링이 누적되는 문제 (두 번의 "+"클릭 = 10 %, 하나의 "+"및 하나의 "-"는 0 %와 동일)입니까? 또는 누적되지 않습니다 (두 번의 "+"클릭 = 5 %, 하나의 "+"및 하나의 "-"는 -5 %와 같음)? 또는 다른 것? –

+0

정확합니다. 확대를 두 번하면 확대 축소를 세 번 클릭해야합니다. 나는 내가보고있는 것을 정확하게 보여주기 위해 간단한 스크린 캐스트를 가져 왔습니다. http://www.screencast.com/users/rottmanj/folders/Jing/media/bcb6272b-9a73-4a8e-8f2e-51cd675b6981 – Tempname

답변

1

, 내가 문제가 귀하의 의견 또는이 호출 받고있는 장소에있는 것을 의심 것 :

여기에 내 현재 코드입니다. 그것이 작동하는

위해하는 것은, 이벤트는 코드에서 다음과 같이 일해야

capture input -> scale image -> draw image.

이 함수가 끝날 때 이미지를 그리는 것처럼 보이므로 입력이 처리 된 후에이 함수가 호출되고 있는지 확인합니다.

무슨 일이 일어 났는지 확인할 수 있습니까?

+0

입력이 버튼에서 발생했습니다. 문제가 클릭 이벤트와 관련이 없음을 확인할 수 있습니다. – Tempname

+0

무슨 뜻입니까? 'CLICK'에서 입력을 설정하고 'ENTER_FRAME' 이벤트에서 클립의 크기를 조정하면 입력 프레임 전에 클릭이 실행된다는 보장이 없습니다. 이 함수의 상단에 추적을 넣고 단추에 추적을 넣고 실행중인 순서를 확인하십시오. – Ipsquiggle

관련 문제