Remplacer un bind par un on replace
Bonjour,
J'ai lu à pas mal d'endroits que le binding était un tueur de performances et je me demandais si il était possible dans certains cas de le remplacer par de simple trigger
J'ai une Scene qui contient un CustomNode nommé module. Au cours de l'exécution du programme, la fonction remplirModule est appelée. Cette méthode assigne à module une instance d'une classe personnalisée qui étend CustomNode. Comme module est précédé de bind dans la Scene et que son contenu change, l'affichage est réactualisé.
Avec bind:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
var module:CustomNode;
Stage {
scene: Scene {
content: [
Group{
content: bind [
Rectangle{
fill:Color.SILVER
},
module
]
} ]}]}}}
public function remplirModule(String): Void {
module= MonCustomNode {
//Cette classe étend CustomNode
contenu:String;
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public class MonCustomNode extends CUstomNode {
var contenu: String;
override function create() {
Group {
content :[
Text {
font: Font {size: 16}
content: contenu
}
]
}
}
} |
Avec triger :
Est-il possible d'appeler une sorte de méthode "repaint" sur le CustomNode qui forcerait le réaffichage de ce bloc quand le triger se déclenche ?
Code:
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
|
var module:CustomNode on replace{
//!!!! Ici il faudrait forcer le "repaint" du CustomNode module dans la Scene
//To implement
};
Stage {
scene: Scene {
content: [
Group{
content: [
Rectangle{
fill:Color.SILVER
},
module
]
}
]
} ]}]}}}
public function remplirModule(String): Void {
module= MonCustomNode {
//Cette classe étend CustomNode
contenu:String;
}
} |