나는 드래그 앤 드롭 스타일의 앱을 만들려고 애 쓰고 있는데, 나는 배열로 드래그 될 영화 클립 그룹을 가지고있다. 내가 드래그하면 감소 할 때 대상이 아닌 경우 감지가있는 경우 나 작동하지 않음 (대상 (작업)AS3 : 배열의 무비 클립이 다른 배열의 무비 클립에 떨어졌습니다.
B) 스냅)
A, 하나에 원하는 다시 원래의 위치로 스냅)
가능하다면 좋지만 지금은 필요하지 않습니다. 대상과
C) 스위치 위치 타겟이 다른 드래그 할 무비 클립
에게 내가 만약 다른 배열의 "대상"무비 클립의 한 배열에서 드래그 할 무비 클립의 모든 모든 있습니다. 내가 목표 위에 MC를 놓으면 그것은 단지 내가 코드에서 그 대상을 지정한 경우,
(dragBox[0])
를 작동하거나 대상 배열의 마지막 인 경우. 다음은 현재 가지고있는 코드입니다.
var startX:Number = 0;
var startY:Number = 0;
var dropBoxes:Array = [/*list of dropBoxes*/];
var dragBoxes:Array = [/*list of dragBoxes*/];
for each (var dragBox_mc:MovieClip in dragBoxes){
dragBox_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickIt);
dragBox_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
}
function pickIt(evt:MouseEvent):void {
var objTarget = evt.target;
objTarget.parent.addChild(objTarget);
objTarget.startDrag();
startX = objTarget.x;
startY = objTarget.y;
}
function dropIt(evt:MouseEvent):void {
var objTarget = evt.target;
var target = evt.target.dropTarget;
if (target != null && target.parent == (dropBoxes[0])){
trace ("Dropped")
objTarget.x = (dropBoxes[0]).x;
objTarget.y = (dropBoxes[0]).y;
}else{
trace ("Returned")
objTarget.x = startX;
objTarget.y = startY;
}
objTarget.stopDrag();
}
기본적으로 어떻게하면 한 번에 하나씩 배열에있는 모든 영화 클립을 인식 할 수 있습니까?
감사
코디의 도움으로는 내가 그에게 감사에게 너무 많은 것을 원하는대로이 정확히 작동있어! 다른 사람들이 그것을 필요로 할 때를 대비해서 내가 끝내었던 것이 여기있다. 당신이 항목을 배열 여부에 있는지 파악하려면
function dropIt(evt:MouseEvent):void {
var objTarget = evt.target;
var target = evt.target.dropTarget;
// Drop dragBox onto dropBox
if (target != null && dropBoxes.indexOf(target.parent) != -1){
trace ("Dropped")
objTarget.x = target.parent.x;
objTarget.y = target.parent.y;
// Switch dragBox with another dragBox
}else if (target != null && dragBoxes.indexOf(target.parent) != -1){
trace ("Switched")
objTarget.x = target.parent.x
objTarget.y = target.parent.y
target.parent.x = startX
target.parent.y = startY
// If no target return to original position
}else{
trace ("Returned")
objTarget.x = startX;
objTarget.y = startY;
}
objTarget.stopDrag();
}