J'essaye de créer un composant personnalisé très simple (voir annexe).
Dans ce composant figure quatre genres chacun disposant d'un bouton en forme de croix destiné à le supprimer. Mais lorsque je clique sur l'un d'eux, c'est systématiquement le dernier genre qui est supprimé au lieu de celui concerné....
Voici le code source de ce composant :
Je comprend ce qui ce passe mais je n'arrive pas à comprendre pourquoi ça se passe et comment l'éviter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public class GenresManager extends Panel { private var xml:XML = <genres> <genre id='BDA_1'>Humour</genre> <genre id='BDA_2'>Jeune</genre> <genre id='BDA_0'>Classique</genre> <genre id='BDA_6'>Suspence</genre> </genres> private var self:GenresManager; public function GenresManager() { super(); this.title = 'Genres'; self = this; for each(var genre:Object in xml.children()) { var h:HBox = new HBox; var l:Label = new Label; var s:Spacer = new Spacer; var b:LinkButton = new LinkButton; l.text = genre.*; s.percentWidth = 100; b.styleName = 'supprimer'; h.percentWidth = 100; h.addChild(l); h.addChild(s); h.addChild(b); b.addEventListener(MouseEvent.CLICK, function():void { self.removeChild(h) } ); this.addChild(h); } } }
Merci à tous pour vos remarques,
Bonne journée
NB : En mettant le composant 'genre' (HBox) dans une classe à part, ça fonctionne mais du coup je fais l'impasse sur cette incompréhention.
Partager