Bonjour tout le monde.
J'ai quelques mauvaises habitudes en JS qui font que j'utilise souvent des fonctions anonymes. Mais en AS, je le fais et je trouve cela un peu "sale".
Actuelement si je résume, mon code resemble à cela.
J'ai un tableau d'objets "media" que je parcours et pour chaque objet je créé un objet graphique (composant MXML), et ajoute un ecouteur sur le click :
Donc ma question se porte surtout, sur le comment éviter cette fonction anonyme qui est collée sur le event de mediaThumb, tout en conservant le fait que mediaThumb est bien relié à mon objet "media".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 (mediasGroupManager.getMediasAll().getAllMedias() as Array).forEach(function(media:WMedia, index:int, array:Array):void { var mediaThumb:Box = new Box(); //objet mx.controls.Box mediaThumb.addEventListener(MouseEvent.CLICK, function(eve:MouseEvent):void { showMedia(media); mediaGetDownloadUrl(media); }); });
En JS je serai passé par la fonction bind de mootools
Donc je recherche un équivalent au bind, (donc etendre l'objet Function (creer une nouvelle classe ?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // ..... mediaThumb.addEventListener(MouseEvent.CLICK, clickHandler.bind(this, [media]); }); // ..... private function clickHandler(media):void { showMedia(media); mediaGetDownloadUrl(media); }
ou bien faire propre et trouver une méthode utilisée souvent en AS, mais alors là je connais pas.
Merci
Partager