Apprendre à créer des MouseEvent.CLIQUEZ sur l'événement en AS3 (passer des paramètres à la fonction)?

Cette question ne concerne pas seulement à MouseEvent.CLIQUEZ sur type d'événement, mais à tous les types d'événements qui existent déjà en AS3. J'ai lu beaucoup de choses sur les événements personnalisés mais jusqu'à présent, je ne pouvais pas comprendre comment faire ce que je veux faire. Je vais essayer de l'expliquer, j'espère que vous comprenez:

Ici est une illustration de ma situation:

for(var i:Number; i < 10; i++){
    var someVar = i;
     myClips[i].addEventListener(MouseEvent.CLICK, doSomething);
}

function doSomething(e:MouseEvent){ /* */ }

Mais je veux être en mesure de passer à someVar en tant que paramètre à doSomething. J'ai donc essayé ceci:

for(var i:Number; i < 10; i++){

    var someVar = i;
    myClips[i].addEventListener(MouseEvent.CLICK, function(){
        doSomething(someVar);
    });
}

function doSomething(index){ trace(index); }

Ce genre de travaux, mais pas comme je l'attends. En raison de la fonction de fermeture, lorsque le MouseEvent.CLIQUEZ sur événements sont effectivement tiré la pour boucle est déjà plus someVar est tenue la dernière valeur, le nombre 9 dans l'exemple. Donc, à chaque clic dans chaque clip d'appel doSomething passant 9 en tant que paramètre. Et ce n'est pas ce que je veux.

J'ai pensé que créer un événement personnalisé devrait fonctionner, mais alors je ne pouvais pas trouver un moyen de déclencher un événement personnalisé lors de la MouseEvent.CLIQUEZ sur l'événement est déclenché et transmettre le paramètre. Maintenant, je ne sais pas si c'est la bonne réponse.

Que dois-je faire et comment?

Pour quiconque cherche à cela, j'ai ajouté un rapide exemple de code sur le passage de paramètres à une fonction ici: rocketwidget.com/...

OriginalL'auteur fromvega | 2009-01-08