I have multiple MovieClip Symbols published with Flash into FlashDevelop (I'll only use 2 in my example). Each have 3 frames for default, hover and click that I'm using as buttons. 

```
private var btnPlay:PlayButton, btnQuit:QuitButton;

btnPlay = new PlayButton();
btnQuit = new QuitButton();

btnPlay.addEventListener(MouseEvent.ROLL_OVER, onRollOverHandler);
btnPlay.addEventListener(MouseEvent.ROLL_OUT, onRollOutHandler);
btnPlay.addEventListener(MouseEvent.MOUSE_DOWN, onPressHandler);
btnPlay.addEventListener(MouseEvent.MOUSE_UP, onReleaseHandler);

btnPlay.buttonMode = true;
btnPlay.useHandCursor = true;

function onRollOverHandler(myEvent:MouseEvent):void {
    btnPlay.gotoAndStop(2);
}

function onRollOutHandler(myEvent:MouseEvent):void {
    btnPlay.gotoAndStop(1);
}

function onPressHandler(myEvent:MouseEvent):void {
    btnPlay.gotoAndStop(3);
}

function onReleaseHandler(myEvent:MouseEvent):void {
    btnPlay.gotoAndStop(2);
}

// Same code for btnQuit here, but replace btnPlay with btnQuit

```

Instead of adding new EventListeners to every button that do practically the same thing like what I'm doing above, is there a way I could just pass in the button itself to the MouseEvent functions something like this? (I realize this might be difficult since all buttons are their own class)

```
btnPlay.addEventListener(MouseEvent.ROLL_OVER, onRollOverHandler(btnPlay));
btnPlay.addEventListener(MouseEvent.ROLL_OUT, onRollOutHandler(btnPlay));
btnPlay.addEventListener(MouseEvent.MOUSE_DOWN, onPressHandler(btnPlay));
btnPlay.addEventListener(MouseEvent.MOUSE_UP, onReleaseHandler(btnPlay));

function onRollOverHandler(myEvent:MouseEvent, inButton:MovieClip):void {
    inButton.gotoAndStop(2);
}

function onRollOutHandler(myEvent:MouseEvent, inButton:MovieClip):void {
    inButton.gotoAndStop(1);
}

function onPressHandler(myEvent:MouseEvent, inButton:MovieClip):void {
    inButton.gotoAndStop(3);
}

function onReleaseHandler(myEvent:MouseEvent, inButton:MovieClip):void {
    inButton.gotoAndStop(2);
}

```