将动画片段拖放到2个数组中

时间:2013-06-17 15:32:05

标签: actionscript-3 actionscript

我有六个可拖动的movieclip,在这个数组中有一个实例名称存储:

var dragArray1:Array = [drag1, drag2, drag3, drag4, drag5, drag6];

我有5个movieclip是一个hitTestObject,上面有6个movieclip,并且在这个数组中也存储了该实例名称:

var mArray1:Array = [mat1, mat2, mat3, mat4, mat5];

这里有一些变量:

var currentClip1:MovieClip;
var startX1:Number;
var startY1:Number;

这是我的代码,用于循环拖动dragArray1:

的拖放
for(var ia:int = 0; ia < dragArray1.length; ia++) {
    dragArray1[ia].buttonMode = true;
    dragArray1[ia].addEventListener(MouseEvent.MOUSE_DOWN, item_onMouseDown1);

}

function item_onMouseDown1(event:MouseEvent):void {
    currentClip1 = MovieClip(event.target);
    startX1 = currentClip1.x;
    startY1 = currentClip1.y;
    currentClip1.startDrag()
    addChild(currentClip1)
    stage.addEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp1);

}

这是我的“取消工作代码”。我希望这段代码能够生成dragArray1 hitTestObject mArray1,当dragArray1 hitTestObject mArray1时,dragArray1的x和y等于mArray1,对不起,如果我的英语太差了

以下是代码:

function stage_onMouseUp1(event:MouseEvent):void {

    stage.removeEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp1);
    currentClip1.stopDrag();

    for(var ma:int = 0; ma < mArray1.length; ma++){

        if(currentClip1.hitTestObject(mArray[ma])){
            return;
            trace("hit")
            currentClip1.x=mArray1[ma].x;
            currentClip1.y=mArray1[ma].y;
        }else{
            currentClip1.x=startX1;
            currentClip1.y=startY1;
        }
    }

}

我只是希望dragArray1中的每个movieclip都可以随机地在mArray1中的任何一个动画片段中击中测试对象。<​​/ p>

1 个答案:

答案 0 :(得分:0)

问题在于 return; 语句的位置。在其他3行之前调用它会导致它们不执行。

因此,修复只是放置回报;到最后:

trace("hit")
currentClip1.x=mArray1[ma].x;
currentClip1.y=mArray1[ma].y;
return;