2009-04-30 8 views
0

Ich habe ein benutzerdefiniertes TitleWindow erstellt, das ich als Popup verwende. Der Inhalt des Popups wird dynamisch erstellt, abhängig von einer Auswahl, die ein Benutzer aus einem Datagrid macht.Flex 3 benutzerdefinierte Komponenten Positionierung - Popups

Mein Problem ist, mein Datagrid ist in einer anderen benutzerdefinierten Komponente, die sich auf der Unterseite meiner Seite befindet. Wenn ein Benutzer auf eines der Elemente klickt, wird das Popup jedoch mit der Hälfte davon am unteren Rand der Seite angezeigt .

Gibt es eine Möglichkeit, ein Popup so zu positionieren, dass es oben auf der Seite angezeigt wird?

Antwort

3

Ich kenne mindestens zwei Dinge, die Sie verwenden können, um ein Popup zu positionieren, obwohl es möglicherweise mehr gibt.

Wenn Sie ein Popup platzieren Sie in dem übergeordneten Komponente können wählen, um das Popup zu platzieren:

PopUpManager.createPopUp(this.parent, TitleWindowComponent); 

In der Komponente selbst:

PopUpManager.centerPopUp(this); 
3

ich eine Hilfe Tooltip Typ Popup wollte (mit Hilfe Text) neben dem Symbol, das sie geöffnet hat. Am Ende benutzte ich move (x, y), um das Fenster dorthin zu bewegen, wo ich es haben wollte. Um die Koordinaten zu erhalten, um es zu platzieren, verwenden 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); 

, dass das Fenster nur auf der rechten Seite des Symbols setzt, MyIcon.