2013-05-22 3 views
0

as3/flash cs6에서 대화식지도를 만들고 있습니다. 지금은 확대/축소하고 드래그 할 수 있습니다.동영상 클립을 드래그 할 수있는 영역을 어떻게 제한합니까?

하지만 내 질문은지도를 끌 수있는 영역을 제한하는 방법입니다. 그래서지도 밖의 공백을 볼 수 없습니까?

import flash.events.MouseEvent; 

    function initDragger(mc:MovieClip):void 
    { 
     mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); 
     mc.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); 


    } 

    function mouseDownHandler(e:MouseEvent):void 
    { 
     e.currentTarget.startDrag(); 

    } 
    function mouseUpHandler(e:MouseEvent):void 
    { 
     e.currentTarget.stopDrag(); 

    } 

    // Set up drag 
    initDragger(map); 

    zoomIn.addEventListener(MouseEvent.CLICK, mapzoomin); 

    function mapzoomin(event:MouseEvent):void 
    { 
     if (map.scaleX < 10) 
     { 
      map.scaleX += 1; 
      map.scaleY += 1; 
     } 

    } 

    zoomOut.addEventListener(MouseEvent.CLICK, mapzoomout); 

    function mapzoomout(event:MouseEvent):void 
    { 
     if (map.scaleX > 1) 
     { 
      map.scaleX -= 1; 
      map.scaleY -= 1; 
     } 

    } 
+0

startDrag는 항목을 드래그 할 수있는 사각형 (바운드)을 허용 할 수 있습니다. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Sprite.html#startDrag%28%29 – Urosan

+0

알겠습니다. 알겠습니다. 그러면 경계를 내지도와 동일하게 만듭니 까? –

답변

0

사각형의 크기는 당신의 드래그 항목의 왼쪽 상단 모서리에 관련되어야한다 :

여기 내 코드입니다. 따라서 100x100 크기의지도와 50x50 크기의 가시 영역이 있다면 사각형은 {x : -50, y : -50, 너비 : 50, 높이 : 50}

0

이 될 수 있습니다. 지도의 x와 y 좌표가 무엇인지 확인하고 그들이 원하는 것 이상으로 나아 가지 않도록하십시오.
예 :
나는 것을 테스트하지 않았습니다

stage.addEventListener(Event.ENTER_FRAME, update); 

function update(e:Event) 
{ 
    if(map.x > 0) map.x = 0; 
    if(map.x < map.width - 200) map.x = map.width - 200; 
    if(map.y > 0) map.y = 0; 
    if(map.y < 0 - (map.height - 200)) map.y = 0 - (map.height - 200); 
} 

(당신의 단계를 척 200 픽셀 폭 높은)하지만, 바로해야합니다.