1

この配列にインスタンス名ストアを持つ 6 つのドラッグ可能なムービークリップがあります。

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

上に 6 つのムービークリップがある hitTestObject になる 5 つのムービークリップがあり、そのインスタンス名もこの配列に格納します。

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);

}

これが私の「unWorking code」です。このコードで、dragArray1 が TestObject mArray1 にヒットするようにしたいのですが、dragArray1 が TestObject 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 のすべてのムービークリップが、mArray1 の任意のムービークリップの Testobject をランダムにヒットできるようにしたいだけです。

4

1 に答える 1

0

問題は、リターンの位置です。声明。他の 3 行の前に呼び出すと、実行されません。

したがって、修正は単純にリターンを配置することです。最後まで:

trace("hit")
currentClip1.x=mArray1[ma].x;
currentClip1.y=mArray1[ma].y;
return;
于 2013-08-15T14:25:06.180 に答える