2017-03-03 1 views
2

일부 draggable/droppable bar를 작업 중입니다. 선택 막대이기 때문에 드래그 가능합니다. x 스테이지 제한에서 드래그 가능한 선택 버튼입니다. 스테이지 제한에서만 드래그 할 수 있습니다. hitTestPoint 및 newshape 메소드를 시도했지만 작동하지 않았습니다. 이 같은드래그 X 제한 설정 방법

// define lock on y-axis 
var LOCKY:Number = secbuton.y; 
  
stage.addEventListener(MouseEvent.MOUSE_MOVE, _mouseMove); 
function _mouseMove(e:MouseEvent):void 
{ 
if(secbuton.y != LOCKY) secbuton.y = LOCKY; 
} 
  
// dragging 
secbuton.addEventListener(MouseEvent.MOUSE_DOWN, _mouseDown); 
function _mouseDown(e:MouseEvent):void 
{ 
secbuton.startDrag(false, new Rectangle(35,345,420)); 
secbuton.addEventListener(MouseEvent.MOUSE_UP, _mouseUp); 
} 
  
// dropping 
function _mouseUp(e:MouseEvent):void 
{ 
secbuton.stopDrag(); 
secbuton.removeEventListener(MouseEvent.MOUSE_UP, _mouseUp); 

      if(secbuton.hitTestObject(kose1)){ 
    secbuton.x = levcbk1.x +5 
    } 

    if(secbuton.hitTestObject(lev2)){ 
    secbuton.x = levcbk2.x +5 
    } 
if(secbuton.hitTestObject(lev3)){ 
    secbuton.x = levcbk3.x +5 
    } 
       if(secbuton.hitTestObject(lev4)){ 
    secbuton.x = levcbk4.x +5 
    } 

         if(secbuton.hitTestObject(lev5)){ 
    secbuton.x = levcbk5.x +5 
    } 
} 

UPDATE

일반적 줄 작동합니다.

[! [여기 이미지 설명을 입력합니다] [1] [1]

그러나 국경을 공격하거나 문제가있을 때 Y 축에 시도 드래그.

[이! [여기 이미지 설명]을 입력 [2] [2]

+0

두 번째 인수 : ** public function startDrag (lockCenter : Boolean = false, bounds : Rectangle = null) : void ** http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/ display/Sprite.html # startDrag() – Organis

+0

수업이 새로 왔습니다. 프레임 코드를 사용하고 있습니다. 프레임 코드에서 어떻게 할 수 있습니까? – KucuKeko

+0

** secbuton.startDrag (false, new Rectangle (...)); ** Rectangle 생성자에서 드래그를위한 경계 상자 여야 할 직사각형 영역의 left, top, width 및 height **를 전달합니다 귀하의 secbutton 개체. – Organis

답변

1

MOUSE_LEAVE를 사용하지 마십시오. MOUSE_UP 사용하지만 stage 객체 - MOUSE_UPstage 객체에 의해 전달됩니다 심지어 플래시 플레이어 창 밖에서 분리 버튼 (기본적으로 어디서든)

그래서 단순히 그 선이에

secbuton.addEventListener(MouseEvent.MOUSE_UP, _mouseUp); 
secbuton.removeEventListener(MouseEvent.MOUSE_UP, _mouseUp); 

변경 :

stage.addEventListener(MouseEvent.MOUSE_UP, _mouseUp); 
stage.removeEventListener(MouseEvent.MOUSE_UP, _mouseUp); 

그리고 Organis가 말한대로. Rectangle 매개 변수는 x , y , width and height입니다. 그래서 나는 GIF를에서 보는 것과 당신이로 설정합니다 : 당신이 0에 사각형 어이 설정하면

secbuton.startDrag(false, new Rectangle(35,345,420-35,0));

, 개체는 (귀하의 경우 345) y 축에 잠 깁니다 그래서 당신 돈 변수 및 이동 수신기를 LOCKY 사용해야합니다.

+0

감사합니다. 작동 했어요. – KucuKeko