Im Allgemeinen sollten Sie die BrowserManager-Klasse und tiefe Verlinkungen zur Statuserhaltung von Anwendungen sowie zur Bearbeitung von URLs und des Browserverlaufs verwenden. In bestimmten Fällen kann jedoch auch die HistoryManager-Klasse nützlich sein, beispielsweise bei der Verwaltung von älteren Flex-Anwendungen. Sie können die HistoryManager- und die BrowserManager-Klasse nicht in derselben Flex-Anwendung benutzen, auch wenn sie dieselben Unterstützungsdateien verwenden.
Die Verlaufsverwaltung ist standardmäßig für den Accordion- und den TabNavigator-Container aktiviert. Wenn Benutzer eines der Fenster in einem Accordion-Steuerelement auswählen, können sie also mit der Zurück-Schaltfläche oder dem entsprechenden Navigationsbefehl zum vorhergehenden Fenster zurückkehren. Die Verlaufsverwaltung ist standardmäßig für den ViewStack-Navigatior-Container deaktiviert.
Sie können die Verlaufsverwaltung deaktivieren, indem Sie die Eigenschaft
Sie können außerdem die Verlaufsverwaltung für andere Objekte in einer Anwendung aktivieren, indem Sie die Objekte beim HistoryManager registrieren. Um eine Komponente bei der HistoryManager-Klasse zu registrieren, rufen Sie die
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.managers.IHistoryManagerClient" initialize="mx.managers.HistoryManager.register(this);">Außerdem müssen Sie die
Alle Methoden und Eigenschaften des HistoryManagers sind statisch, sodass Sie keine Instanz davon erstellen müssen.
Wenn eine untergeordnete Komponente Ihrer Komponente die IFocusManagerComponent-Schnittstelle implementiert und nie den Fokus erhalten soll, können Sie zur Optimierung
Dann ignoriert FocusManager diese Komponente und überwacht die Eigenschaften
Hinweis: Dem Objekt kann der Fokus trotzdem programmgesteuert über die
Um den BrowserManager zu verwenden, rufen Sie mit der
Diese Schnittstelle wird von den Flex-Navigator-Containern TabNavigator, Accordion und ViewStack implementiert. Sie muss von allen anderen beim HistoryManager registrierten Komponenten ebenfalls implementiert werden.
public function loadState(state:Object):void { // First, check to see if state is null. When the app is reset // back to its initial state, loadState() is passed null. if (state == null) { myList.selectedIndex = -1; mySearchInput.text = ""; } else { myList.selectedIndex = state.selectedIndex; mySearchInput.text = state.searchString; } }
Der History Manager erfasst die Statusinformationen aller Komponenten und kodiert sie in einem URL-Format. In den meisten Browsern unterliegen URLs einer Längenbeschränkung, sodass die zurückgegebenen Statusinformationen so kurz wie möglich sein sollten.
public function saveState():Object { var state:Object = {}; state.selectedIndex = myList.selectedIndex; state.searchString = mySearchInput.text; return state; }
Jede Anwendung verfügt über einen ISystemManager. Der ISystemManager sendet ein Ereignis, wenn sich die Größe des Anwendungsfensters ändert. (Sie können diese nicht innerhalb der Anwendung ändern, sondern nur über das Fenster des Betriebssystems oder den Browser.) Ihm sind alle Anzeigeelemente in der Anwendung untergeordnet, wie z. B. die mx.core.Application-Hauptinstanz und alle Popups, QuickInfos, Cursor usw. Alle dem ISystemManager untergeordneten Objekte werden als Fenster auf oberster Ebene betrachtet, auch QuickInfos und Cursor.
Der ISystemManager wechselt außerdem den Fokus zwischen Fenstern auf oberster Ebene, wenn mehrere IFocusManagerContainer angezeigt werden und Benutzer mit Komponenten innerhalb der IFocusManagerContainer interagieren.
Alle nicht explizit anderweitig verarbeiteten Tastatur- und Mausaktivitäten werden vom ISystemManager erkannt. Dadurch ist er ideal zur Überwachung von Aktivitäten geeignet, falls dies erforderlich sein sollte.
Wird eine Anwendung in eine andere geladen, wird ein ISystemManager zwar erstellt, verwaltet jedoch kein Anwendungsfenster, abhängig von den Sicherheits- und Domänenregeln. Er ist stattdessen der
Der ISystemManager verwaltet mehrere Listen mit untergeordneten Elementen, je eine für QuickInfos, Cursor und Popup-Fenster. So wird sichergestellt, dass Popup-Fenster über Haupt-Anwendungsfenstern, QuickInfos über Popup-Fenstern und Cursor über QuickInfos angezeigt werden. Wenn Sie die
Ein ISystemManager verfügt über verschiedene Arten von untergeordneten Elementen, wie die Anwendung, Popups, Fenster auf oberster Ebene, QuickInfos und benutzerdefinierte Cursor. Sie können über die Eigenschaft
Das IChildList-Objekt enthält Methoden wie
In modalen Fenstern können Sie nicht in andere Fenster klicken, wodurch normalerweise der FocusManager in diesem Fenster aktiviert wird. Der PopUpManager ändert diese Anzahl durch Erstellen und Löschen modaler Fenster.
Ein ISystemManager verfügt über verschiedene Arten von untergeordneten Elementen, wie die Anwendung, Popups, QuickInfos und benutzerdefinierte Cursor. Sie können über die Eigenschaft
Das IChildList-Objekt enthält Methoden wie
Ein ISystemManager verfügt über verschiedene Arten von untergeordneten Elementen, wie die Anwendung, Popups, QuickInfos und benutzerdefinierte Cursor.
Das IChildList-Objekt enthält Methoden wie
Ein ISystemManager verfügt über verschiedene Arten von untergeordneten Elementen, wie die Anwendung, Popups, Fenster auf oberster Ebene, QuickInfos und benutzerdefinierte Cursor.
Das IChildList-Objekt enthält Methoden wie
QuickInfos werden auf einer eigenen Ebene über allen anderen Elementen mit Ausnahme des Cursors angezeigt.
Normalerweise werden QuickInfos vom ToolTipManager automatisch ein- und ausgeblendet, wenn der Benutzer die Maus über die Objekte führt, für die die Eigenschaft
Dadurch und durch
Diese Methode erstellt eine neue QuickInfo-Instanz und ruft die
Sie müssen den von dieser Methode zurückgegebenen Verweis auf die QuickInfo speichern, um ihn an die
Diese Methode ruft die
Sie sollten diese Methode nicht vom
Diese Einstellung ist nützlich, wenn der Benutzer schnell von einem Steuerelement zum nächsten wechselt. Nach der ersten QuickInfo werden alle folgenden QuickInfos sofort angezeigt, statt abzuwarten. Je kürzer der für
Alle Methoden und Eigenschaften des DragManagers sind statisch, sodass Sie keine Instanz davon erstellen müssen.
Alle Flex-Komponenten unterstützen Drag & Drop-Vorgänge. Flex bietet zusätzliche Unterstützung für Drag & Drop in List-, Tree- und DataGrid-Steuerelementen.
Wenn der Benutzer ein Element mit der Maus auswählt, wird die ausgewählte Komponente als Ziehinitiator bezeichnet. Das während des Ziehvorgangs angezeigte Bild wird als Ziehproxy bezeichnet.
Wenn der Benutzer den Ziehproxy über eine andere Komponente zieht, wird das
Nach Abschluss des Ziehvorgangs wird das
DragManager.acceptDragDrop(Canvas(event.target));
Jede Phase unterscheidet sich von den anderen und alle UIComponents einer Phase werden verarbeitet, bevor die nächste Phase beginnt. Während der UIComponent-Verarbeitung in einer Phase kann es zu Anforderungen zur erneuten UIComponent-Verarbeitung in dieser Phase kommen. Diese Anforderungen werden in eine Warteschlange gestellt und erst beim nächsten Ausführen der Phase berücksichtigt.
Die Übernahme-Phase beginnt mit einem Aufruf der
Die Objekte in der Liste werden in umgekehrter Verschachtelungsreihenfolge verarbeitet, wobei das oberste Objekt in der Verschachtelungsstruktur zuerst aufgerufen wird. Dies entspricht einer Reihenfolge von oben nach unten oder von außen nach innen.
In dieser Phase können Komponenten, deren Inhalte von Eigenschaftseinstellungen abhängen, sich selbst konfigurieren, bevor die Messungs- und die Layoutphase beginnen. Aus Leistungsgründen führt die Methode zum Festlegen einer Komponenteneigenschaft nicht immer die gesamte Aktualisierung des neuen Eigenschaftswerts aus. Stattdessen wird die
Die Messungs-Phase beginnt mit einem Aufruf der
Wurde zuvor die
Die Objekte in der Liste werden in der Reihenfolge der Verschachtelung verarbeitet, wobei das unterste Objekt in der Verschachtelungsstruktur zuerst aufgerufen wird. Dies entspricht einer Reihenfolge von unten nach oben oder innen nach außen.
Die layout-Phase beginnt mit einem Aufruf der
Wurde zuvor die
Die Objekte in der Liste werden in umgekehrter Verschachtelungsreihenfolge verarbeitet, wobei das oberste Objekt in der Verschachtelungsstruktur zuerst aufgerufen wird. Dies entspricht einer Reihenfolge von oben nach unten oder von außen nach innen.
Im Allgemeinen wird die
Beim Starten der Anwendung wird eine einzige LayoutManager-Instanz erstellt und in der Eigenschaft
Es gibt zwei Gründe für die Änderung der Größe eines Objekts:
Im ersten Fall müssen die Maße des Objekts neu berechnet werden Im zweiten Fall müssen die Maße des Objekts nicht neu berechnet werden, da die neue Größe des Objekts bekannt ist. Das übergeordnete Objekt muss jedoch neu gemessen und das Layout muss neu festgelegt werden.
Um sicherzustellen, dass die Werte aktualisiert werden, rufen Sie die
Dann werden die
Schließlich wird die
Bei
Der FocusManager verwaltet den Fokus der Komponentenebene. In Flex ist ein UITextField die einzige Möglichkeit, die Eingabe von Text über die Tastatur zuzulassen. In Flash Player oder AIR ist diesem UITextField der Fokus zugewiesen. Vom Blickwinkel des FocusManagers aus ist der Komponente, die UITextField übergeordnet ist, der Fokus zugewiesen. Daher besteht ein Unterschied zwischen dem Fokus auf Komponentenebene und dem Fokus auf Player-Ebene. Anwendungsentwickler müssen normalerweise nur den Fokus auf Komponentenebene und Komponentenentwickler den Fokus auf Player-Ebene verstehen.
Alle Komponenten, die von einem FocusManager verwaltet werden können, müssen mx.managers.IFocusManagerComponent implementieren. Bei Objekten, deren Fokus auf Player-Ebene verwaltet wird, ist dies nicht erforderlich.
Der FocusManager verwaltet darüber hinaus eine Standardschaltfläche (defaultButton). Hierbei handelt es sich um die Schaltfläche auf einem Formular, die ein click-Ereignis auslöst, wenn die Eingabetaste gedrückt wird, je nachdem, wo sich der Fokus zu diesem Zeitpunkt befindet.
Ein FocusManager verwaltet den Fokus für die untergeordneten Objekte eines IFocusManagerContainers. Er installiert sich während der Ausführung des Konstruktors im IFocusManagerContainer.
Der FocusManager fügt Ereignisprozeduren hinzu, mit denen fokusrelevante Tastatur- und Mauseingaben überwacht werden können.
Der FocusManager entfernt Ereignisprozeduren, mit denen fokusrelevante Tastatur- und Mauseingaben überwacht werden können.
Diese Eigenschaft wird von Flex-Containern verwaltet. Legen Sie sie nicht direkt fest, um die Standardschaltfläche anzugeben.
Der
Standardmäßig ist für diese Eigenschaft
Im Allgemeinen sollte die
Wenn der Titel festgelegt ist, wird der alte Titel im Browser durch den neuen Titel ersetzt.
Um die URL zu speichern, wird eine JavaScript-Methode mit dem Namen
Wenn festgelegt, wird das
Der PopUpManager bietet auch Modalität. Fenster unter einem Popup können beispielsweise keine Mausereignisse erhalten und wenn der Benutzer mit der Maus außerhalb des Fensters klickt, wird ein Ereignis ausgelöst. Der Entwickler hat dabei die Auswahl zwischen dem Schließen des Fensters oder einer Warnungsmeldung.
Beispiel
var tw:TitleWindow = new TitleWindow(); tw.title = "My Title"; mx.managers.PopUpManager.addPopUp(tw, pnl, false);
Erstellt ein Popupfenster mit der
Beachten Sie, dass sich die Position des Popupfensters möglicherweise nicht sofort nach diesem Aufruf ändert, da Flex auf die Messung und das Layout des Popupfensters wartet.
Beispiel
pop = mx.managers.PopUpManager.createPopUp(pnl, TitleWindow, false);
Erstellt ein Popupfenster auf der Basis der TitleWindow-Klasse und durch Verwendung von
Diese Eigenschaft wird von Flex-Containern verwaltet. Legen Sie sie nicht direkt fest, um die Standardschaltfläche anzugeben.
Der
Standardmäßig ist für diese Eigenschaft
Im Allgemeinen sollte die
Jede Anwendung verfügt über einen SystemManager. Der SystemManager sendet ein Ereignis, wenn sich die Größe des Anwendungsfensters ändert. Sie können diese nicht innerhalb der Anwendung ändern, sondern nur über das Fenster des Betriebssystems oder des Browsers. Die übergeordneten Elemente deaktivieren Elemente innerhalb der Anwendungen wie z. B. die mx.core.Application-Instanz und alle Popups, QuickInfos, Cursor usw. Alle untergeordneten Objekte vom SystemManager werden als Fenster auf oberster Ebene betrachtet, auch QuickInfos und Cursor.
Der SystemManager wechselt außerdem den Fokus zwischen Fenstern auf oberster Ebene, wenn mehrere IFocusManagerContainer angezeigt werden und Benutzer mit Komponenten innerhalb der IFocusManagerContainers interagieren.
Alle nicht explizit anderweitig verarbeiteten Tastatur- und Mausaktivitäten werden vom SystemManager erkannt. Dadurch ist er ideal zur Überwachung von Aktivitäten geeignet, falls dies erforderlich sein sollte.
Wird eine Anwendung in eine andere geladen, wird ein SystemManager zwar erstellt, verwaltet jedoch kein Anwendungsfenster, abhängig von den Sicherheits- und Domänenregeln. Er ist stattdessen der
Der SystemManager verwaltet mehrere Listen mit untergeordneten Elementen, je eine für QuickInfos, Cursor und Popup-Fenster. So wird sichergestellt, dass Popup-Fenster über Haupt-Anwendungsfenstern, QuickInfos über Popup-Fenstern und Cursor über QuickInfos angezeigt werden. Wenn Sie die
Der SystemManager ist die erste Anzeigeklasse, die in einer Anwendung erstellt wird. Er erstellt einen
Dies ist der Startpunkt für alle Flex-Anwendungen. Diese Klasse wird als Stammklasse einer Flex SWF-Datei festgelegt. Flash Player instanziiert eine Instanz dieser Klasse, wodurch dieser Konstruktor aufgerufen wird.
Sie können diese Methode nicht direkt aufrufen. Diese Methode wird von untergeordneten Module-Factorys aufgerufen, wenn sie eine RSL in die Anwendungsdomäne der jeweiligen Module-Factory laden.
Beachten Sie, dass diese Anwendung, um die Ladezeit zu verkürzen, nicht den Typ mx.core.Application aufweist. Dies kann jedoch erzwungen werden.
Ein ISystemManager verfügt über verschiedene Arten von untergeordneten Elementen, wie die Anwendung, Popups, Fenster auf oberster Ebene, QuickInfos und benutzerdefinierte Cursor. Sie können über die Eigenschaft
Das IChildList-Objekt enthält Methoden wie
Ein ISystemManager verfügt über verschiedene Arten von untergeordneten Elementen, wie die Anwendung, Popups, QuickInfos und benutzerdefinierte Cursor. Sie können über die Eigenschaft
Das IChildList-Objekt enthält Methoden wie
Ein ISystemManager verfügt über verschiedene Arten von untergeordneten Elementen, wie die Anwendung, Popups, QuickInfos und benutzerdefinierte Cursor.
Das IChildList-Objekt enthält Methoden wie
Ein ISystemManager verfügt über verschiedene Arten von untergeordneten Elementen, wie die Anwendung, Popups, Fenster auf oberster Ebene, QuickInfos und benutzerdefinierte Cursor.
Das IChildList-Objekt enthält Methoden wie
Jede Phase unterscheidet sich von den anderen und alle UIComponents einer Phase werden verarbeitet, bevor die nächste Phase beginnt. Während der UIComponent-Verarbeitung in einer Phase kann es zu Anforderungen zur erneuten UIComponent-Verarbeitung in dieser Phase kommen. Diese Anforderungen werden in eine Warteschlange gestellt und erst beim nächsten Ausführen der Phase berücksichtigt.
Die Übernahme-Phase beginnt mit einem Aufruf der
Die Objekte in der Liste werden in umgekehrter Verschachtelungsreihenfolge verarbeitet, wobei das oberste Objekt in der Verschachtelungsstruktur zuerst aufgerufen wird. Dies entspricht einer Reihenfolge von oben nach unten oder von außen nach innen.
In dieser Phase können Komponenten, deren Inhalte von Eigenschaftseinstellungen abhängen, sich selbst konfigurieren, bevor die Messungs- und die Layoutphase beginnen. Aus Leistungsgründen führt die Methode zum Festlegen einer Komponenteneigenschaft nicht immer die gesamte Aktualisierung des neuen Eigenschaftswerts aus. Stattdessen wird die
Die Messungs-Phase beginnt mit einem Aufruf der
Wurde zuvor die
Die Objekte in der Liste werden in der Reihenfolge der Verschachtelung verarbeitet, wobei das unterste Objekt in der Verschachtelungsstruktur zuerst aufgerufen wird. Dies entspricht einer Reihenfolge von unten nach oben oder innen nach außen.
Die layout-Phase beginnt mit einem Aufruf der
Wurde zuvor die
Die Objekte in der Liste werden in umgekehrter Verschachtelungsreihenfolge verarbeitet, wobei das oberste Objekt in der Verschachtelungsstruktur zuerst aufgerufen wird. Dies entspricht einer Reihenfolge von oben nach unten oder von außen nach innen.
Im Allgemeinen wird die
Beim Starten der Anwendung wird eine einzige LayoutManager-Instanz erstellt und in der Eigenschaft
Es gibt zwei Gründe für die Änderung der Größe eines Objekts:
Im ersten Fall müssen die Maße des Objekts neu berechnet werden Im zweiten Fall müssen die Maße des Objekts nicht neu berechnet werden, da die neue Größe des Objekts bekannt ist. Das übergeordnete Objekt muss jedoch neu gemessen und das Layout muss neu festgelegt werden.
Um sicherzustellen, dass die Werte aktualisiert werden, rufen Sie die
Dann werden die
Schließlich wird die
Bei
Objekte, die an die
Wenn ein Objekt an die
Die ILayoutManagerClient-Schnittstelle wird von der UIComponent- und ProgrammaticSkin-Klasse aufgerufen.
Wenn die Anwendung beispielsweise eine Verarbeitung durchführt, auf deren Abschluss der Benutzer warten muss, können Sie einen speziellen Cursor während der Wartezeit (beispielsweise eine Sanduhr oder ein anderes Bild) anzeigen lassen.
Außerdem können Sie Benutzern durch einen geänderten Cursor mitteilen, welche Aktionen sie ausführen können. So lässt sich beispielsweise anhand unterschiedlicher Cursorbilder anzeigen, dass die Benutzereingabe aktiviert bzw. deaktiviert ist. Als Cursorbild können Sie ein JPEG-, GIF-, PNG- oder SVG-Bild, ein Sprite-Objekt oder eine SWF-Datei verwenden.
Alle Methoden und Eigenschaften des CursorManagers sind statisch, sodass Sie keine Instanz davon erstellen müssen.
In AIR verwendet jede mx.core.Window-Instanz eine eigene CursorManager-Klasse. Statt die statischen Methoden und Eigenschaften der CursorManager-Klasse direkt zu referenzieren, verwenden Sie die
Das Aufrufen dieser Methode wirkt sich nicht auf den Systemcursor aus. Mit der
Das Aufrufen dieser Methode wirkt sich nicht auf den Systemcursor aus. Mit der