честно говоря по мне функция организована чрез одно место.
Почему бы просто не написать условия анимации хождения
пример на вскидку как способ реализации

Код AS3:
//стоит ещё сделать кадр, когда персонаж стоит
//пока нажата кнопка идти
if ((jump == false) && (run)){
character.gotoAndPlay(1);
if (character.currentFrame == 24) //конец анимации ходьбы
character.gotoAndPlay(1);
//если нажата клавиша прыжок
if (jump){ //тип булеан true, но она НЕ примет значение false, пока анимация не достигнет последнего кадра прыжка if (character.currentFrame == 44) {jump = false}, а вот значение true она должна принимать при нажатии клавиши
character.gotoAndPlay(25);
startJump = true; // ведь сначала анимация началы прыжка, колени сжал и т.д.
}
if ((startJump) && ((character.currentFrame == 30)){ //типо с тридцатого кадра он отрвётся отземли и будет как-то там себя вести в вуздухе
***// тут пишем его физику, куда и как он летит
ну и по аналогии посадку и т.п.
Это вариант организации, какой бы стал делать я, может в итоге я бы сделал иначе, но попробуйте начатьс этого
Добавлено через 5 минут
стоит так же разделить вашу функцию на отдельные части, одни реагируют на нажатия клавиш, другие воспроизводит соответствующую анимацию