Hello, I would like to create a drag n drop target like the drawer in the game machinarium.

Basically, in this point+click game a drawer tweens in and out of the stage area from the top when the user hovers over it. Items can be dragged and dropped into it and then taken out and used throughout the game. When the user hovers off the drawer, it closes and the items in it go away with the drawer.

I have the drag and drop, the target, and the tween working, however after I drop an object into the drawer, I'm having troubles re-initiating the drag and drop cycle.

My question is, using the code I'm working with, once I've dropped an mc into the target mc, how can I drag it back out again?

Here's my code:

Code:
import com.greensock.*;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.geom.Rectangle;

var drawer:MovieClip

//red_mc is draggable
red_mc.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
red_mc.addEventListener(MouseEvent.MOUSE_UP, endDrag);
red_mc.buttonMode = true;

//black_mc is the target drawer
red_mc.targetNode = black_mc;
black_mc.nodeBounds = new Rectangle (black_mc.x, black_mc.y, black_mc.width, black_mc.height);

//script for the drag and also to initiate red_mc to open the drawer
function beginDrag(e:MouseEvent):void{
	drawer = e.currentTarget as MovieClip;
	stage.addEventListener(MouseEvent.MOUSE_MOVE, openDrawer);
	e.target.startDrag();
}

//script for red_mc to open the drawer
function openDrawer(e:MouseEvent):void{
	if(drawer.hitTestObject(drawer.targetNode)){
		   TweenLite.to(black_mc, 1, {x:275.5, y:32.5});
		   stage.removeEventListener(MouseEvent.MOUSE_MOVE, openDrawer);}
}

//script for drop with target
function endDrag(e:MouseEvent):void{
	e.target.stopDrag();
	if(red_mc.y>0 && red_mc.y<96){
		black_mc.addChild(red_mc);
		red_mc.x=-225;
		red_mc.y=0;}
	else 
	{red_mc.x= red_mc.x;
	 red_mc.y= red_mc.y;}
}

//script for the mouse to open+close the drawer
hitArea_mc.addEventListener(MouseEvent.MOUSE_OVER, open);
hitArea_mc.addEventListener(MouseEvent.MOUSE_OUT, close);

function open(e:MouseEvent):void{
TweenLite.to(black_mc, 1, {x:275.5, y:32.5});
	removeEventListener(MouseEvent.MOUSE_OVER, open);}

function close(e:MouseEvent):void{
	TweenLite.to(black_mc, 1, {x:275.5, y:-35.5});
	removeEventListener(MouseEvent.MOUSE_OUT, close);}
Any help will be appreciated!

Thanks in advance,
Llyfre