>
내가 찾고있는 것은 스테이지에서 객체를 드래그 할 때 기본 객체 (동일한 레이어)를 드래그하고 기본 객체가 배치 된 위치를 유지하고 싶습니다. 다중 객체 상황에서 배열을 사용해야합니까? 이것은 하나의 객체 (및 '하위 객체')에 대한 것입니다. 이들 중 총 22 개가 있습니다. 여기서 하위 객체를 영화 클립에 추가 할 수는 없습니다. 그렇지 않으면 무대의 다른 21 개 객체가 겹치고 서로 간섭합니다.

이것은 지금까지 내가 가지고있는 것입니다. 그림도 참조하십시오. 누구든지 유용한 코드로 나를 안내 할 수 있습니까?

CF.addEventListener(MouseEvent.MOUSE_DOWN, dragCF);
CF.addEventListener(MouseEvent.MOUSE_OVER, fadeCF_spaceIN);
CF.addEventListener(MouseEvent.MOUSE_UP, fadeCF_spaceIN);
function dragCF(evt:MouseEvent):void {
    addChild(MovieClip(evt.currentTarget));
    evt.currentTarget.startDrag();
    stage.addEventListener(MouseEvent.MOUSE_UP, dropCF);   }   
function dropCF(evt:MouseEvent):void {
     stopDrag();
     stage.removeEventListener(MouseEvent.MOUSE_UP, dropCF);  }
function fadeCF_spaceIN(evt:MouseEvent):void {
    CF_space.alpha = .5; 
    stage.addEventListener(MouseEvent.MOUSE_OUT, fadeCF_spaceOUT);
    stage.addEventListener(MouseEvent.MOUSE_DOWN, fadeCF_spaceOUT);      }
function fadeCF_spaceOUT(evt:MouseEvent):void {
    CF_space.alpha = 0; 
    stage.removeEventListener(MouseEvent.MOUSE_OUT, fadeCF_spaceOUT);  }

예 예시 :


  • 답변 # 1

    var CF_1:Array = [CF_mc, CF_space];  // instance names
    for each(var CF1_MC:MovieClip in CF_1)
    {
        CF1_MC.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
        CF1_MC.addEventListener(MouseEvent.MOUSE_UP, dropIt);
        CF1_MC.startX = CF1_MC.x;
        CF1_MC.startY = CF1_MC.y;
    }
    function pickUp(event:MouseEvent):void 
    {
        event.target.startDrag(true);
        event.target.parent.addChild(event.target);
    }
    function dropIt(event:MouseEvent):void 
    {
        event.target.stopDrag();
    }
    
    

  • 답변 # 2

    무엇을 의미하는지 100 % 확신 할 수 없지만 startDrag 및 stopDrag 대신 ENTER_FRAME 함수를 사용할 수 있습니까? 다음은 객체 배열과 함께 사용할 수있는 최소한의 예입니다.

    var xDifference:Number;
    var yDifference:Number;
    var dragging:Boolean;
    draggableObject.addEventListener(MouseEvent.MOUSE_DOWN, mDown);
    draggableObject.addEventListener(MouseEvent.MOUSE_UP, mUp);
    stage.addEventListener(Event.ENTER_FRAME, loop);
    function loop(evt:Event):void{
        if(dragging){
            draggableObject.x = mouseX;
            draggableObject.y = mouseY;
            secondaryObject.x = draggableObject.x + xDifference;
            secondaryObject.y = draggableObject.y + yDifference;
        }
    }
    function mDown(evt:MouseEvent):void{
        xDifference = secondaryObject.x - draggableObject.x;
        yDifference = secondaryObject.y - draggableObject.y;
        dragging = true;
    }
    function mUp(evt:MouseEvent):void{
        dragging = false;
    }
    
    

    경우에 따라 마우스 커서와 MOUSE_DOWN의 draggableObject 등록 포인트 사이의 차이를 계산하여 draggableObject가 중심점이 정확히 마우스 위치에있는 위치로 점프하는 것을 방지 할 수 있습니다.

  • 답변 # 3

    감사합니다 귀하의 추가 사항 및 실제로는 훨씬 더 단순하고 너무 단순하다는 것이 입증되었습니다.

    object.addEventListener(MouseEvent.MOUSE_DOWN, drag);
    object.addEventListener(MouseEvent.MOUSE_UP, drop);
    function drag(evt:MouseEvent):void {
         addChild(MovieClip(evt.currentTarget));
         evt.currentTarget.startDrag();
    }
    function drop(evt:MouseEvent):void {
         stopDrag();
         object_space.x = object.x;
         object_space.y = object.y;
    }
    
    

  • 이전 tensorflow - LSTM 세포 훈련 가능
  • 다음 python - 팬더 시간 인덱스 데이터 프레임의 미래 값을 구하기 위해 루프하십시오이를 더 빨리 만들 수 있습니까?