Bonjour,
Je suis en train de développer un composant custom pour Flex qui contient un nombre dynamique de composants. Dans la redéfinition de "updateDisplayList", j'appelle donc les méthodes "removeAllChildren" et "addChildren". La seconde me pose des problèmes car elle appel de nouveau "updateDisplayList", ce qui forme un appel récursif. Avez-vous une idée sur comment éviter cet appel récursif ?
Pour illustrer le problème, j'ai mis ci-dessous le code d'un composant simplifié.
Merci.
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
42
43
44
45
46
47 package { import mx.containers.HBox; import mx.controls.Button; public class MyComponent extends HBox { private var _nbButtons:int; override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void { trace (">>> MyComponent.updateDisplayList"); super.updateDisplayList(unscaledWidth, unscaledHeight); // Tous les boutons sont effacés this.removeAllChildren(); // Ajout des boutons var button:Button; for (var i:int = 0; i < _nbButtons; i++) { button = new Button(); button.label = "toto"; this.addChild(button); // Appel de updateDisplayList } } public function set nbButtons(nb:int):void { _nbButtons = nb; invalidateDisplayList(); } [Bindable] public function get nbButtons():int { return _nbButtons; } } }
Partager