Причина в ваших условиях. Я попробую объяснить как оно срабатывает. Допустим count равен единице, но почему же переходит в третий кадр?

Код AS1/AS2:
if (count == 1) //первая проверка. Да, count равен единице и команда перехода
{ //на второй кадр выполнится, но только после того, как весь код из данного кадра
gotoAndStop(2); //будет прочтён до конца.
}
//чтение кода продолжается....
if (count == 2) //вторая проверка не срабатывает, так как count не равен двойке в данный момент,
{
gotoAndStop(3);
}
else // НО сработает эта строчка, ведь если count не равен двойке, тогда вы переходите
{ // на четвёртый кадр, всё логично.
gotoAndStop(4);
}
Просто не забывайте, что код обязательно прочитается весь, даже если была команда перехода на другой кадр.
Исправить ситуацию достаточно просто, поставьте цельную ветвь ифов. Здесь, переход на четвёртый кадр произойдёт только тогда, когда count будет равен любому числу, кроме единицы или двойки.

Код AS1/AS2:
if (count == 1)
{
gotoAndStop(2);
}
else if (count == 2) // <--- else if
{
gotoAndStop(3);
}
else
{
gotoAndStop(4);
}