1 (с флагом) - у вас один слушатель, в котором в зависимости от какой-то переменной класса выполняется различный код. Допустим это переменная myClick, которая в конструкторе становится равной true:

Код AS3:
package
{
...
public class MyClass
{
private var firstClick:Boolean;
...
public function MyClass()
{
...
firstClick = true;
...
}
}
}
Далее прикручиваете на кнопку слушатель:

Код AS3:
button.addEventListener(MouseEvent.CLICK, myClickListener);
И сам слушатель выглядит так

Код AS3:
private function myClickListener(e:MouseEvent):void
{
if(firstClick)
{
//делаем то, что требуется
//и ставим firstClick в false
firstClick = false;
}
else
{
//другой код
}
}
2. С двумя слушателями. Сначала прикручиваем обработчик1:

Код AS3:
button.addEventListener(MouseEvent.CLICK, myFirstClickListener);
А в обработчике при нажатии убираем с кнопки слушатель1 и добавляем слушатель 2 (после выполнения кода или перед - не важно)

Код AS3:
private function myClickListener(e:MouseEvent):void
{
button.removeEventListener(MouseEvent.CLICK, myFirstClickListener);
button.addEventListener(MouseEvent.CLICK, mySecondClickListener);
}
private function mySecondClickListener(e:MouseEvent):void
{
//Код, который будет выполняться при повторном нажатии
}