Это довольно просто. Создайте новый общий класс кнопок и добавьте в него всех своих слушателей событий. Для каждой новой кнопки, которую вы хотите создать, просто расширьте свою общую кнопку и введите требуемый код в обработчики событий .:
class GenericToggleButton extends Button
{
public GenericToggleButton()
{
this.addEventListener(MouseEvent.MOUSE_OVER, rolloverToggle);
this.addEventListener(MouseEvent.MOUSE_OUT, rolloutToggle);
this.addEventListener(MouseEvent.MOUSE_CLICK, toggleClick);
}
protected function rolloverToggle(event:MouseEvent):void
{
this.gotoAndStop(this.buttonState+" over");
}
protected function rolloutToggle(event:MouseEvent):void
{
this.gotoAndStop(this.buttonState);
}
protected function toggleClick(event:MouseEvent):void
{
if (this.buttonState == "on") {
this.buttonState = "off";
this.gotoAndStop(1);
} else {
this.buttonState = "on";
}
}
}
Теперь просто расширьте этот класс и добавьте свою функциональность.
class NewButton extends GenericToggleButton
{
public NewButton()
{
super();
}
override protected function toggleClick(event:MouseEvent):void
{
super.toggleClick(event);
// do magic for this button
}
// ETC
}