Problem with downstate for buttons

Hi there, I’m using some classes that apply to a series of movieclip buttons I found. I’m using the classes to get the buttons to rollover and when clicked stay in the down state, when another is clicked the previous button goes back to up state. The rollover works fine however it doesn’t stay in down state when clicked.

Here is the code I have so far, I’m also open for substitute classes that will do the same thing.

class ButtonClass extends MovieClip {
    public var onPressDown:Function;

    public function ButtonClass() {
		this.gotoAndStop(1);
        this.onRollOver = this.over;
        this.onRollOut = this.out;
        this.onPress = this.down;
    }
    private function over() {
        this.gotoAndStop(2);
    }

    public function out() {
        this.gotoAndStop(1);
    }

    private function down() {
        this.gotoAndStop(2);
        this.onPressDown(this);
    }
}
import mx.utils.Delegate;
class buttonGroup {
	
    private var button_array:Array;

    public function buttonGroup()
    {
        button_array = new Array();
    }
    public function addButton(button:ButtonClass):Void
    {
        button_array.push(button);
        button.onPressDown = Delegate.create(this, buttonPressed);
    }
    private function buttonPressed(target:ButtonClass):Void
    {
        var i:Object = new Object();
        for (i in button_array)
        {
            if (button_array* != target)
            {
                button_array*.out();
            }
        }
    }
}

and then on the main timeline

import buttonGroup;
var myGroup:buttonGroup = new buttonGroup();
myGroup.addButton(b1);
myGroup.addButton(b2);
myGroup.addButton(b3);

Here are the zip files: