Crie um conjunto de funções anônimas com parâmetros definidos no momento definitivo

Estou tentando refatorar gradualmente o código existente. Eu tenho um conjunto de funções que são definidas e diferem apenas por um dos argumentos internos:

function loadGame1():void
{
    loadGame("save1");
}
function loadGame2():void
{
    loadGame("save2");
}
function loadGame3():void
{
    loadGame("save3");
}
//... snip many, many lines

// Note- I cannot pass function arguments at this time!
picker(loadGame1, loadGame2, loadGame3 ...);    

Estou tentando refatorar pelo menosparte disso (eu não posso substituir completamente a coisa toda ainda, muitas interdependências).

Basicamente, eu quero ser capaz de gerar um grande conjunto de funções com a diferença entre as funções sendo um parâmetro interno:

var fNames:Array = new Array("save1", "save2", "save3");
var funcs:Array = new Array();
for (var i = 0; i < fNames.length; i += 1)
{
    trace("Creating function with indice = ", i);
    funcs.push(
        function() : void 
        {
            saveGame(fNames[i]);
        }
    )
}

picker(funcs[0], funcs[1], funcs[2] ...);

No entanto, pelo que entendi, o fechamento está causando o estado dei para ser mantido além do escopo do loop for, e qualquer tentativa de chamar qualquer uma das funções geradas está falhando com um erro fora dos limites, que é o que você esperaria dado quei atingiráfNames.size + 1 antesi < fNames.size avalia para falso.

Então, basicamente, dado que eu preciso gerar funções que são passadas como argumentos para uma função pré-existente que não posso alterar atualmente. Como posso gerar dinamicamente essas funções?

questionAnswers(1)

yourAnswerToTheQuestion