Positionnement des composants personnalisés Flex 3 - popups
-
03-07-2019 - |
Question
J'ai créé un TitleWindow personnalisé que j'utilise comme popup. Le contenu de la fenêtre contextuelle est créé dynamiquement en fonction d'une sélection effectuée par un utilisateur dans une grille de données.
Mon problème est que ma grille de données se trouve dans un autre composant personnalisé qui se trouve vers le bas de ma page. Ainsi, lorsqu'un utilisateur clique sur l'un des éléments, la fenêtre contextuelle s'affiche, mais la moitié est invisible au bas de la page.
Y a-t-il un moyen de positionner une fenêtre contextuelle de sorte qu'elle s'affiche en haut de la page?
La solution
Je sais au moins deux choses que vous pouvez utiliser pour positionner une fenêtre contextuelle, bien qu'il puisse y en avoir plus.
Lorsque vous placez une fenêtre contextuelle, vous pouvez choisir dans quel composant parent la placer:
PopUpManager.createPopUp(this.parent, TitleWindowComponent);
Dans le composant lui-même:
PopUpManager.centerPopUp(this);
Autres conseils
Je souhaitais qu'une fenêtre contextuelle de type info-bulle d'aide (avec le texte d'aide) apparaisse à côté de l'icône qui l'a ouverte. Finalement, j'ai utilisé move (x, y) pour déplacer la fenêtre où je le voulais. Pour obtenir les coordonnées pour le placer, utilisez globalToLocal:
var globalX:Number = localToGlobal(new Point(myIcon.x, myIcon.y)).x;
var globalY:Number = localToGlobal(new Point(myIcon.x, myIcon.y)).y;
toolTip.move(globalX + myIcon.width, globalY);
Cela place la fenêtre juste à droite de l'icône, myIcon.