AS3: Match the following not swapping correctly

hello Everybody,
I am trying to create match the following pairs in flash where you drag an element upon its correct pair & drop it.Each element has its own unique coordinates at start.
Now, here is what i m trying to do with left matching element( i haven’t programmed right elements with same functionality yet), whenever one drag left matching element upon right element the "dragged "left element should change its position corresponding to right matching element(both should be at same Y coordinate) & the original left element should swap its position with dragged left element original position

I m trying to swap but getting results like “test.jpg”, where overlapping happens. i have attached the FLA, please view it, any advice suggestions are welcome…

this is my faulty code



var arr1:Array= new Array(match_left1, match_left2, match_left3,match_left4);
//array elements are instance name of left side matchings on stage
function mouse_up1(e:Event)
{
    e.target.stopDrag();
    if((e.target.hitTestObject(arr2[0]))||(e.target.hitTestObject(arr2[1]))||(e.target.hitTestObject(arr2[2]))||(e.target.hitTestObject(arr2[3])))
    {
        var hit_name:String=(e.target.hitTestObject(arr2[0]))?arr2[0].name:
        ((e.target.hitTestObject(arr2[1]))?arr2[1].name:
         ((e.target.hitTestObject(arr2[2]))?arr2[2].name:
           ((e.target.hitTestObject(arr2[3]))?arr2[3].name:"no")));
        
        var str2:int=int(hit_name.charAt(11));
        var str4:int=int(e.target.name.charAt(10));
        if(user_answer.length<=4)
        {
            user_answer.push([str2,str4]);
        }
        else if(user_answer.length>4)
        {
            user_answer.push([str2,str4]);
            user_answer.pop();
        }
        trace(hit_name +"---"+ e.target.name);    
        
        var tempX:*;
        var tempZ:*;
        tempX=arr1[str4-1];
        arr1[str4-1]=arr1[str2-1];
        arr1[str2-1]=tempX;
                
    }