Komponenten verwenden - Win

Transcription

Komponenten verwenden - Win
Komponenten verwenden
Marken
Add Life to the Web, Afterburner, Aftershock, Andromedia, Allaire, Animation PowerPack, Aria, Attain, Authorware,
Authorware Star, Backstage, Bright Tiger, Clustercats, ColdFusion, Contribute, Design In Motion, Director, Dream Templates,
Dreamweaver, Drumbeat 2000, EDJE, EJIPT, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, Generator, HomeSite,
JFusion, JRun, Kawa, Know Your Site, Knowledge Objects, Knowledge Stream, Knowledge Track, LikeMinds, Lingo, Live
Effects, MacRecorder-Logo und -Design, Macromedia, Macromedia Action!, Macromedia Flash, Macromedia M-Logo und
-Design, Macromedia Spectra, Macromedia xRes-Logo und -Design, MacroModel, Made with Macromedia, Made with
Macromedia-Logo und -Design, MAGIC-Logo und -Design, Mediamaker, Movie Critic, Open Sesame!, Roundtrip, Roundtrip
HTML, Shockwave, Sitespring, SoundEdit, Titlemaker, UltraDev, Web Design 101, what the web can be und Xtra sind Marken
bzw. in den USA oder anderen Ländern eingetragene Marken von Macromedia, Inc. Andere in dieser Dokumentation erwähnte
Produktnamen, Logos, Designs, Titel, Wörter oder Begriffe sind möglicherweise Marken, Dienstleistungsmarken oder
Markennamen bzw. in den USA oder anderen Ländern eingetragene Marken, Dienstleistungsmarken oder Markennamen von
Macromedia, Inc. oder anderen Unternehmen.
Technologien von Drittanbietern
Dieses Handbuch enthält Verweise auf Websites anderer Anbieter. Macromedia hat keinerlei Einfluss auf die Gestaltung dieser
Websites und übernimmt daher keine Verantwortung für deren Inhalt. Der Aufruf von Websites anderer Anbieter, die in diesem
Handbuch erwähnt werden, geschieht auf eigene Gefahr. Diese Verweise und Links werden lediglich zu Informationszwecken
bereitgestellt und bedeuten nicht, dass Macromedia den Inhalt der Website eines anderen Anbieters billigt oder die
Verantwortung hierfür übernimmt.
Technologie zur Sprachkomprimierung/-dekomprimierung lizenziert von Nellymoser, Inc. (www.nellymoser.com).
Technologie zur Videokomprimierung/-dekomprimierung (Sorenson™ Spark™) lizenziert von
Sorenson Media, Inc.
Opera ®-Browser: Copyright © 1995 - 2002 Opera Software ASA und beteiligte Lieferanten. Alle Rechte vorbehalten.
Gewährleistungsausschluss von Apple
APPLE COMPUTER, INC. ÜBERNIMMT KEINERLEI AUSDRÜCKLICHE ODER STILLSCHWEIGENDE
GARANTIE IM HINBLICK AUF DIE BEILIEGENDE COMPUTERSOFTWARE, IHRE MARKTFÄHIGKEIT ODER
IHRE EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. IN EINIGEN LÄNDERN IST DER AUSSCHLUSS EINER
STILLSCHWEIGENDEN GARANTIE NICHT ZULÄSSIG. DER OBEN GENANNTE AUSSCHLUSS TRIFFT DAHER
IN IHREM FALL MÖGLICHERWEISE NICHT ZU. AUS DIESER GEWÄHRLEISTUNG ERWACHSEN IHNEN
BESTIMMTE RECHTE. JE NACH GERICHTLICHEM ZUSTÄNDIGKEITSBEREICH VERFÜGEN SIE
MÖGLICHERWEISE ÜBER WEITERE RECHTE.
Copyright © 2003 Macromedia, Inc. Alle Rechte vorbehalten. Dieses Handbuch darf ohne vorherige schriftliche
Genehmigung von Macromedia, Inc. weder vollständig noch auszugsweise kopiert, fotokopiert, vervielfältigt, übersetzt
oder in eine elektronische bzw. maschinenlesbare Form übertragen werden.Teilenummer ZFL70M500G
Danksagung
Leitung: Erick Vera
Projektmanagement: Stephanie Gowin, Barbara Nelson
Text: Jody Bleyle, Mary Burger, Kim Diezel, Stephanie Gowin, Dan Harris, Barbara Herbert, Barbara Nelson, Shirley Ong,
Tim Statler
Lektoratsleitung: Rosana Francescato
Lektorat: Mary Ferguson, Mary Kraemer, Noreen Maher, Antonio Padial, Lisa Stanziano, Anne Szabla
Produktionsmanagement: Patrice O’Neill
Mediendesign und -produktion: Adam Barnett, Christopher Basmajian, Aaron Begley, John Francis, Jeff Harmon
Lokalisierung: Tim Hussey, Seungmin Lee, Masayo Noda, Simone Pux, Yuko Yagi, Christian Fedder
Erste Auflage: Oktober 2003
Macromedia, Inc.
600 Townsend St.
San Francisco, CA 94103, USA
INHALTSVERZEICHNIS
EINFÜHRUNG: Erste Schritte mit Komponenten .
......................... 7
Zielpublikum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Komponenten installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Informationen zur Dokumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Typographische Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Begriffserläuterungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Weitere Ressourcen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
KAPITEL 1: Einführung in Komponenten .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Vorteile der Komponenten der Version 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponentenkategorien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponenten-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Was ist neu in den Komponenten der Version 2 . . . . . . . . . . . . . . . . . . . . . . . . . .
Informationen zu kompilierten Clips und SWC-Dateien . . . . . . . . . . . . . . . . . . .
Eingabehilfen und Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
KAPITEL 2: Komponenten verwenden .
12
12
13
13
14
15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Bedienfeld „Komponenten“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponenten im Bedienfeld „Bibliothek“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponenten im Eigenschafteninspektor und im Bedienfeld
„Komponenten-Inspektor“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponenten in der Live-Vorschau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mit SWC-Dateien und kompilierten Clips arbeiten . . . . . . . . . . . . . . . . . . . . . . .
Komponenten in Flash-Dokumente aufnehmen . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponentenparameter festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponenten aus Flash-Dokumenten entfernen . . . . . . . . . . . . . . . . . . . . . . . . .
Codehinweise verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponentenereignisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Benutzerdefinierte Fokusnavigation erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponententiefe in einem Dokument verwalten . . . . . . . . . . . . . . . . . . . . . . . .
Einen Preloader mit Komponenten verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komponenten aus Version 1 für die Architektur von Version 2 aktualisieren . . . . .
17
18
18
20
20
21
24
24
25
25
28
29
29
30
3
KAPITEL 3: Komponenten individuell anpassen . . . . . .
. . . . . . . . . . . . . . . . . . . . 31
Stile zur Farb- und Textanpassung in einer Komponente verwenden . . . . . . . . . . . 31
Themen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Skinning-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
KAPITEL 4: Komponenten-Referenz
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Komponenten der Benutzeroberfläche (UI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Datenkomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Media-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Bildschirme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Accordion-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . 54
Alert-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Button-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
CellRenderer-API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
CheckBox-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
ComboBox-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Datenbindungsklassen (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . 136
DataGrid-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . 171
DataHolder-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . 205
DataProvider-API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
DataSet-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . 218
DateChooser-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . 266
DateField-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . 278
DepthManager-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
FocusManager-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Form-Klasse (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Label-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
List-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Loader-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Media-Komponenten (nur Flash Professional). . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Menu-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
MenuBar-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . 434
NumericStepper-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
PopUpManager-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
ProgressBar-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
RadioButton-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
RDBMSResolver-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . 483
Remote Procedure Call (RPC)-Komponenten-API . . . . . . . . . . . . . . . . . . . . . . . 495
Screen-Klasse (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
ScrollPane-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Slide-Klasse (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
StyleManager-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
TextArea-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
TextInput-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
TransferObject-Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Tree-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
TreeDataProvider-Schnittstelle (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . 604
UIComponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
4
Inhaltsverzeichnis
UIEventDispatcher-Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UIObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Webdienst-Klassen (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WebServiceConnector (nur Flash Professional) . . . . . . . . . . . . . . . . . . . . . . . . . .
Window-Komponente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XMLConnector-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . . .
XUpdateResolver-Komponente (nur Flash Professional) . . . . . . . . . . . . . . . . . . .
KAPITEL 5: Komponenten erstellen
617
619
639
664
675
686
696
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
Neuerungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
In der Flash-Umgebung arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
Komponenten erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
ActionScripts für Komponenten schreiben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Klassen importieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
Übergeordnete Klassen wählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
Konstruktoren schreiben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
Versionsnummern vergeben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
Klassen-, Symbol- und Inhabernamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
get- und set-Methoden definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
Komponenten-Metadaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
Komponentenparameter definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
Kernmethoden implementieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
Ereignisse verarbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
Skinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Stile zuweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
Komponentenzugriff ermöglichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
Komponenten exportieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Arbeit mit Komponenten vereinfachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
Tipps zum Erstellen von Komponenten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
INDEX
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
Inhaltsverzeichnis
5
6
Inhaltsverzeichnis
EINFÜHRUNG
Erste Schritte mit Komponenten
Macromedia Flash MX 2004 und Flash MX Professional 2004 sind professionelle StandardAuthoring-Tools für die Erstellung eindrucksvoller Websites. Rich-Internet-Anwendungen, die
solche Funktionen bereitstellen, basieren auf Komponenten. Bei einer Komponente handelt es
sich um einen Movieclip, dessen Parameter während der Erstellung in Macromedia Flash
festgelegt werden. Mit ActionScript-APIs können Sie die Komponente zur Laufzeit individuell
anpassen. Entwickler haben durch Komponenten die Möglichkeit, Code wieder zu verwenden
und gemeinsam zu nutzen. Außerdem können komplexe Funktionen eingebunden werden, die
von Designern verwendet und individuell angepasst werden können, ohne ActionScript
verwenden zu müssen.
Komponenten basieren auf Version 2 der Macromedia Komponenten-Architektur, mit der Sie
einfach und schnell robuste Anwendungen mit einem einheitlichen Aussehen und Verhalten
erstellen können. In diesem Buch wird beschrieben, wie Anwendungen mit V2-Komponenten
erstellt werden. Darüber hinaus wird die API (Application Programming Interface) der jeweiligen
Komponente erläutert. Das Handbuch enthält praktische Anwendungsbeispiele und
Anweisungen für den Umgang mit Komponenten der Version 2Flash MX 2004 oder
Flash MX Professional 2004 sowie eine Beschreibung der Komponenten-APIs in alphabetischer
Reihenfolge.
Sie können von Macromedia entwickelte Komponenten verwenden, Komponenten anderer
Entwickler herunterladen oder Ihre eigenen Komponenten erstellen.
Zielpublikum
Dieses Handbuch richtet sich an Entwickler, die zur Anwendungserstellung Flash MX 2004 oder
Flash MX Professional 2004 verwenden und mit Hilfe von Komponenten die Entwicklung
beschleunigen möchten. Vorkenntnisse in der Entwicklung von Anwendungen in Macromedia
Flash, der Verwendung von ActionScript und den Funktionen von Macromedia Flash Player
werden vorausgesetzt.
Es wird davon ausgegangen, dass Sie Flash MX 2004 oder Flash MX Professional 2004 bereits
installiert haben und mit diesen Anwendungen umgehen können. Bevor Sie mit den
Komponenten arbeiten, sollten Sie die Lektion „Benutzeroberfläche mit Komponenten erstellen“
(über Hilfe > Anleitungen > Kurzanleitung > Benutzeroberfläche mit Komponenten erstellen)
durcharbeiten.
7
Wenn Sie so wenig ActionScript wie möglich schreiben möchten, können Sie Komponenten in
ein Dokument ziehen, deren Parameter im Eigenschafteninspektor oder im Bedienfeld für den
Komponenten-Inspektor festlegen und Komponenten im Aktionsbedienfeld direkt eine on()Prozedur zuweisen, mit der Komponenteneigenschaften verarbeitet werden.
Möchten Sie allerdings robuste Anwendungen programmieren, können Sie Komponenten
dynamisch erstellen, deren APIs zum Festlegen von Eigenschaften und Aufrufen von Methoden
bei der Ausführung einsetzen und das Listener-Ereignismodell zum Verarbeiten von Ereignissen
verwenden.
Weitere Informationen hierzu finden Sie in Kapitel 2, „Komponenten verwenden“, auf Seite 17.
Systemanforderungen
Für das Arbeiten mit Macromedia-Komponenten müssen neben Flash MX 2004 oder
Flash MX Professional 2004 keine weiteren Anforderungen erfüllt werden.
Komponenten installieren
Eine Auswahl an Macromedia-Komponenten ist automatisch installiert, wenn Sie
Flash MX 2004 oder Flash MX Professional 2004 zum ersten Mal starten. Sie können im
Bedienfeld Komponenten angezeigt werden.
In Flash MX 2004 sind die folgenden Komponenten verfügbar:
•
•
•
•
•
•
•
•
•
•
•
•
•
Button-Komponente
CheckBox-Komponente
ComboBox-Komponente
Label-Komponente
List-Komponente
Loader-Komponente
NumericStepper-Komponente
ProgressBar-Komponente
RadioButton-Komponente
ScrollPane-Komponente
TextArea-Komponente
TextInput-Komponente
Window-Komponente
In Flash MX Professional 2004 sind zusätzlich zu den Komponenten von Flash MX 2004 die
folgenden Komponenten und Klassen verfügbar:
•
•
•
•
•
•
8
Accordion-Komponente (nur Flash Professional)
Alert-Komponente (nur Flash Professional)
Datenbindungsklassen (nur Flash Professional)
DateField-Komponente (nur Flash Professional)
DataGrid-Komponente (nur Flash Professional)
DataHolder-Komponente (nur Flash Professional)
Einführung: Erste Schritte mit Komponenten
•
•
•
•
•
•
•
•
•
•
•
•
•
DataSet-Komponente (nur Flash Professional)
DateChooser-Komponente (nur Flash Professional)
Form-Klasse (nur Flash Professional)
Media-Komponenten (nur Flash Professional)
Menu-Komponente (nur Flash Professional)
MenuBar-Komponente (nur Flash Professional)
RDBMSResolver-Komponente (nur Flash Professional)
Screen-Klasse (nur Flash Professional)
Slide-Klasse (nur Flash Professional)
Tree-Komponente (nur Flash Professional)
WebServiceConnector-Klasse (nur Flash Professional)
XMLConnector-Komponente (nur Flash Professional)
XUpdateResolver-Komponente (nur Flash Professional)
So überprüfen Sie, ob die Komponenten von Flash MX 2004 oder
Flash MX Professional 2004 ordnungsgemäß installiert sind:
1 Starten Sie Flash.
2 Wählen Sie Fenster > Entwicklungs-Bedienfelder > Komponenten, um das Bedienfeld
Komponenten zu öffnen, wenn Sie es nicht bereits geöffnet haben.
3 Wählen Sie UI Components, um die Baumstruktur zu erweitern und die installierten
Komponenten anzuzeigen.
Außerdem können Sie Komponenten von der Website Macromedia Exchange herunterladen.
Wenn Sie von dieser Website heruntergeladene Komponenten installieren möchten, müssen Sie
den Macromedia Extension Manager herunterladen und installieren.
Im Bedienfeld Komponenten werden alle Komponenten angezeigt. Es spielt keine Rolle, ob es
sich dabei um SWC- oder FLA-Dateien (siehe „Informationen zu kompilierten Clips und SWCDateien“ auf Seite 14) handelt. Gehen Sie zum Installieren von Komponenten auf einem
Windows- oder Macintosh-Computer wie in der folgenden Anleitung beschrieben vor.
So installieren Sie Komponenten auf einem Windows- oder Macintosh-Computer:
1 Beenden Sie Flash.
2 Legen Sie die SWC- oder FLA-Datei, in der die Komponente enthalten ist, in folgendem
Ordner auf Ihrer Festplatte ab.
\Program Files\Macromedia\Flash MX 2004\<Sprache>\First Run\Components
(Windows)
■ HD/Applications/Macromedia Flash MX 2004/First Run/Components (Macintosh)
3 Starten Sie Flash.
4 Wählen Sie Fenster > Entwicklungs-Bedienfelder > Komponenten, um die Komponente im
Bedienfeld Komponenten zu öffnen, wenn Sie es nicht bereits geöffnet haben.
■
Komponenten installieren
9
Informationen zur Dokumentation
In diesem Dokument finden Sie detaillierte Informationen dazu, wie Sie mit Komponenten
Flash-Anwendungen entwickeln können. Allgemeine Vorkenntnisse in Macromedia Flash und
ActionScript werden vorausgesetzt. Dokumentationen zu Flash und ähnlichen Produkten sind
separat erhältlich.
• Weitere Informationen zu Macromedia Flash finden Sie in den Hilfen Erste Schritte mit Flash
•
(oder „Erste Schritte“) und „Flash verwenden“ sowie im ActionScript-Referenzhandbuch und
ActionScript-Lexikon.
Weitere Informationen zur Nutzung von Webdiensten mit Flash-Anwendungen finden Sie
unter Flash Remoting verwenden.
Typographische Konventionen
Folgende typographische Konventionen werden in diesem Handbuch verwendet:
• Kursive Schriftart: steht für einen zu ersetzenden Wert (z. B. in einem Verzeichnispfad).
• Codeschriftart: zeigt den ActionScript-Code an.
• Codeschriftart kursiv: zeigt einen ActionScript-Parameter an.
• Fettdruck: zeigt einen Eintrag an.
Hinweis: Der Fettdruck ist nicht identisch mit der Schriftart, die für einlaufende Überschriften
verwendet wird. Die Schriftart für einlaufende Überschriften ist eine Alternative zu
Aufzählungszeichen.
Begriffserläuterungen
Folgende Begriffe werden in diesem Handbuch verwendet:
Laufzeit:
Dieser Begriff wird verwendet, wenn der Code in Flash Player ausgeführt wird.
Authoring-Zeit:
Dieser Begriff wird verwendet, wenn in der Flash-Authoring-Umgebung
gearbeitet wird.
Weitere Ressourcen
Aktuelle Informationen zu Flash, Ratschläge von erfahrenen Anwendern, weiterführende
Themen, Beispiele, Tipps sowie Updates finden Sie auf der regelmäßig aktualisierten Website
Macromedia DevNet. Wir empfehlen Ihnen, öfter einmal auf dieser Website vorbeizuschauen
und sich über neue Entwicklungen und Möglichkeiten zum effizienten Einsatz von Flash zu
informieren.
TechNotes, aktualisierte Dokumentationen und Links zu weiteren Ressourcen finden Sie im
Macromedia Flash Support Center unter www.macromedia.com/go/flash_support_de.
Detaillierte Informationen zu Begriffen, Syntax und Gebrauch von ActionScript finden Sie im
ActionScript-Referenzhandbuch und im ActionScript-Lexikon.
Eine Einführung in die Verwendung der Komponenten finden Sie im Macromedia On DemandSeminar „Flash MX 2004 Family: Using UI Components“ unter www.macromedia.com/
macromedia/events/online/ondemand/index.html.
10
Einführung: Erste Schritte mit Komponenten
KAPITEL 1
Einführung in Komponenten
Bei Komponenten handelt es sich um Movieclips mit Parametern, mit denen Sie die Darstellung
und das Verhalten des Movieclips ändern können. Komponenten bieten Entwicklern
umfangreiche Funktionalität. Bei einer Komponente kann es sich um ein einfaches Steuerelement
für die Benutzeroberfläche (beispielsweise ein Optionsfeld oder ein Kontrollkästchen) oder um
Inhalte handeln (beispielsweise ein Bildlauffenster). Ferner kann eine Komponente nicht-visuell
sein, wie z. B. der FocusManager. Mit dieser Komponente können Sie steuern, welches Objekt in
einer Anwendung den Fokus erhält.
Mit Hilfe von Komponenten kann jeder Benutzer auch ohne fortgeschrittene ActionScriptKenntnisse komplexe Objekte in Macromedia Flash MX 2004 und Macromedia Flash MX
Professional 2004 erstellen. Sie müssen keine benutzerdefinierten Schaltflächen,
Kombinationsschaltflächen und Listen erstellen, sondern können diese Komponenten einfach aus
dem Bedienfeld Komponenten auf die Bühne ziehen, um Ihren Anwendungen die Funktionen
hinzuzufügen. Außerdem können Sie die Darstellung und das Verhalten der Komponenten an
Ihre persönlichen Bedürfnisse beim Entwickeln anpassen.
Komponenten basieren auf Version 2 der Macromedia Komponenten-Architektur, mit der Sie
einfach und schnell robuste Anwendungen mit einem einheitlichen Aussehen und Verhalten
erstellen können. Die Version 2 der Komponenten-Architektur beinhaltet Klassen, auf denen alle
Komponenten basieren, sowie Stile und Skin-Mechanismen, mit denen Sie das Aussehen der
Komponente an Ihre individuellen Bedürfnisse anpassen können. Außerdem bietet die
Architektur ein Broadcaster-/Listener-Ereignisprotokoll, Tiefen- und Fokusverwaltung sowie die
Implementierung von Eingabehilfen und vieles mehr.
Jede Komponente verfügt über vordefinierte Parameter, die Sie während der
Anwendungserstellung in Flash festlegen können. Außerdem verfügt jede Komponente über
eigene ActionScript-Methoden, -Eigenschaften und -Ereignisse, auch API (Application
Programming Interface) genannt. Hiermit können Sie Parameter und weitere Optionen zur
Laufzeit festlegen.
Flash MX 2004 und Flash MX Professional 2004 bieten viele neue Flash-Komponenten und
mehrere neue Versionen von Komponenten aus Flash MX. Eine umfassende Auflistung der in
Flash MX 2004 und Flash MX Professional 2004 verfügbaren Komponenten finden Sie unter
„Komponenten installieren“ auf Seite 8. Auf der Website Macromedia Exchange können Sie
außerdem Komponenten herunterladen, die von Mitgliedern der Flash Community erstellt
wurden.
11
Vorteile der Komponenten der Version 2
Mit Komponenten können Sie Programmierung und Design voneinander trennen. Sie können
außerdem Programmcode wiederverwenden, entweder in von Ihnen erstellten Komponenten
oder durch Herunterladen und Installieren der von anderen Entwicklern erstellten
Komponenten.
Mit Komponenten können Sie Funktionen erstellen, die von Designern in Anwendungen
verwendet werden können. Entwickler können häufig verwendete Funktionen in Komponenten
einbinden, und Designer können die Darstellung und das Verhalten der Komponenten ändern,
indem sie die Parameter im Eigenschafteninspektor oder im Bedienfeld Komponenten-Inspektor
ändern.
Mitglieder der Flash Community können Macromedia Exchange verwenden, um Komponenten
untereinander auszutauschen. Die Verwendung von Komponenten vereinfacht die
Anwendungserstellung, denn Sie müssen nicht mehr jedes Element einer komplexen WebAnwendung einzeln erstellen. Sie können die für Sie wichtigen Komponenten suchen und sie in
ein Flash-Dokument einbinden, um eine neue Anwendung zu erstellen.
Komponenten, die auf Version 2 der Komponenten-Architektur basieren, verfügen über wichtige
Funktionen, wie etwa Stile, Ereignisverarbeitung, Skin-Mechanismen sowie Fokus- und
Tiefenverwaltung. Wenn Sie die ersten zwei Komponenten der Version 2 in eine Anwendung
einbinden, wird das Dokument, in der diese Funktion verfügbar ist, ca. um 25 K größer. Wenn
Sie weitere Komponenten hinzufügen, werden diese 25 K auch für diese Komponenten
verwendet, sodass Ihr Dokument nicht sehr viel größer wird. Informationen zum Aktualisieren
von Komponenten der Version 1 auf Version 2 finden Sie unter „Komponenten aus Version 1 für
die Architektur von Version 2 aktualisieren“ auf Seite 30.
Komponentenkategorien
Die in Flash MX 2004 und Flash MX Professional 2004 verfügbaren Komponenten können in
fünf Kategorien unterteilt werden: Komponenten der Benutzeroberfläche, Datenkomponenten,
Medienkomponenten, Manager und Bildschirme. Steuerelemente für die Benutzeroberfläche
ermöglichen eine Interaktion mit einer Anwendung. Beispiele für solche Steuerelemente sind die
Komponenten RadioButton, CheckBox und TextInput. Mit Datenkomponenten können
Informationen aus Datenquellen geladen und bearbeitet werden. Beispiele für
Datenkomponenten sind WebServiceConnector- und XMLConnector-Komponenten. Mit
Medienkomponenten können Sie Medien wiedergeben und streamen. Beispiele für
Medienkomponenten sind die MediaController-, MediaPlayback- und MediaDisplayKomponente. Manager sind nicht-visuelle Komponenten, mit denen Sie eine Funktion in einer
Anwendung verwalten können, beispielsweise den Fokus oder die Tiefe. In Flash MX 2004 und
Flash MX Professional 2004 sind folgende Komponenten verfügbar: FocusManager,
DepthManager, PopUpManager und StyleManager. Zu den Bildschirmen gehören die
ActionScript-Klassen, mit denen Sie in Flash MX Professional 2004 Formulare und Folien
steuern können. Komplette Listen der einzelnen Kategorien finden Sie in Kapitel 4,
„Komponenten-Referenz“, auf Seite 51.
12
Kapitel 1: Einführung in Komponenten
Komponenten-Architektur
Sie können den Eigenschafteninspektor oder das Bedienfeld Komponenten-Inspektor
verwenden, um die Komponentenparameter zu ändern und die grundlegenden Funktionen der
Komponenten zu nutzen. Wenn Sie die Komponenten besser steuern möchten, müssen Sie APIs
verwenden und grundlegende Kenntnisse darüber besitzen, wie diese erstellt werden.
Komponenten in Flash MX 2004 und Flash MX Professional 2004 wurden mit Version 2 der
Macromedia Komponenten-Architektur erstellt. Die Komponenten dieser Version werden von
Flash Player 6 und Flash Player 7 unterstützt. Sie sind möglicherweise nicht immer mit
Komponenten kompatibel, die mit der Version 1 der Komponenten-Architektur erstellt wurden.
Das schließt alle Komponenten ein, die vor Flash MX 2004 veröffentlicht wurden. Weiterhin
unterstützt Flash Player 7 keine Komponenten aus Version 1. Weitere Informationen finden Sie
unter „Komponenten aus Version 1 für die Architektur von Version 2 aktualisieren“ auf Seite 30.
Komponenten der Version 2 sind im Bedienfeld Komponenten als Symbole kompilierter Clips
(SWC) verfügbar. Bei einem kompilierten Clip handelt es sich um einen KomponentenMovieclip, dessen Code kompiliert wurde. Kompilierte Clips verfügen über eine integrierte LiveVorschau und können nicht bearbeitet werden. Dennoch können Sie ihre Parameter im
Eigenschafteninspektor und im Bedienfeld Komponenten-Inspektor wie jede andere
Komponente bearbeiten. Weitere Informationen hierzu finden Sie unter „Informationen zu
kompilierten Clips und SWC-Dateien“ auf Seite 14.
Komponenten der Version 2 sind in ActionScript 2.0 geschrieben. Jede Komponente ist eine
Klasse, und jede Klasse ist ihrerseits ein ActionScript-Paket. Eine Schaltflächenkomponente ist
beispielsweise eine Instanz der RadioButton-Klasse mit dem Paketnamen mx.controls. Weitere
Informationen zu Paketen finden Sie unter „Pakete verwenden“ im ActionScriptReferenzhandbuch.
Alle mit Version 2 der Macromedia Komponenten-Architektur erstellten Komponenten sind
Unterklassen der Klassen UIObject und UIComponent und übernehmen alle Eigenschaften,
Methoden und Ereignisse dieser Klassen. Manche Komponenten sind Unterklassen anderer
Komponenten. Den Vererbungspfad jeder Komponente finden Sie im jeweiligen Eintrag in
Kapitel 4, „Komponenten-Referenz“, auf Seite 51.
Alle Komponenten verwenden außerdem dasselbe Ereignismodell, CSS-basierte Stile sowie
integrierte Skin-Mechanismen. Weitere Informationen zu Stilen und Skin-Mechanismen finden
Sie in Kapitel 3, „Komponenten individuell anpassen“, auf Seite 31. Weitere Informationen zur
Ereignisverarbeitung finden Sie in Kapitel 2, „Komponenten verwenden“, auf Seite 17.
Was ist neu in den Komponenten der Version 2
Komponenten-Inspektor:
Mit diesem Bedienfeld können Sie Komponentenparameter während
des Authorings in Macromedia Flash und Macromedia Dreamweaver ändern. (Weitere
Informationen finden Sie unter „Komponenten im Eigenschafteninspektor und im Bedienfeld
„Komponenten-Inspektor““ auf Seite 18.)
Listener-Ereignismodell: Ermöglicht es Listener-Objekten in Funktionen, Ereignisse zu
verarbeiten. (Weitere Informationen finden Sie unter „Komponentenereignisse“ auf Seite 25.)
Skin-Eigenschaften: Ermöglichen es Ihnen, Zustände nur dann zu laden, wenn sie benötigt
werden. (Weitere Informationen finden Sie unter „Skinning-Komponenten“ auf Seite 42.)
Was ist neu in den Komponenten der Version 2
13
CSS-basierte Stile:
Ermöglichen ein einheitliches Aussehen und Verhalten über verschiedene
Anwendungen. (Weitere Informationen finden Sie unter „Stile zur Farb- und Textanpassung in
einer Komponente verwenden“ auf Seite 31.)
Themen: Ermöglichen die Übertragung eines neuen Erscheinungsbildes auf einen Satz von
Komponenten. (Weitere Informationen finden Sie unter „Themen“ auf Seite 39.)
Halo-Thema: Stellt eine gebrauchsfertige, interaktive und flexible Benutzeroberfläche für
Anwendungen zur Verfügung.
Managerklassen: Bieten eine einfache Möglichkeit zur Steuerung von Fokus und Tiefe in einer
Anwendung. Weitere Informationen hierzu finden Sie unter „Benutzerdefinierte Fokusnavigation
erstellen“ auf Seite 28 und „Komponententiefe in einem Dokument verwalten“ auf Seite 29.
UIObject und UIComponent:
Diese grundlegenden Klassen stellen allen Komponenten die
wichtigsten Funktionen zur Verfügung. Weitere Informationen hierzu finden Sie unter
„UIComponent“ auf Seite 610 und „UIObject“ auf Seite 619.
Verwendung von Paketen als SWC-Datei: Ermöglicht eine einfache Verteilung sowie
Programmcode. Weitere Informationen finden Sie in Kapitel 5, „Komponenten erstellen“,
auf Seite 703.
Integrierte Datenbindung: Diese Funktionen stehen im Bedienfeld Komponenten-Inspektor zur
Verfügung. Wenn Sie weitere Informationen zu dieser Funktion benötigen, klicken Sie auf die
Schaltfläche zum Aktualisieren der Hilfe.
Leicht erweiterbare Klassenhierarchie: Ermöglicht es Ihnen, mit ActionScript 2.0 eigene
Namespaces zu erstellen, Klassen bei Bedarf zu importieren und Komponenten durch
Unterklassen zu erweitern. Weitere Informationen finden Sie in Kapitel 5, „Komponenten
erstellen“, auf Seite 703 und im ActionScript-Referenzhandbuch.
Informationen zu kompilierten Clips und SWC-Dateien
Ein kompilierter Clip wird zur Vorkompilierung komplexer Symbole in einem Flash-Dokument
verwendet. Ein Movieclip mit einem komplexen ActionScript-Code, der selten geändert wird,
könnte beispielsweise in einen kompilierten Clip umgewandelt werden. Dementsprechend
würden auch die Befehle Film testen und Veröffentlichen schneller ausgeführt werden können.
Eine SWC-Datei wird zum Speichern und Verteilen von Komponenten verwendet. Wenn Sie
eine SWC-Datei im Ordner First Run\Components ablegen, wird die Komponente im
Bedienfeld Komponenten angezeigt. Wenn Sie eine Komponente aus dem Bedienfeld
Komponenten zur Bühne hinzufügen, wird ein Symbol des kompilierten Clips zur Bibliothek
hinzugefügt.
Weitere Informationen zu SWC-Dateien finden Sie in Kapitel 5, „Komponenten erstellen“,
auf Seite 703.
14
Kapitel 1: Einführung in Komponenten
Eingabehilfen und Komponenten
Die Nachfrage nach barrierefreien Webinhalten wächst stetig an. Visuelle Inhalte in FlashAnwendungen können Benutzern mit Sehschwächen mit Hilfe eines Bildschirmleseprogramms
bereitgestellt werden. Diese Software liefert eine gesprochene Beschreibung des Bildschirminhalts.
Beim Erstellen einer Komponente kann der Autor mit Hilfe von ActionScript die
Kommunikation zwischen der Komponente und einem Bildschirmleseprogramm ermöglichen.
Wenn ein Entwickler anschließend für die Erstellung einer Anwendung in Flash Komponenten
verwendet, kann er jede Komponenteninstanz über das Bedienfeld Eingabehilfen konfigurieren.
Bei den meisten von Macromedia entwickelten Komponenten können Eingabehilfen verwendet
werden. Wenn Sie wissen möchten, ob eine Komponente verfügbar ist, überprüfen Sie den
jeweiligen Eintrag in Kapitel 4, „Komponenten-Referenz“, auf Seite 51. Wenn Sie in Flash eine
Anwendung erstellen, müssen Sie für jede Komponente eine Codezeile hinzufügen
(mx.accessibility.ComponentNameAccImpl.enableAccessibility();) und die Parameter
für die Eingabehilfen im Bedienfeld Eingabehilfen festlegen. Die Funktionsweise der
Eingabehilfen für Komponenten ist mit der aller Flash-Movieclips identisch. Weitere
Informationen finden Sie in der Hilfe „Flash verwenden“ unter „Behindertengerechte Inhalte
erstellen“.
Bei den meisten von Macromedia erstellten Komponenten ist außerdem eine Navigation per
Tastatur möglich. Bei jeder in Kapitel 4, „Komponenten-Referenz“, auf Seite 51 erläuterten
Komponente ist angegeben, ob Sie die Komponente über dieTastatur steuern können oder nicht.
Eingabehilfen und Komponenten
15
16
Kapitel 1: Einführung in Komponenten
KAPITEL 2
Komponenten verwenden
Komponenten sind in Macromedia Flash MX 2004 und Macromedia Flash MX
Professional 2004 vielseitig einsetzbar. Im Bedienfeld Komponenten können Sie die
Komponenten anzeigen und sie während des Authorings einem Dokument hinzufügen. Wenn
einem Dokument eine Komponente hinzugefügt wurde, können Sie deren Eigenschaften im
Eigenschafteninspektor oder im Bedienfeld Komponenten-Inspektor anzeigen. Die Verwendung
von Ereignis-Listenern und die Ereignisverarbeitung mit Hilfe von ActionScript ermöglicht eine
Kommunikation der Komponenten untereinander. Außerdem können Sie die Komponententiefe
in einem Dokument verwalten und festlegen, wann eine Komponente den Fokus erhält.
Bedienfeld „Komponenten“
Alle verfügbaren Komponenten sind im Bedienfeld Komponenten aufgeführt. Wenn Sie
Flash MX 2004 oder Flash MX Professional 2004 installieren und zum ersten Mal starten,
werden die Komponenten im Ordner Macromedia\Flash 2004\de\First Run\Components
(Windows) bzw. Macromedia Flash 2004/en/First Run/Components (Macintosh) im
Bedienfeld Komponenten angezeigt.
So rufen Sie das Bedienfeld „Komponenten“ auf:
• Wählen Sie Fenster > Entwicklungs-Bedienfelder > Komponenten.
17
Komponenten im Bedienfeld „Bibliothek“
Wenn Sie einem Dokument eine Komponente hinzugefügt haben, wird diese im Bedienfeld
Bibliothek als Symbol eines kompilierten Clips (SWC-Datei) angezeigt.
Eine ComboBox-Komponente im Bedienfeld „Bibliothek“.
Sie können jederzeit weitere Instanzen einer Komponente in Ihr Dokument einfügen, indem Sie
das Komponentensymbol aus der Bibliothek auf die Bühne ziehen.
Weitere Informationen zu kompilierten Clips finden Sie unter „Mit SWC-Dateien und
kompilierten Clips arbeiten“ auf Seite 20.
Komponenten im Eigenschafteninspektor und im Bedienfeld
„Komponenten-Inspektor“
Nachdem Sie einem Flash-Dokument eine Instanz einer Komponente hinzugefügt haben,
können Sie die Informationen zu dieser Instanz im Eigenschafteninspektor festlegen und
anzeigen. Zum Erstellen einer Instanz einer Komponente ziehen Sie die gewünschte Komponente
aus dem Bedienfeld Komponenten auf die Bühne, weisen ihr im Eigenschafteninspektor einen
Namen zu und stellen in den Feldern der Registerkarte Parameter die gewünschten
Instanzparameter ein. Sie können die Parameter einer Komponenteninstanz auch im Bedienfeld
Komponenten-Inspektor festlegen. Es spielt keine Rolle, in welchem Bedienfeld Sie die
Parameter festlegen. Wählen Sie das Bedienfeld, das Sie persönlich bevorzugen. Weitere
Informationen zum Festlegen von Parametern finden Sie unter „Komponentenparameter
festlegen“ auf Seite 24.
18
Kapitel 2: Komponenten verwenden
So zeigen Sie Informationen zu einer Komponenteninstanz im Eigenschafteninspektor an:
1 Wählen Sie Fenster > Eigenschaften.
2 Wählen Sie auf der Bühne die Instanz einer Komponente aus.
3 Klicken Sie auf die Registerschaltfläche Parameter, um die Parameter anzuzeigen.
So zeigen Sie die Parameter einer Komponenteninstanz im Bedienfeld „KomponentenInspektor“ an:
1 Wählen Sie Fenster > Entwicklungs-Bedienfelder > Komponenten-Inspektor.
2 Wählen Sie auf der Bühne die Instanz einer Komponente aus.
3 Klicken Sie auf die Registerschaltfläche Parameter, um die Parameter anzuzeigen.
Komponenten im Eigenschafteninspektor und im Bedienfeld „Komponenten-Inspektor“
19
Komponenten in der Live-Vorschau
Mit Hilfe der standardmäßig aktivierten Funktion Live-Vorschau können Sie Komponenten so
auf der Bühne anzeigen, wie Sie nach der Veröffentlichung des Flash-Objekts aussehen werden,
und können damit in etwa die Größe der Komponenten einschätzen. Die Live-Vorschau gibt je
nach Komponente verschiedene Parameter wieder. Welche Komponentenparameter in der LiveVorschau wiedergegeben werden, können Sie in den einzelnen Einträgen zu den Komponenten in
Kapitel 4, „Komponenten-Referenz“, auf Seite 51 nachlesen. Die Funktionsweise einer
Komponente lässt sich in der Live-Vorschau nicht überprüfen. Verwenden Sie für einen
Funktionstest stattdessen den Befehl Steuerung > Film testen.
Button-Komponente bei aktivierter Live-Vorschau
Button-Komponente bei deaktivierter Live-Vorschau
So schalten Sie die Live-Vorschau ein und aus:
• Wählen Sie Steuerung > Live-Vorschau aktivieren. Ein Häkchen neben der Option zeigt an,
dass sie aktiviert ist.
Weitere Informationen finden Sie in Kapitel 5, „Komponenten erstellen“, auf Seite 703.
Mit SWC-Dateien und kompilierten Clips arbeiten
Bei den in Flash MX 2004 oder Flash MX Professional 2004 verfügbaren Komponenten handelt
es sich nicht um FLA-Dateien, sondern um SWC-Dateien. Das SWC-Dateiformat wird von
Macromedia für Komponenten verwendet. Wenn Sie eine Komponente aus dem Bedienfeld
Komponenten zur Bühne hinzufügen, wird ein Symbol des kompilierten Clips zur Bibliothek
hinzugefügt. Bei einer SWC-Datei handelt es sich um einen kompilierten Clip, der zur Verteilung
exportiert wurde.
Sie können einen Movieclip außerdem in Flash kompilieren und in ein Symbol eines
kompilierten Clips umwandeln. Das Symbol eines kompilierten Clips verhält sich genauso wie
das Symbol des Movieclips, aus dem es kompiliert wurde. Kompilierte Clips lassen sich jedoch
wesentlich schneller anzeigen und veröffentlichen, als Symbole normaler Movieclips. Kompilierte
Clips können nicht bearbeitet werden, verfügen aber über Eigenschaften, die im
Eigenschafteninspektor und im Bedienfeld Komponenten-Inspektor angezeigt werden, und
beinhalten ferner eine Live-Vorschau.
Die in Flash MX 2004 oder Flash MX Professional 2004 enthaltenen Komponenten wurden
bereits in kompilierte Clips umgewandelt. Wenn Sie eine Komponente erstellen, können Sie sie
zur Verteilung als SWC-Datei exportieren. Weitere Informationen hierzu finden Sie in Kapitel 5,
„Komponenten erstellen“, auf Seite 703.
20
Kapitel 2: Komponenten verwenden
So kompilieren Sie ein Movieclip-Symbol:
• Klicken Sie mit der rechten Maustaste (Windows) bzw. bei gedrückter Taste <Ctrl>
(Macintosh) auf den gewünschten Movieclip in der Bibliothek, und wählen Sie die Option In
kompilierten Clip konvertieren.
So exportieren Sie eine SWC-Datei:
• Klicken Sie mit der rechten Maustaste (Windows) bzw. bei gedrückter Taste <Ctrl>
(Macintosh) auf den gewünschten Movieclip in der Bibliothek, und wählen Sie die Option
SWC-Datei exportieren.
Hinweis: Flash MX 2004 und Flash MX Professional 2004 unterstützen weiterhin Komponenten
im FLA-Dateiformat.
Komponenten in Flash-Dokumente aufnehmen
Wenn Sie eine Komponente aus dem Bedienfeld Komponenten auf die Bühne ziehen, wird ein
Symbol des kompilierten Clips zum Bedienfeld Bibliothek hinzugefügt. Wenn ein Symbol eines
kompilierten Clips zur Bibliothek hinzugefügt wurde, können Sie diese Komponente auch zur
Laufzeit einem Dokument hinzufügen, indem Sie die ActionScript-Methode
UIObject.createClassObject() verwenden.
• Einsteiger können Komponenten mit Hilfe des Bedienfelds Komponenten in Flash-
•
•
Dokumente aufnehmen, ihre grundlegenden Parameter im Eigenschafteninspektor oder auf
der Registerkarte Parameter im Bedienfeld Komponenten-Inspektor festlegen und die
Ereignisprozedur on() zur Steuerung von Komponenten verwenden.
Benutzer, die bereits etwas mehr Erfahrung im Umgang mit Flash gesammelt haben, können
die Parameter nach dem Hinzufügen von Komponenten mit Hilfe des Bedienfelds
Komponenten wahlweise im Eigenschafteninspektor oder mit Hilfe von ActionScriptMethoden festlegen oder auch beide Verfahren miteinander kombinieren. Sie können die
Ereignisprozedur on() oder Ereignis-Listener verwenden, um Komponentenereignisse zu
verarbeiten.
Fortgeschrittene Flash-Programmierer können sowohl das Bedienfeld Komponenten als auch
ActionScript-Methoden verwenden, um Komponenten hinzuzufügen und ihre Eigenschaften
festzulegen, oder die Komponenteninstanzen von Fall zu Fall auch ausschließlich mit Hilfe von
ActionScript zur Laufzeit implementieren. Sie können Ereignis-Listener zur Steuerung von
Komponenten verwenden.
Wenn Sie die Skins einer Komponente bearbeiten und später eine weitere Version der
Komponente oder eine andere Komponente hinzufügen möchten, die dieselben Skins verwendet,
können Sie die bearbeiteten Skins entweder übernehmen oder durch einen neuen Satz StandardSkins ersetzen. Beim Ersetzen der bearbeiteten Skins werden alle Komponenten, die diese Skins
verwenden, mit den Standard-Skins aktualisiert. Weitere Informationen zum Bearbeiten von
Skins finden Sie in Kapitel 3, „Komponenten individuell anpassen“, auf Seite 31.
Komponenten in Flash-Dokumente aufnehmen
21
Komponenten mit dem Bedienfeld „Komponenten“ hinzufügen
Nachdem Sie eine Komponente mit Hilfe des Bedienfelds Komponenten in ein Dokument
eingefügt haben, können Sie dem Dokument weitere Instanzen dieser Komponente hinzufügen,
indem Sie die Komponente aus dem Bedienfeld Bibliothek auf die Bühne ziehen. Die
Eigenschaften dieser weiteren Instanzen werden auf der Registerkarte Parameter des
Eigenschafteninspektors oder auf der Registerkarte Parameter im Bedienfeld KomponentenInspektor eingestellt.
So fügen Sie einem Flash-Dokument im Bedienfeld „Komponenten“ eine Komponente
hinzu:
1 Wählen Sie Fenster > Entwicklungs-Bedienfelder > Komponenten.
2 Führen Sie einen der folgenden Schritte aus:
Ziehen Sie eine Komponente aus dem Bedienfeld Komponenten auf die Bühne.
■ Doppelklicken Sie auf eine Komponente im Bedienfeld Komponenten.
Wenn die Komponente als FLA-Datei vorliegt (alle installierten Komponenten aus Version 2
sind SWC-Dateien), und wenn Sie Skins für eine andere Instanz derselben Komponente
bearbeitet haben bzw. für eine andere Komponente, die Skins mit der aktuellen Komponente
teilt, wählen Sie einen der folgenden Schritte:
■ Wählen Sie Vorhandene Elemente nicht ersetzen, um die bearbeiteten Skins beizubehalten
und der neuen Komponente zuzuweisen.
■ Wählen Sie Vorhandene Elemente ersetzen, um alle Skins durch Standard-Skins zu
ersetzen. Sowohl der neuen Komponente als auch allen bereits vorhandenen Versionen
sowie allen Komponenten, die dieselben Skins verwenden, werden die voreingestellten
Standard-Skins zugewiesen.
Wählen Sie die Komponente auf der Bühne aus.
Wählen Sie Fenster > Eigenschaften.
Geben Sie im Eigenschafteninspektor einen Instanznamen für die Komponenteninstanz an.
Klicken Sie auf die Registerkarte Parameter, und legen Sie die Parameter für die Instanz fest.
Weitere Informationen hierzu finden Sie unter „Komponentenparameter festlegen“
auf Seite 24.
Ändern Sie bei Bedarf die Größe der Komponente.
Weitere Informationen zum Ändern der Größe bestimmter Komponententypen finden Sie in
den Einträgen zu den einzelnen Komponenten in Kapitel 4, „Komponenten-Referenz“,
auf Seite 51.
Ändern Sie bei Bedarf die Farbe und Textformatierung der Komponente. Führen Sie zu diesem
Zweck einen oder mehrere der folgenden Schritte aus:
■ Setzen oder ändern Sie einen bestimmten Stileigenschaftswert für eine
Komponenteninstanz mit Hilfe der für alle Komponenten verfügbaren Methode
setStyle(). Weitere Informationen hierzu finden Sie unter UIObject.setStyle().
■ Bearbeiten Sie mehrere Eigenschaften im Stylesheet _global, das allen Komponenten der
Version 2 zugewiesen ist.
■ Erstellen Sie bei Bedarf ein benutzerdefiniertes Stylesheet für bestimmte
Komponenteninstanzen.
Weitere Informationen hierzu finden Sie unter „Stile zur Farb- und Textanpassung in einer
Komponente verwenden“ auf Seite 31.
■
3
4
5
6
7
8
9
22
Kapitel 2: Komponenten verwenden
10 Führen Sie bei Bedarf einen der folgenden Schritte aus, um die Darstellung der Komponente
anzupassen:
■ Zuweisen eines Themas (siehe „Themen“ auf Seite 39).
■ Skins einer Komponente bearbeiten (siehe „Skinning-Komponenten“ auf Seite 42).
Komponenten mit ActionScript hinzufügen
Wenn Sie einem Dokument mit Hilfe von ActionScript eine Komponente hinzufügen möchten,
müssen Sie sie zunächst der Bibliothek hinzufügen.
Sie können ActionScript-Methoden festlegen, um weitere Parameter für dynamisch hinzugefügte
Komponenten festzulegen. Weitere Informationen hierzu finden Sie in Kapitel 4,
„Komponenten-Referenz“, auf Seite 51.
Hinweis: In dieser Anleitung wird vorausgesetzt, dass Sie über ein gewisses Maß an Erfahrung im
Umgang mit ActionScript verfügen.
So fügen Sie einem Flash-Dokument in ActionScript eine Komponente hinzu:
1 Ziehen Sie eine Komponente aus dem Bedienfeld Komponenten auf die Bühne, und löschen
Sie sie.
Die Komponente wird der Bibliothek hinzugefügt.
2 Wählen Sie das Bild in der Zeitleiste aus, in dem Sie die Komponente platzieren möchten.
3 Öffnen Sie das Bedienfeld Aktionen, wenn Sie es nicht bereits geöffnet haben.
4 Rufen Sie die Methode createClassObject() auf, um die Komponenteninstanz zur Laufzeit
zu erstellen.
Diese Methode kann direkt oder aus einer beliebigen Komponenteninstanz aufgerufen werden.
Als Parameter müssen ein Name für die Komponentenklasse, ein Instanzname für die neue
Instanz, eine Tiefe sowie ein optionales Initialisierungsobjekt festgelegt werden. Das
Klassenpaket können Sie im Parameter className wie folgt festlegen:
createClassObject(mx.controls.CheckBox, "cb", 5, {label:"Check Me"});
Sie können das Klassenpaket auch wie folgt importieren:
import mx.controls.CheckBox;
createClassObject(CheckBox, "cb", 5, {label:"Check Me"});
Weitere Informationen hierzu finden Sie unter UIObject.createClassObject().
5 Legen Sie mit Hilfe der ActionScript-Methoden und -Eigenschaften der Komponente weitere
Optionen fest, oder überschreiben Sie die während der Anwendungserstellung festgelegten
Parameter.
Ausführliche Informationen zu den ActionScript-Methoden und -Eigenschaften, die für jede
Komponente verfügbar sind, finden Sie in den Einträgen zur jeweiligen Komponente in
Kapitel 4, „Komponenten-Referenz“, auf Seite 51.
Komponenten in Flash-Dokumente aufnehmen
23
Größe von Komponentenbezeichnungen und Höhe und Breite von
Komponenten
Wenn die Komponenteninstanz, die einem Dokument hinzugefügt wurde, für die Darstellung
ihrer Bezeichnung nicht ausreicht, wird der Text in der Anzeige abgeschnitten. Ist eine
Komponenteninstanz hingegen größer als der Bezeichnungstext, so reagiert die Komponente
auch auf einen Mausklick auf den Teil des aktiven Bereichs, der nicht mit Text ausgefüllt ist.
Die Größe der Komponenten können Sie mit dem Werkzeug Frei transformieren oder mit der
Methode setSize() anpassen. Die Methode setSize() können Sie aus jeder beliebigen
Komponenteninstanz aufrufen (siehe UIObject.setSize()). Wenn Sie die Höhe und Breite
einer Komponente mit Hilfe der ActionScript-Eigenschaften _height und _width anpassen,
wird sie entsprechend größer oder kleiner dargestellt, das Layout ihres Inhalts hierbei jedoch nicht
verändert. Dies kann dazu führen, dass die Komponente während der Filmwiedergabe verzerrt
dargestellt wird. Weitere Informationen zum Ändern der Größe von Komponenten finden Sie in
den Einträgen zur jeweiligen Komponente in Kapitel 4, „Komponenten-Referenz“, auf Seite 51.
Komponentenparameter festlegen
Jede Komponente verfügt über Parameter, deren Einstellungen Sie ändern können, um das
Aussehen und Verhalten der Komponente zu ändern. Ein Parameter ist eine Eigenschaft oder eine
Methode, die im Eigenschafteninspektor oder im Bedienfeld Komponenten-Inspektor angezeigt
wird. Die am häufigsten verwendeten Eigenschaften und Methoden werden als AuthoringParameter angezeigt, während andere mit ActionScript festgelegt werden müssen. Alle Parameter,
die beim Authoring eingestellt werden können, können auch mit ActionScript festgelegt werden.
Wenn Sie einen Parameter mit ActionScript festlegen, wird der Wert überschrieben, den Sie beim
Authoring festgelegt haben.
Alle Komponenten der Version 2 übernehmen die Eigenschaften und Methoden der UIObjectund UIComponent-Klassen. Hierbei handelt es sich um die Eigenschaften und Methoden, die
von allen Komponenten verwendet werden, beispielsweise UIObject.setSize(),
UIObject.setStyle(), UIObject.x und UIObject.y. Jede Komponente verfügt außerdem
über eigene Eigenschaften und Methoden, und einige von ihnen sind als Authoring-Parameter
verfügbar. Die ProgressBar-Komponente verfügt beispielsweise über eine percentCompleteEigenschaft (ProgressBar.percentComplete), wohingegen die NumericStepper-Komponente
über nextValue- und previousValue-Eigenschaften verfügt (NumericStepper.nextValue,
NumericStepper.previousValue).
Komponenten aus Flash-Dokumenten entfernen
Zum Entfernen der Instanzen einer Komponente aus einem Flash-Dokument entfernen Sie die
betreffende Komponente aus der Bibliothek, indem Sie das entsprechende Symbol des
kompilierten Clips löschen.
So entfernen Sie eine Komponente aus einem Dokument:
1 Wählen Sie im Bedienfeld Bibliothek das Symbol des kompilierten Clips (SWC-Datei).
2 Klicken Sie auf die Schaltfläche Löschen am unteren Rand des Bedienfelds Bibliothek, oder
wählen Sie im Optionsmenü des Bedienfelds Bibliothek den Befehl Löschen.
3 Klicken Sie im Dialogfeld Löschen auf die Schaltfläche Löschen, um den Vorgang zu
bestätigen.
24
Kapitel 2: Komponenten verwenden
Codehinweise verwenden
Wenn Sie ActionScript 2 verwenden, können Sie die genaue Bezeichnung einer Variablen
eingeben, wenn sie auf einer integrierten Klasse beruht (einschließlich Komponentenklassen).
Hierdurch zeigt der ActionScript-Editor Codehinweise für die Variable an. Angenommen, Sie
geben Folgendes ein:
import mx.controls.CheckBox;
var meineCheckBox:CheckBox
meineCheckBox.
Sobald Sie den Punkt eingeben, zeigt Flash eine Liste mit Methoden und Eigenschaften an, die
für CheckBox-Komponenten verfügbar sind, da Sie die Variable als CheckBox eingegeben haben.
Weitere Informationen zur Datentypisierung finden Sie unter „Strikte Datentypisierung“ im
ActionScript-Referenzhandbuch. Weitere Informationen zur Verwendung angezeigter
Codehinweise finden Sie unter „Codehinweise verwenden“ im ActionScript-Referenzhandbuch.
Komponentenereignisse
Alle Komponenten verfügen über Ereignisse, die übertragen werden, wenn der Benutzer mit einer
Komponente interagiert oder etwas Bestimmtes mit der Komponente passiert. Wenn Sie ein
Ereignis verarbeiten möchten, schreiben Sie einen ActionScript-Code, der ausgeführt wird, wenn
das Ereignis ausgelöst wird.
Sie können Komponentenereignisse folgendermaßen verarbeiten:
• Verwenden Sie die Komponentenereignisprozedur on().
• Verwenden Sie Ereignis-Listener.
Ereignisprozedur „on()“ verwenden
Am einfachsten können Sie Komponentenereignisse mit der Ereignisprozedur on() verarbeiten.
Sie können die Ereignisprozedur on() einer Komponenteninstanz genauso zuweisen, wie Sie dies
bei Schaltflächen oder Movieclips tun.
Wenn Sie die Ereignisprozedur on() verwenden, wird automatisch das Ereignisobjekt eventObj
erstellt, sobald das Ereignis ausgelöst und an die Prozedur übergeben wird. Das Ereignis-Objekt
verfügt über Eigenschaften, die Informationen zum Ereignis enthalten. An die Prozedur on()
wird immer das Ereignisobjekt eventObj übergeben. Weitere Informationen hierzu finden Sie
unter „UIEventDispatcher-Klasse“ auf Seite 617.
Das Schlüsselwort this in einer on()-Ereignisprozedur einer Komponente verweist auf die
Instanz der Komponente. Wenn beispielsweise der folgende Code der ButtonKomponenteninstanz meineButtonComponent zugewiesen ist, wird
_level0.meineButtonComponent an das Bedienfeld Ausgabe gesendet.
on(click){
trace(this);
}
Komponentenereignisse
25
So verwenden Sie die Ereignisprozedur „on()“:
1 Ziehen Sie eine CheckBox-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Wählen Sie die Komponente aus, und wählen Sie Fenster > Aktionen.
3 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
on(click){
trace("Das Ereignis " + eventObj.type + " wurde übertragen");
}
In die geschweiften Klammern ({}) können Sie einen beliebigen Code eingeben.
4 Wählen Sie Steuerung > Film testen, und aktivieren Sie das Kontrollkästchen, um das Ergebnis
im Bedienfeld Ausgabe anzuzeigen.
Weitere Informationen finden Sie in den einzelnen Einträgen zu den Ereignissen in Kapitel 4,
„Komponenten-Referenz“, auf Seite 51.
Komponentenereignis-Listener verwenden
Am besten verwenden Sie Listener, um Komponentenereignisse zu verarbeiten. Ereignisse werden
von Komponenten übertragen, und jedes Objekt, das dem Ereignis-Broadcaster
(Komponenteninstanz) als Listener zugewiesen ist, kann über das Ereignis benachrichtigt werden.
Der Listener wird einer Funktion zugewiesen, die das Ereignis verarbeitet. Sie können einer
Komponenteninstanz mehrere Listener zuweisen. Außerdem können Sie einen Listener mehreren
Komponenteninstanzen zuweisen.
Wenn Sie ein Ereignisprozedurmodell verwenden möchten, müssen Sie ein Listener-Objekt
erstellen, das über eine Eigenschaft mit dem Namen des Ereignisses verfügt. Die Eigenschaft wird
einer Rückruffunktion zugewiesen. Rufen Sie anschließend die Methode
UIEventDispatcher.addEventListener() für die Komponenteninstanz auf, die das Ereignis
überträgt, und geben Sie ihr den Namen des Ereignisses und den Namen des Listener-Objekts.
Das Aufrufen der Methode UIEventDispatcher.addEventListener() wird als „Registrieren“
oder „Zuweisen“ eines Listener-Objekts bezeichnet, wie das folgende Beispiel veranschaulicht:
listenerObject.eventName = function(evtObj){
// Hier Code eingeben
};
componentInstance.addEventListener("eventName", listenerObject);
Wenn das Schlüsselwort this im obigen Code in einer Rückruffunktion verwendet wird, ist es
nur innerhalb des listenerObject gültig.
Bei dem Parameter evtObj handelt es sich um ein Ereignis-Objekt, das automatisch erstellt wird,
wenn ein Ereignis ausgelöst und an die Rückruffunktion des Listener-Objekts übergeben wird.
Das Ereignis-Objekt verfügt über Eigenschaften, die Informationen zum Ereignis enthalten.
Weitere Informationen hierzu finden Sie unter „UIEventDispatcher-Klasse“ auf Seite 617.
Weitere Informationen zu den Ereignissen, die von Komponenten übertragen werden, finden Sie
in den Einträgen zu den jeweiligen Komponenten in Kapitel 4, „Komponenten-Referenz“,
auf Seite 51.
26
Kapitel 2: Komponenten verwenden
So weisen Sie einen Ereignis-Listener zu:
1 Ziehen Sie eine Button-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Geben Sie im Eigenschafteninspektor den Instanznamen button ein.
3 Ziehen Sie eine TextInput-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
4 Geben Sie im Eigenschafteninspektor den Instanznamen meinText ein.
5 Klicken Sie in der Zeitleiste auf Bild 1.
6 Wählen Sie Fenster > Aktionen.
7 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
form = new Object();
form.click = function(evt){
meinText.text = evt.target;
}
button.addEventListener("click", form);
Die Eigenschaft target des Ereignisobjekts ist ein Verweis auf die Instanz, die das Ereignis
überträgt. Dieser Code zeigt den Wert der Eigenschaft target im Texteingabefeld an.
Zusätzliche Ereignissyntax
Neben einem Listener-Objekt können Sie auch eine Funktion als Listener verwenden. Ein
Listener ist eine Funktion, wenn er nicht zu einem Objekt gehört. Der folgende Code erstellt
beispielsweise die Listener-Funktion meinHandler und weist sie buttonInstance zu:
function meinHandler(eventObj){
if (eventObj.type == "click"){
// Hier Code eingeben
}
}
buttonInstance.addEventListener("click", meinHandler);
Hinweis: Wenn Sie eine Funktion als Listener verwenden, ist das Schlüsselwort this in diesem Fall
buttonInstance, nicht die Zeitleiste, auf der die Funktion definiert ist.
Sie können außerdem Listener-Objekte verwenden, die eine handleEvent-Methode
unterstützen. Unabhängig vom Namen des Ereignisses wird die handleEvent-Methode des
Listener-Objekts aufgerufen. Sie müssen eine if else- oder switch-Anweisung verwenden, um
mehrere Ereignisse zu verarbeiten. Dadurch wird die Syntax allerdings sehr unübersichtlich. Der
folgende Code verwendet beispielsweise eine if else-Anweisung, um die Ereignisse click und
enter zu verarbeiten:
meinObj.handleEvent = function(o){
if (o.type == "click"){
// Hier Code eingeben
} else if (o.type == "enter"){
// Hier Code eingeben
}
}
target.addEventListener("click", meinObj);
target2.addEventListener("enter", meinObj);
Komponentenereignisse
27
Es gibt einen zusätzlichen Syntaxstil für Ereignisse, der nur verwendet werden sollte, wenn Sie
eine Komponente erstellen und wissen, dass ein bestimmtes Objekt der einzige Listener für ein
Ereignis ist. In diesem Fall macht sich der Vorteil des Ereignismodells der Version 2 bemerkbar.
Hier wird eine Methode immer auf der Komponenteninstanz aufgerufen, die sich aus dem
Ereignisnamen plus der Prozedur zusammensetzt. Wenn Sie beispielsweise das Ereignis click
verarbeiten möchten, müssten Sie den folgenden Code eingeben:
componentInstance.clickHandler = function(o){
// Hier Code eingeben
}
Wenn das Schlüsselwort this im obigen Code in einer Rückruffunktion verwendet wird, ist es
nur innerhalb componentInstance gültig.
Weitere Informationen hierzu finden Sie in Kapitel 5, „Komponenten erstellen“, auf Seite 703.
Benutzerdefinierte Fokusnavigation erstellen
Wenn ein Benutzer zur Navigation in einer Flash-Anwendung die Tabulatortaste drückt oder
klickt, bestimmt der FocusManager-Klasse, welche Komponente den Fokus erhält. Es ist nicht
erforderlich, einer Anwendung eine FocusManager-Instanz hinzuzufügen oder einen Code zu
erstellen, um den FocusManager zu aktivieren.
Wenn ein RadioButton-Objekt den Fokus erhält, wird dieses Objekt sowie alle Objekte mit
demselben groupName-Wert vom FocusManager überprüft, und der Fokus wird demjenigen
Objekt gegeben, für das die Eigenschaft selected auf true gesetzt ist.
Jede modale Window-Komponente enthält eine FocusManager-Instanz, sodass die
Steuerelemente in diesem Fenster eine eigene und in sich geschlossene Tabulatorreihenfolge
erhalten. Hierdurch wird verhindert, dass ein Benutzer mit der Tabulatortaste zu Komponenten
in anderen Fenstern gelangt.
Wenn Sie eine Fokusnavigation in einer Anwendung erstellen möchten, setzen Sie die Eigenschaft
auf eine beliebige Komponente (einschließlich Schaltflächen), die den Fokus erhalten
soll. Wenn ein Benutzer die Tabulatortaste drückt, sucht der FocusManager-Klasse nach einem
aktivierten Objekt mit einer tabIndex-Eigenschaft, die höher ist als der aktuelle Wert von
tabIndex. Wenn der FocusManager-Klasse die höchste tabIndex-Eigenschaft erreicht, kehrt er
zu Null zurück. Im folgenden Beispiel erhält zuerst das Objekt comment (TextArea-Komponente
o. Ä.) und anschließend das Objekt okButton den Eingabefokus:
tabIndex
comment.tabIndex = 1;
okButton.tabIndex = 2;
Sie können einen Tabulatorindexwert auch mit Hilfe des Bedienfelds Eingabehilfen zuweisen.
Wenn kein Element auf der Bühne über einen Tabulatorindexwert verfügt, verwendet der
FocusManager die z-Reihenfolge. Die z-Reihenfolge wird in erster Linie durch die Reihenfolge
festgelegt, in der Komponenten auf die Bühne gezogen werden. Sie können die endgültige
z-Reihenfolge jedoch auch mit Hilfe der Befehle Modifizieren, Anordnen, In den Vordergrund
bzw. Hintergrund festlegen.
Wenn eine Komponente in einer Anwendung den Fokus erhalten soll, rufen Sie
auf.
FocusManager.setFocus()
28
Kapitel 2: Komponenten verwenden
Sie können eine Schaltfläche erstellen, die beim Betätigen der Eingabetaste durch den Anwender
den Fokus erhält, indem Sie die Eigenschaft FocusManager.defaultPushButton auf den
Instanznamen der betreffenden Schaltfläche setzen:
FocusManager.defaultPushButton = okButton;
Der FocusManager-Klasse überschreibt das standardmäßige Fokusrechteck von Flash Player und
zeichnet ein angepasstes Fokusrechteck mit abgerundeten Ecken.
Komponententiefe in einem Dokument verwalten
Wenn Sie eine Komponente ober- oder unterhalb eines anderen Objekts in einer Anwendung
positionieren möchten, müssen Sie den DepthManager-Klasse verwenden. Die DepthManagerAPI ermöglicht es Ihnen, UI-Komponenten in einer geeigneten Z-Reihenfolge zu platzieren
(beispielsweise ein Kombinationslistenfeld, das vor anderen Komponenten aufklappt, eine
Einfügemarke, die im Vordergrund angezeigt wird, Dialogfelder, die sich vor Inhalten befinden
usw.)
Der DepthManager hat zwei Hauptaufgaben: Sie können den DepthManager zur Verwaltung der
relativen Tiefenzuweisungen innerhalb eines Dokuments verwenden und zur Verwaltung von
festgelegten Tiefen in der Hauptzeitleiste für Funktionen auf Systemebene, beispielsweise den
Cursor oder QuickInfos.
Rufen Sie die DepthManager-Methoden auf, um die entsprechenden Funktionen zu verwenden
(siehe „DepthManager-Klasse“ auf Seite 295).
Mit dem folgenden Code wird die Komponenteninstanz loader unter die Komponente button
platziert:
loader.setDepthBelow(button);
Einen Preloader mit Komponenten verwenden
Standardmäßig ist für Komponenten die Option In erstes Bild exportieren aktiviert. Dadurch
werden die Komponenten noch vor der Darstellung des ersten Bildes der Anwendung geladen.
Wenn Sie einen Preloader für eine Anwendung erstellen möchten, muss die Option In erstes Bild
exportieren für jedes Symbol eines kompilierten Clips in Ihrer Bibliothek deaktiviert werden.
Hinweis: Wenn Sie zur Anzeige des Fortschritts beim Ladevorgang die ProgressBar-Komponente
verwenden, lassen Sie die Option In erstes Bild exportieren für diese Komponente aktiviert.
Einen Preloader mit Komponenten verwenden
29
Komponenten aus Version 1 für die Architektur von Version 2
aktualisieren
Die Komponenten in Version 2 sind mit verschiedenen Webstandards kompatibel (hinsichtlich
Ereignissen, Stilen, Get-/Set-Eigenschaften usw.) und unterscheiden sich grundlegend von den
entsprechenden Komponenten in Version 1, die mit Macromedia Flash MX veröffentlicht
wurden sowie in den DRKs, die vor Macromedia Flash MX 2004 erschienen sind. Komponenten
aus Version 2 haben andere APIs und wurden in ActionScript 2.0 geschrieben. Die gleichzeitige
Verwendung von Komponenten aus Version 1 und Version 2 in derselben Anwendung kann
daher zu unvorhergesehenen Effekten führen. Informationen zur Aktualisierung von
Komponenten aus Version 1 für die Verwendung in Ereignisverarbeitung, Stilen und Get-/SetZugriff auf Eigenschaften statt auf Methoden finden Sie in Kapitel 5, „Komponenten erstellen“,
auf Seite 703.
Flash-Anwendungen mit Komponenten aus Version 1 funktionieren einwandfrei im Flash
Player 6 und Flash Player 7, wenn Sie für den Flash Player 6 oder den Flash Player 6, Release 65,
veröffentlicht werden. Wenn Sie Ihre Anwendungen dahingehend aktualisieren möchten, dass sie
auch für die Veröffentlichung mit Flash Player 7 funktionieren, müssen Sie Ihren Code auf die
Verwendung der strikten Datentypisierung umstellen. Weitere Informationen finden Sie unter
„Klassen mit ActionScript 2.0 erstellen“ im ActionScript-Referenzhandbuch.
30
Kapitel 2: Komponenten verwenden
KAPITEL 3
Komponenten individuell anpassen
Sie können das Aussehen von Komponenten ändern, wenn Sie sie in verschiedenen
Anwendungen verwenden. In Macromedia Flash MX 2004 und Macromedia Flash MX
Professional 2004 lässt sich dies auf drei verschiedene Arten bewerkstelligen:
• Verwenden Sie die Styles-API.
• Weisen Sie Themen zu.
• Ändern Sie die Skins einer Komponente, oder ersetzen Sie sie.
Die Styles-API (Application Programming Interface) verfügt über Methoden und Eigenschaften,
mit denen Sie die Farbe und Textformatierungen einer Komponente ändern können.
Ein Thema ist eine Sammlung von Stilen und Skins, die das Aussehen einer Komponente
festlegen.
Skins sind Symbole, die zur Anzeige von Komponenten verwendet werden. Skinning bezeichnet
den Prozess, bei dem das Aussehen einer Komponente geändert wird, indem die ursprünglichen
Grafiken geändert oder ersetzt werden. Skins können ein kleiner Teil, beispielsweise eine Ecke
oder Kante eines Rahmens, oder ein zusammengesetzter Teil, beispielsweise das gesamte Bild
einer Schaltfläche im Up-Zustand sein, d. h., wenn nicht auf die Schaltfläche geklickt wurde.
Außerdem können Skins Symbole ohne Grafik sein und einen Code enthalten, der einen Teil der
Komponente zeichnet.
Stile zur Farb- und Textanpassung in einer Komponente
verwenden
Jede Komponenteninstanz verfügt über Stileigenschaften und eine setStyle()- und
getStyle()-Methode (siehe UIObject.setStyle() und UIObject.getStyle()), die Sie zum
Ändern und Zugreifen auf die Stileigenschaften verwenden können. Sie können Stile verwenden,
um eine Komponente wie folgt anzupassen:
• Sie können Stile auf einer Komponenteninstanz festlegen.
Sie können die Farb- und Texteigenschaften einer einzelnen Komponenteninstanz ändern.
Dies ist in einigen Situation hilfreich, kann allerdings auch zeitintensiv sein, wenn Sie einzelne
Eigenschaften für alle Komponenten in einem Dokument festlegen müssen.
31
• Verwenden Sie das Stylesheet _global, mit dem Sie die Stile für alle Komponenten in einem
•
•
Dokument festlegen.
Wenn das gesamte Dokument einheitlich aussehen soll, können Sie Stile in diesem Stylesheet
erstellen.
Erstellen Sie benutzerdefinierte Stylesheets, und wenden Sie sie auf bestimmte
Komponenteninstanzen an.
Außerdem können Sie Komponentengruppen in einem Dokument denselben Stil zuweisen.
Erstellen Sie hierfür benutzerdefinierte Stylesheets, die Sie auf bestimmte Komponenten
anwenden.
Erstellen Sie Standardklassen-Stylesheets.
Sie können außerdem ein Standardklassen-Stylesheet definieren, sodass jede Instanz einer
Klasse das Standardaussehen aufweist.
Änderungen, die Sie an den Stileigenschaften vornehmen, werden beim Anzeigen der
Komponenten auf der Bühne in der Live-Vorschau nicht dargestellt. Weitere Informationen
hierzu finden Sie unter „Komponenten in der Live-Vorschau“ auf Seite 20.
Stile auf einer Komponenteninstanz festlegen
Sie können einen ActionScript-Code erstellen, um Stileigenschaften auf einer beliebigen
Komponenteninstanz festzulegen und abzurufen. Die Methoden UIObject.setStyle() und
UIObject.getStyle() können direkt aus einer beliebigen Komponente aufgerufen werden. Der
folgende Code beispielsweise stellt die Textfarbe auf einer Button-Instanz namens meinButton
ein:
meinButton.setStyle("color", "0xFF00FF");
Obwohl Sie auf die Stile als Eigenschaften (z. B. meinButton.color = 0xFF00FF) direkt
zugreifen können, verwenden Sie am besten die Methoden setStyle() und getStyle(), damit
die Stile korrekt funktionieren. Weitere Informationen hierzu finden Sie unter
„Stileigenschaftswerte festlegen“ auf Seite 37.
Hinweis: Vermeiden Sie es, die Methode UIObject.setStyle() mehrmals nacheinander aufzurufen,
um mehrere Eigenschaften einzustellen. Vielmehr sollten Sie, wenn Sie mehrere Eigenschaften oder
die Eigenschaften mehrerer Komponenteninstanzen ändern möchten, ein benutzerdefiniertes
Stilformat erstellen. Weitere Informationen hierzu finden Sie unter „Stile für bestimmte Komponenten
festlegen“ auf Seite 33.
So legen Sie neue oder geänderte Eigenschaften für eine einzelne Komponenteninstanz
fest:
1 Wählen Sie die gewünschte Komponenteninstanz auf der Bühne aus.
2 Geben Sie ihr im Eigenschafteninspektor den Namen meineComp.
3 Öffnen Sie das Bedienfeld Aktionen, und wählen Sie dann Szene 1 und Ebene 1: Bild 1.
4 Geben Sie den folgenden Code ein, um die Farbe der Instanz in blau zu ändern:
meineComp.setStyle("themeColor", "haloBlue");
Die folgende Syntax legt eine Eigenschaft und einen Wert für eine Komponenteninstanz fest:
instanceName.setStyle("property", value);
5 Wählen Sie Steuerung > Film testen, um das Ergebnis der Änderung zu überprüfen.
Eine Liste der unterstützten Stile finden Sie unter „Unterstützte Stile“ auf Seite 38.
32
Kapitel 3: Komponenten individuell anpassen
Globale Stile festlegen
Das Stylesheet _global ist allen Flash-Komponenten zugewiesen, die mit Version 2 der
Macromedia Komponenten-Architektur erstellt wurden. Das _global-Objekt verfügt über eine
Eigenschaft namens style (_global.style), die eine Instanz von CSSStyleDeclaration ist. Die
Eigenschaft style fungiert als _global-Stylesheet. Wenn Sie einen Eigenschaftswert auf dem
_global-Stylesheet ändern, wirkt sich diese Änderung auf sämtliche in Ihrem Flash-Dokument
enthaltenen Komponenten aus.
Manche Stile sind für die CSSStyleDeclaration einer Komponentenklasse eingestellt (z. B. der Stil
von TextArea- und TextInput-Komponenten). Da das Klassen-Stylesheet bei
der Bestimmung der Stilwerte Vorrang vor dem _global-Stylesheet hat, hätte es keine
Auswirkungen auf TextArea oder TextInput, wenn Sie backgroundColor für das _globalStylesheet einstellen würden. Weitere Informationen hierzu finden Sie unter „Globale Stile,
benutzerdefinierte Stile und Klassenstile im selben Dokument verwenden“ auf Seite 35.
backgroundColor
So ändern Sie eine oder mehrere Eigenschaften im globalen Stylesheet:
1 Stellen Sie sicher, dass das Dokument mindestens eine Komponenteninstanz enthält.
2
3
4
5
Weitere Informationen hierzu finden Sie unter „Komponenten in Flash-Dokumente
aufnehmen“ auf Seite 21.
Erstellen Sie eine neue Ebene in der Zeitleiste, und weisen Sie ihr einen Namen zu.
Wählen Sie einen Rahmen in der neuen Ebene aus, in der bzw. vor der die Komponente
angezeigt wird.
Öffnen Sie das Bedienfeld Aktionen.
Verwenden Sie die folgende Syntax, um beliebige Eigenschaften auf dem _global-Stylesheet zu
ändern. Hierbei brauchen Sie nur diejenigen Eigenschaften anzugeben, die Sie ändern möchten,
wie das folgende Beispiel veranschaulicht:
_global.style.setStyle("color", 0xCC6699);
_global.style.setStyle("themeColor", "haloBlue")
_global.style.setStyle("fontSize",16);
_global.style.setStyle("fontFamily" , "_serif");
Eine Liste der Stile finden Sie unter „Unterstützte Stile“ auf Seite 38.
6 Wählen Sie Steuerung > Film testen, um das Ergebnis der Änderung zu überprüfen.
Stile für bestimmte Komponenten festlegen
Mit Hilfe benutzerdefinierter Stylesheets können Sie einzelnen Komponenten in Ihrem FlashDokument bestimmte Eigenschaften zuweisen. Sie können eine neue Instanz des
CSSStyleDeclaration-Objekts erstellen, einen benutzerdefinierten Stilnamen festlegen und ihn in
die Liste _global.styles (_global.styles.newStyle) aufnehmen, die Eigenschaften und
Werte für den Stil festlegen und einer Instanz zuweisen. Der Zugriff auf das CSSStyleDeclarationObjekt ist nur möglich, wenn Sie mindestens eine Komponenteninstanz auf der Bühne platziert
haben.
Ein benutzerdefiniertes Stilformat lässt sich auf dieselbe Art und Weise bearbeiten wie die
Eigenschaften im _global-Stylesheet. Verwenden Sie die CSSStyleDeclaration-Instanz anstelle des
_global-Stylesheets. Weitere Informationen zum _global-Stylesheet finden Sie unter „Globale
Stile festlegen“ auf Seite 33.
Stile zur Farb- und Textanpassung in einer Komponente verwenden
33
Weitere Informationen zu den Eigenschaften des CSSStyleDeclaration-Objekts finden Sie unter
„Unterstützte Stile“ auf Seite 38. Eine Liste der Stile, die von den einzelnen Komponenten
unterstützt werden, finden Sie in den Einträgen zur jeweiligen Komponente in Kapitel 4,
„Komponenten-Referenz“, auf Seite 51.
So erstellen Sie ein benutzerdefiniertes Stylesheet für bestimmte Komponenten:
1 Stellen Sie sicher, dass das Dokument mindestens eine Komponenteninstanz enthält.
2
3
4
5
Weitere Informationen hierzu finden Sie unter „Komponenten in Flash-Dokumente
aufnehmen“ auf Seite 21.
In diesem Beispiel werden drei Button-Komponenten mit den Instanznamen a, b und c
verwendet. Wenn Sie verschiedene Komponenten verwenden, müssen Sie ihnen im
Eigenschafteninspektor Instanznamen geben und diese Instanznamen in Schritt 9 verwenden.
Erstellen Sie eine neue Ebene in der Zeitleiste, und weisen Sie ihr einen Namen zu.
Wählen Sie einen Rahmen in der neuen Ebene aus, in der bzw. vor der die Komponente
angezeigt wird.
Rufen Sie das Bedienfeld Aktionen im Expertenmodus auf.
Erstellen Sie in einer Anweisung mit der folgenden Syntax eine Instanz des
CSSStyleDeclaration-Objekts, die das neue benutzerdefinierte Stilformat definiert:
var styleObj = new mx.styles.CSSStyleDeclaration;
6 Legen Sie die Eigenschaft styleName des Stylesheets fest, um den Stil zu benennen:
styleObj.styleName = "newStyle";
7 Übernehmen Sie den Stil in die globale Stilliste:
_global.styles.newStyle = styleObj;
Hinweis: Sie können auch ein CSSStyleDeclaration-Objekt erstellen und es einem neuen
Stylesheet zuordnen, indem Sie die folgende Syntax verwenden:
var styleObj = _global.styles.newStyle = new
mx.styles.CSSStyleDeclaration();
8 Verwenden Sie die folgende Syntax, um die Eigenschaften festzulegen, die Sie für das
meinStyle-Stylesheet
definieren möchten:
styleObj.fontFamily = "_sans";
styleObj.fontSize = 14;
styleObj.fontWeight = "bold";
styleObj.textDecoration = "underline";
styleObj.color = 0x336699;
styleObj.setStyle("themeColor", "haloBlue");
9 Verwenden Sie im selben Skriptfenster die folgende Syntax, um die Eigenschaft styleName von
zwei bestimmten Komponenten dem benutzerdefinierten Stylesheet zuzuweisen:
a.setStyle("styleName", "newStyle");
b.setStyle("styleName", "newStyle");
Sie können außerdem auf Stile in einem benutzerdefinierten Stylesheet zugreifen, indem Sie die
Methoden setStyle() und getStyle() verwenden. Der folgende Code legt den Stil
backgroundColor auf dem Stylesheet newStyle fest:
_global.styles.newStyle.setStyle("backgroundColor", "0xFFCCFF");
34
Kapitel 3: Komponenten individuell anpassen
Stile für eine Komponentenklasse festlegen
Sie können ein Klassen-Stylesheet für eine beliebige Komponentenklasse definieren,
beispielsweise Button oder CheckBox, die die Standardstile für jede Instanz dieser Klasse
festlegen. Sie müssen zunächst das Stylesheet erstellen, bevor Sie die Instanzen erstellen. Bei
einigen Komponenten, wie etwa TextArea und TextInput, sind die Klassen-Stylesheets
standardmäßig vordefiniert, da ihre Eigenschaften borderStyle und backgroundColor
individuell angepasst werden müssen.
Der folgende Code erstellt ein Klassen-Stylesheet für eine CheckBox-Komponente und legt blau
als Farbe für das Kontrollkästchen fest:
var o = _global.styles.CheckBox = new mx.styles.CSSStyleDeclaration();
o.color = 0x0000FF;
Sie können außerdem auf Stile in einem Klassen-Stylesheet zugreifen, indem Sie die Methoden
setStyle() und getStyle() verwenden. Der folgende Code legt den Farbstil im RadioButtonStylesheet fest:
_global.styles.RadioButton.setStyle("color", "blue");
Weitere Informationen zu unterstützten Stilen finden Sie unter „Unterstützte Stile“ auf Seite 38.
Globale Stile, benutzerdefinierte Stile und Klassenstile im selben Dokument
verwenden
Wenn Sie einen Stil an nur einer Stelle im Dokument festlegen, wird diese Definition von Flash
verwendet, wenn ein Eigenschaftswert erforderlich ist. In einem Flash-Dokument können jedoch
ein _global-Stylesheet, benutzerdefinierte Stylesheets und Stileigenschaften direkt auf
Komponenteninstanzen und Standardklassen-Stylesheets festgelegt sein. In einem solchen Fall
wird der Eigenschaftswert bestimmt, indem in einer bestimmten Reihenfolge nach der Definition
an all diesen Stellen gesucht wird.
Zunächst wird von Flash nach einer Stileigenschaft in der Komponenteninstanz gesucht. Wenn
der Stil hier nicht festgelegt ist, wird die Eigenschaft styleName der Instanz überprüft, um
festzustellen, ob ihr ein Stylesheet zugewiesen ist.
Wenn der Eigenschaft styleName kein Stylesheet zugewiesen wurde, wird auf dem
Standardklassen-Stylesheet nach der Eigenschaft gesucht. Wenn kein Klassen-Stylesheet
vorhanden ist und die Eigenschaft nicht dessen Wert übernimmt, wird das _global-Stylesheet
überprüft. Wenn die Eigenschaft nicht im _global-Stylesheet definiert ist, ist sie undefined.
Wenn kein Klassen-Stylesheet vorhanden ist und die Eigenschaft dessen Wert übernimmt, wird in
der übergeordneten Instanz nach der Eigenschaft gesucht. Wenn die Eigenschaft hier nicht
definiert ist, wird die Eigenschaft styleName der übergeordneten Instanz überprüft, wenn diese
nicht definiert ist, wird so lange nach übergeordneten Instanzen gesucht, bis die _global-Ebene
erreicht wird. Wenn die Eigenschaft nicht im _global-Stylesheet definiert ist, ist sie undefined.
Mit Hilfe des StyleManager kann in Flash festgestellt werden, ob ein Stil den Wert übernimmt.
Weitere Informationen hierzu finden Sie unter „StyleManager-Klasse“ auf Seite 555.
Hinweis: Der CSS-Wert inherit wird nicht unterstützt.
Stile zur Farb- und Textanpassung in einer Komponente verwenden
35
Farbstileigenschaften
Farbstileigenschaften verhalten sich anders als andere Eigenschaften. Alle Farbeigenschaften
verfügen über einen Namen, der mit „Color“ endet, beispielsweise backgroundColor,
disabledColor und color. Wenn Farbstileigenschaften geändert werden, wird die Farbe
unmittelbar in der Instanz und allen entsprechenden untergeordneten Instanzen geändert. Alle
anderen Stileigenschaftsänderungen markieren das Objekt einfach als ein Objekt, das neu
gezeichnet werden muss. Änderungen werden erst im nächsten Bild angezeigt.
Der Wert einer Farbstileigenschaft kann eine Zahl, eine Zeichenfolge oder ein Objekt sein. Wenn
der Wert eine Zahl ist, gibt sie den RGB-Wert der Farbe als hexadezimale Zahl an (0xRRGGBB).
Wenn der Wert eine Zeichenfolge ist, muss er ein Farbname sein.
Farbnamen sind Zeichenfolgen, die auf häufig verwendete Farben verweisen. Neue Farbnamen
können mit Hilfe des StyleManager hinzugefügt werden (siehe „StyleManager-Klasse“
auf Seite 555). Eine Übersicht über die standardmäßig festgelegten Farbnamen finden Sie in der
folgenden Tabelle:
Farbname
Wert
black
0x000000
white
0xFFFFFF
red
0xFF0000
green
0x00FF00
blue
0x0000FF
magenta
0xFF00FF
yellow
0xFFFF00
cyan
0x00FFFF
Hinweis: Wenn der Farbname nicht definiert ist, kann die Komponente nicht richtig gezeichnet
werden.
Sie können einen beliebigen gültigen ActionScript-Bezeichner verwenden, um Ihre eigenen
Farbnamen zu erstellen, beispielsweise WindowText oder ButtonText. Verwenden Sie den
StyleManager, um neue Farben zu definieren, wie das folgende Beispiel veranschaulicht:
mx.styles.StyleManager.registerColorName("spezial_blau", 0x0066ff);
Die meisten Komponenten können ein Objekt nicht als Farbstileigenschaftswert verarbeiten.
Einige Komponenten können jedoch Farbobjekte verarbeiten, die Farbverläufe oder andere
Farbkombinationen darstellen. Weitere Informationen hierzu finden Sie im Abschnitt „Stile
verwenden“ in den Einträgen zu den einzelnen Komponenten Kapitel 4, „KomponentenReferenz“, auf Seite 51.
36
Kapitel 3: Komponenten individuell anpassen
Sie können Klassen-Stylesheets und Farbnamen verwenden, um die Farben von Text und
Symbolen auf dem Bildschirm problemlos zu steuern. Wenn Sie beispielsweise einen
Konfigurationsbildschirm erstellen möchten, der wie unter Microsoft Windows aussieht, müssen
Sie Farbnamen wie ButtonText und WindowText sowie Klassen-Stylesheets wie Button,
CheckBox und Window definieren. Wenn Sie die Farbstileigenschaften in den Stylesheets auf
ButtonText und WindowText einstellen und eine Benutzeroberfläche bereitstellen, in der der
Benutzer die ButtonText- und WindowText-Werte ändern kann, können Sie dieselben
Farbschemata wie Microsoft Windows, Mac OS und andere Betriebssysteme bieten.
Stileigenschaftswerte festlegen
Sie können die Methode UIObject.setStyle() verwenden, um eine Stileigenschaft in einer
Komponenteninstanz, dem globalen Stylesheet, einem benutzerdefinierten Stylesheet oder einem
Klassen-Stylesheet festzulegen. Der folgende Code legt den Stil color einer Instanz eines
Optionsfelds auf rot ein:
meinRadioButton.setStyle("color", "red");
Der folgende Code legt den Stil color des benutzerdefinierten CheckBox-Stylesheets fest:
_global.styles.CheckBox.setStyle("color", "white");
Die Methode UIObject.setStyle() erkennt, ob ein Stil übernommen wird, und benachrichtigt
die untergeordneten Instanzen, wenn sich deren Stil ändert. Außerdem wird die
Komponenteninstanz benachrichtigt, dass sie automatisch neu gezeichnet werden muss, um den
neuen Stil wiederzugeben. Verwenden Sie daher zum Festlegen oder Ändern von Stilen
setStyle(). Sie können die Erstellung von Stylesheets jedoch optimieren, indem Sie die
Eigenschaften direkt auf einem Objekt festlegen. Weitere Informationen hierzu finden Sie unter
„Globale Stile festlegen“ auf Seite 33, „Stile für bestimmte Komponenten festlegen“ auf Seite 33
und „Stile für eine Komponentenklasse festlegen“ auf Seite 35.
Sie können die Methode UIObject.getStyle() verwenden, um eine Stileigenschaft aus einer
Komponenteninstanz, dem globalen Stylesheet, einem benutzerdefinierten Stylesheet oder einem
Klassen-Stylesheet abzurufen. Der folgende Code ruft den Wert der Farbeigenschaft ab und weist
ihn der Variablen o zu:
var o = meinRadioButton.getStyle("color");
Der folgende Code ruft den Wert einer Stileigenschaft ab, der im _global-Stylesheet definiert ist:
var r = _global.style.getValue("marginRight");
Wenn der Stil nicht definiert ist, gibt getStyle() möglicherweise den Wert undefined zurück.
Dennoch wird von getStyle() erkannt, wie Stileigenschaften übernommen werden. Obwohl es
sich bei Stilen um Eigenschaften handelt, sollten Sie UIObject.getStyle() verwenden, um
darauf zuzugreifen. Sie müssen also nicht wissen, ob der Stil übernommen wird.
Weitere Informationen hierzu finden Sie unter UIObject.getStyle() und
UIObject.setStyle().
Stile zur Farb- und Textanpassung in einer Komponente verwenden
37
Unterstützte Stile
Flash MX 2004 und Flash MX Professional 2004 bieten zwei Themen: Halo (HaloTheme.fla)
und Sample (SampleTheme.fla). Jedes Thema unterstützt verschiedene Stile. Das Sample-Thema
verwendet alle Stile der Stil-Mechanismen der Version 2 und wird bereitgestellt, damit Sie eine
Auswahl dieser Stile in einem Dokument anzeigen können. Das Halo-Thema unterstützt eine
Auswahl der vom Sample-Thema unterstützten Stile.
Die folgenden Stileigenschaften werden von den meisten Komponenten der Version 2 im
Sample-Stil unterstützt. Informationen darüber, welche Halo-Stile von den einzelnen
Komponenten unterstützt werden, finden Sie in Kapitel 4, „Komponenten-Referenz“,
auf Seite 51.
Wenn Sie ungültige Werte eingeben, wird der Standardwert verwendet. Beachten Sie dies, wenn
Sie CSS-Stylesheets wiederverwenden, deren Werte außerhalb des von Macromedia zugelassenen
Wertespektrums liegen.
Komponenten können die folgenden Stile unterstützen:
38
Stil
Beschreibung
backgroundColor
Der Hintergrund einer Komponente. Dies ist der einzige
Farbstil, der den Wert nicht übernimmt. Der Standardwert ist
„transparent“.
borderColor
Der schwarze Bereich eines dreidimensionalen Rahmens oder
der Farbereich eines zweidimensionalen Rahmens. Der
Standardwert ist „0x000000“ (schwarz).
borderStyle
Der Komponentenrahmen: „none“, „inset“, „outset“ oder
„solid“. Dieser Stil übernimmt den Wert nicht. Der Standardwert
ist „solid“.
buttonColor
Das Aussehen einer Schaltfläche und ein Bereich eines
dreidimensionalen Rahmens. Der Standardwert ist
„0xEFEEEF“ (hellgrau).
color
Der Text einer Komponentenbezeichnung. Der Standardwert
ist „0x000000“ (schwarz).
disabledColor
Die Farbe für deaktivierten Text. Die Standardfarbe ist
„0x848384“ (dunkelgrau).
fontFamily
Die Schriftart für Text. Der Standardwert ist „_sans“.
fontSize
Die Punktgröße der Schriftart. Der Standardwert ist 10.
fontStyle
Der Schriftstil: „normal“ oder „italic“. Der Standardwert ist
„normal“.
fontWeight
Die Schriftstärke: „normal“ oder „bold“. Der Standardwert ist
„normal“.
highlightColor
Ein Bereich des dreidimensionalen Rahmens. Der
Standardwert ist „0xFFFFFF“ (weiß).
marginLeft
Eine Zahl, die den linken Textrand kennzeichnet. Der
Standardwert ist 0.
Kapitel 3: Komponenten individuell anpassen
Stil
Beschreibung
marginRight
Eine Zahl, die den rechten Textrand kennzeichnet. Der
Standardwert ist 0.
scrollTrackColor
Der Hauptteil der Bildlaufleiste. Der Standardwert ist
„0xEFEEEF“ (hellgrau).
shadowColor
Ein Bereich des dreidimensionalen Rahmens. Der
Standardwert ist „0x848384“ (dunkelgrau).
symbolBackgroundColor
Die Hintergrundfarbe von Kontrollkästchen und Optionsfeldern.
Der Standardwert ist „0xFFFFFF“ (weiß).
symbolBackgroundDisabledColor Die Hintergrundfarbe von Kontrollkästchen und Optionsfeldern,
wenn diese deaktiviert sind. Der Standardwert ist „0xEFEEEF“
(hellgrau).
symbolBackgroundPressedColor Die Hintergrundfarbe von Kontrollkästchen und Optionsfeldern,
wenn diese aktiviert sind. Der Standardwert ist „0xFFFFFF“
(weiß).
symbolColor
Das Häkchen eines Kontrollkästchens oder der Punkt eines
Optionsfelds. Der Standardwert ist „0x000000“ (schwarz).
symbolDisabledColor
Die Farbe für das Häkchen eines Kontrollkästchens oder für
den Punkt eines Optionsfelds, wenn diese deaktiviert sind. Der
Standardwert ist „0x848384“ (dunkelgrau).
textAlign
Die Textausrichtung: „left“, „right“ oder „center“. Der
Standardwert ist „left“.
textDecoration
Die Textauszeichnung: „none“ oder „underline“. Der
Standardwert ist „none“.
textIndent
Eine Zahl, die den Texteinzug kennzeichnet. Der Standardwert
ist 0.
Themen
Themen sind Sammlungen von Stilen und Skins. Das Standardthema für Flash MX 2004 und
Flash MX Professional 2004 heißt Halo (HaloTheme.fla). Das Halo-Thema wurde entwickelt,
damit Sie Ihren Benutzern ansprechende und ausdrucksstarke Anwendungen zur Verfügung
stellen können. In Flash MX 2004 und Flash MX Professional 2004 ist ein weiteres Thema
namens Sample vorhanden (SampleTheme.fla). Das Sample-Thema bietet Ihnen viele
Experimentiermöglichkeiten mit allen Stilen, die für Komponenten der Version 2 verfügbar sind.
Das Halo-Thema unterstützt nur eine Auswahl aller verfügbaren Stile. Die Themendateien
finden Sie in folgenden Ordnern:
• First Run\ComponentFLA (Windows)
• First Run/ComponentFLA (Macintosh)
Sie können neue Themen erstellen und sie einer Anwendung zuweisen, um das Aussehen und
Verhalten aller Komponenten zu ändern. Sie können beispielsweise ein zwei- oder ein
dreidimensionales Thema erstellen.
Themen
39
Die Komponenten der Version 2 verwenden Skins (Grafiksymbole oder Movieclip-Symbole) für
die Darstellung der Komponenten. Die .as-Datei, die jede Komponente definiert, enthält Code,
der die spezifischen Skins für die Komponente lädt. Sie können problemlos ein neues Thema
erstellen, indem Sie das Halo- oder Sample-Thema kopieren und die Grafiken in den Skins
ändern.
Ein Thema kann außerdem neue Stile enthalten. Sie müssen den ActionScript-Code verwenden,
um ein globales Stylesheet und weitere Stylesheets zu erstellen. Weitere Informationen hierzu
finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente verwenden“
auf Seite 31.
Dokumenten ein Thema zuweisen
Wenn Sie einem Dokument ein neues Thema zuweisen möchten, öffnen Sie die FLA-Datei eines
Themas als externe Bibliothek, und ziehen Sie den Themenordner aus der externen Bibliothek in
die Dokumentbibliothek. In den folgenden Schritten wird dieser Vorgang detailliert beschrieben.
So weisen Sie einem Dokument ein Thema zu:
1 Wählen Sie Datei > Öffnen, und öffnen Sie das Dokument, das Komponenten der Version 2
in Flash verwendet. Wahlweise können Sie auch Datei > Neu wählen und ein neues Dokument
erstellen, das Komponenten der Version 2 verwendet.
2 Wählen Sie Datei > Speichern, und geben Sie der Datei einen eindeutigen Namen,
beispielsweise ThemeApply.fla.
3 Wählen Sie Datei > Importieren > Externe Bibliothek öffnen, und wählen Sie die FLA-Datei
des Themas, das Sie Ihrem Dokument zuweisen möchten.
Wenn Sie kein neues Thema erstellt haben, können Sie das Sample-Thema verwenden, das
sich im Ordner Flash 2004/en/Configuration/SampleFLA befindet.
4 Wählen Sie im Bedienfeld Bibliothek des Themas die Option Flash UI Components 2 >
Themes > MMDefault, und ziehen Sie den Ordner Assets beliebiger Komponenten in Ihrem
Dokument in die Bibliothek von ThemeApply.fla.
Wenn Sie sich nicht sicher sind, welche Komponenten im Dokument enthalten sind, können
Sie den gesamten Ordner Themes auf die Bühne ziehen. Die Skins innerhalb des Ordners
Themes in der Bibliothek werden automatisch den Komponenten im Dokument zugewiesen.
Hinweis: In der Live-Vorschau der Komponenten auf der Bühne wird das neue Thema nicht
wiedergegeben.
5 Wählen Sie Steuerung > Film testen, um das Dokument mit dem neuen, angewendeten Thema
anzuzeigen.
40
Kapitel 3: Komponenten individuell anpassen
Neue Themen erstellen
Wenn Sie das Halo- oder Sample-Thema nicht verwenden möchten, können Sie eines der beiden
Themen ändern, um ein neues Thema zu erstellen.
Einige Skins in den Themen haben eine festgelegte Größe. Sie können deren Größe jedoch
ändern. Hierbei werden die Komponenten automatisch an die veränderte Größe angepasst.
Andere Skins setzen sich aus mehreren, teils statischen, teils bearbeitbaren Bestandteilen
zusammen.
Einige Skins, beispielsweise RectBorder und ButtonSkin, verwenden die ActionScriptZeichnungs-API zum Zeichnen der Grafiken, da dies hinsichtlich Größe und Leistung effizienter
ist. Sie können den ActionScript-Code in solchen Skins als Vorlage verwenden, um die Skins an
Ihre persönlichen Bedürfnisse anzupassen.
So erstellen Sie ein neues Thema:
1 Wählen Sie die FLA-Datei des Themas, die Sie als Vorlage verwenden möchten, und erstellen
2
3
4
5
6
7
8
Sie eine Kopie.
Geben Sie der Kopie einen eindeutigen Namen, beispielsweise MeinThema.fla.
Wählen Sie Datei > MeinThema.fla in Flash öffnen.
Wählen Sie Fenster > Bibliothek, um die Bibliothek aufzurufen.
Doppelklicken Sie auf ein beliebiges Skin-Symbol, das Sie ändern möchten, um es im
Symbolbearbeitungsmodus zu öffnen.
Die Skins befinden sich im Ordner Themes > MMDefault > Component Assets (in diesem
Beispiel Themes > MMDefault > RadioButton Assets).
Ändern Sie das Symbol, oder löschen Sie die Grafik, und erstellen Sie eine neue Grafik.
Möglicherweise müssen Sie Ansicht > Vergrößern auswählen, um die Ansicht zu vergrößern.
Wenn Sie Skins bearbeiten, müssen Sie den Registrierungspunkt beibehalten, damit sie
anschließend korrekt dargestellt werden. Die linke obere Ecke eines bearbeiteten Symbols muss
immer am Punkt (0,0) ausgerichtet sein.
Nachdem Sie die gewünschten Änderungen am Skin-Symbol vorgenommen haben, klicken Sie
auf die Schaltfläche Zurück auf der linken Seite der Infoleiste am oberen Rand der Bühne, um
in den Dokumentbearbeitungsmodus zurückzukehren.
Wiederholen Sie die Schritte 4 bis 6, bis Sie alle gewünschten Skins geändert haben.
Weisen Sie die Datei MeinThema.fla einem Dokument zu, indem Sie die Schritte ausführen,
die im vorherigen Abschnitt „Dokumenten ein Thema zuweisen“ auf Seite 40 beschrieben
wurden.
Themen
41
Skinning-Komponenten
Skins sind Symbole, die von einer Komponente zur Darstellung verwendet werden. Skins können
entweder Grafiksymbole oder Movieclip-Symbole sein. Die meisten Skins enthalten Formen, die
das Aussehen der Komponente darstellen. Einige Skins enthalten nur ActionScript-Code, der die
Komponente im Dokument zeichnet.
Komponenten der Version 2 sind kompilierte Clips, Sie können deren Bestände nicht in der
Bibliothek anzeigen. Dennoch werden FLA-Dateien installiert, die alle Komponenten-Skins
enthalten. Diese FLA-Dateien werden Themen genannt. Jedes Thema hat ein eigenes Aussehen
und Verhalten, aber enthält Skins mit denselben Symbolnamen und Verknüpfungsbezeichnern.
Hierdurch können Sie ein Thema auf die Bühne in einem Dokument ziehen, um dessen
Aussehen zu ändern. Weitere Informationen zu Themen finden Sie unter „Themen“ auf Seite 39.
Sie können FLA-Dateien auch zum Bearbeiten von Komponenten-Skins verwenden. Die Skins
befinden sich im Bedienfeld Bibliothek jeder FLA-Datei eines Themas im Ordner Themes.
Jede Komponente setzt sich aus vielen Skins zusammen. Der Pfeil nach unten der ScrollBarUnterkomponente besteht beispielsweise aus drei Skins: ScrollDownArrowDisabled,
ScrollDownArrowUp und ScrollDownArrowDown. Einige dieser Skins werden von mehreren
Komponenten verwendet. Komponenten, die Bildlaufleisten verwenden (dazu gehören
ComboBox, List und ScrollPane), nutzen gemeinsam die im Ordner ScrollBar Skins abgelegten
Skins. Sie können vorhandene Skins bearbeiten und neue Skins erstellen, um das Aussehen einer
Komponente zu ändern.
Die .as-Datei, die jede Komponentenklasse definiert, enthält Code, der die spezifischen Skins für
die Komponente lädt. Alle Komponenten-Skins verfügen über eine Skin-Eigenschaft, die dem
Verknüpfungsbezeichner eines Skin-Symbols zugewiesen wird. Der gedrückte Zustand für den
Pfeil nach unten der ScrollBar-Komponente hat beispielsweise den Skin-Eigenschaftennamen
downArrowDownName. Der Standardwert der Eigenschaft downArrowDownName ist
ScrollDownArrowDown. Dies ist der Verknüpfungsbezeichner des Skin-Symbols. Sie können
Skins bearbeiten und sie einer Komponente zuweisen, indem Sie diese Skin-Eigenschaften
verwenden. Es ist nicht erforderlich, die .as-Datei der Komponente zu ändern, um deren SkinEigenschaften zu modifizieren. Sie können der Konstruktorfunktion der Komponente die SkinEigenschaftswerte übergeben, wenn die Komponente in Ihrem Dokument erstellt wird.
Wählen Sie eine der folgenden Skinning-Methoden für Komponenten in Abhängigkeit davon,
welche der folgenden Vorgänge Sie ausführen möchten:
• Um alle Skins in einem Dokument durch neue Skins zu ersetzen, wobei jede Komponente
dasselbe Aussehen hat, wenden Sie ein Thema an (siehe „Themen“ auf Seite 39).
Hinweis: Besonders für Einsteiger ist diese Skinning-Methode geeignet, da sie keine
Skripterstellung erfordert.
• Um verschiedene Skins für mehrere Instanzen derselben Komponente zu verwenden,
•
42
bearbeiten Sie die vorhandenen Skins, und legen Sie Skin-Eigenschaften fest (siehe nächster
Abschnitt, „Komponenten-Skins bearbeiten“ auf Seite 43 und „Bearbeitete Skins einer
Komponente zuweisen“ auf Seite 44).
Um Skins in einer Unterkomponente (etwa eine Bildlaufleiste in einer List-Komponente) zu
bearbeiten, erstellen Sie eine Unterklasse der Komponente (siehe „Bearbeitete Skins einer
Unterkomponente zuweisen“ auf Seite 45).
Kapitel 3: Komponenten individuell anpassen
• Ersetzen Sie die Prototyp-Skin-Eigenschaften zur Änderung von Skins, auf die aus der
Hauptkomponente nicht direkt zugegriffen werden kann (etwa auf eine List-Komponente in
einer ComboBox-Komponente) (siehe „Prototyp-Skin-Eigenschaften ändern“ auf Seite 48).
Hinweis: Die oben beschriebenen Methoden sind nach aufsteigendem Schwierigkeitsgrad
aufgelistet.
Komponenten-Skins bearbeiten
Wenn Sie bestimmte Skins für eine Komponenteninstanz verwenden möchten, aber andere Skins
für eine andere Instanz der Komponente, müssen Sie eine FLA-Datei eines Themas öffnen und
ein neues Skin-Symbol erstellen. Komponenten ermöglichen eine einfache Verwendung
verschiedener Skins für verschiedene Instanzen.
So bearbeiten Sie Skins:
1 Wählen Sie Datei > Öffnen, und öffnen Sie die FLA-Datei des Themas, die Sie als Vorlage
verwenden möchten.
2 Wählen Sie Datei > Speichern unter, und geben Sie der Datei einen eindeutigen Namen,
beispielsweise MeinThema.fla.
3 Wählen Sie die Skins aus, die Sie bearbeiten möchten (in diesem Beispiel RadioTrueUp).
4
5
6
7
8
9
Die Skins befinden sich im Ordner Themes > MMDefault > Component Assets (in diesem
Beispiel Themes > MMDefault > RadioButton Assets > States).
Wählen Sie im Optionsmenü der Bibliothek die Option Duplizieren, oder klicken Sie mit der
rechten Maustaste auf das Symbol, und geben Sie dem Symbol einen eindeutigen Namen,
beispielsweise MeinRadioTrueUp.
Klicken Sie im Dialogfeld Symboleigenschaften auf die Schaltfläche Erweitert, und aktivieren
Sie die Option Export für ActionScript.
Ein auf den Symbolnamen abgestimmter Verknüpfungsbezeichner wird automatisch
eingegeben.
Doppelklicken Sie auf die neue Skin in der Bibliothek, um sie im Symbolbearbeitungsmodus
zu öffnen.
Modifizieren Sie den Movieclip, oder löschen Sie ihn, und erstellen Sie einen neuen Movieclip.
Möglicherweise müssen Sie Ansicht > Vergrößern auswählen, um die Ansicht zu vergrößern.
Wenn Sie Skins bearbeiten, müssen Sie den Registrierungspunkt beibehalten, damit sie
anschließend korrekt dargestellt werden. Die linke obere Ecke eines bearbeiteten Symbols muss
immer am Punkt (0,0) ausgerichtet sein.
Nachdem Sie die gewünschten Änderungen am Skin-Symbol vorgenommen haben, klicken Sie
auf die Schaltfläche Zurück auf der linken Seite der Infoleiste am oberen Rand der Bühne, um
in den Dokumentbearbeitungsmodus zurückzukehren.
Wählen Sie Datei > Speichern, und lassen Sie die Datei MeinThema.fla geöffnet. Nun müssen
Sie ein neues Dokument erstellen, in dem die bearbeitete Skin einer Komponente zugewiesen
werden soll.
Weitere Informationen finden Sie im nächsten Abschnitt sowie unter „Bearbeitete Skins einer
Komponente zuweisen“ auf Seite 44, „Bearbeitete Skins einer Unterkomponente zuweisen“
auf Seite 45, und „Prototyp-Skin-Eigenschaften ändern“ auf Seite 48. Informationen zur
Anwendung neuer Skins finden Sie unter „Skinning-Komponenten“ auf Seite 42.
Hinweis: Änderungen, die Sie an Komponenten-Skins vornehmen, werden beim Anzeigen der
Komponenten auf der Bühne in der Live-Vorschau nicht dargestellt.
Skinning-Komponenten
43
Bearbeitete Skins einer Komponente zuweisen
Wenn Sie eine Skin bearbeitet haben, müssen Sie sie einer Komponente in einem Dokument
zuweisen. Sie können entweder die Methode createClassObject() verwenden, um die
Komponenteninstanzen dynamisch zu erstellen, oder die Komponenteninstanzen manuell auf der
Bühne platzieren. Je nachdem, wie Sie die Komponenten in ein Dokument einfügen, können Sie
zwei verschiedene Methoden verwenden, um Skins Komponenteninstanzen zuzuweisen.
So erstellen Sie eine Komponente dynamisch und übernehmen eine bearbeitete Skin:
1 Wählen Sie Datei > Neu, um ein neues Flash-Dokument zu erstellen.
2 Wählen Sie Datei > Speichern, und geben Sie der Datei einen eindeutigen Namen,
beispielsweise DynamicSkinning.fla.
3 Ziehen Sie beliebige Komponenten vom Bedienfeld Komponenten auf die Bühne,
einschließlich der Komponente, deren Skin Sie bearbeitet haben (in diesem Beispiel die
RadioButton-Komponente), und löschen Sie sie.
Hierdurch werden die Symbole der Bibliothek des Dokuments hinzugefügt, aber sie werden
nicht im Dokument angezeigt.
4 Ziehen Sie MeinRadioTrueUp und andere benutzerdefinierte Symbole aus der Datei
MeinThema.fla auf die Bühne der Datei DynamicSkinning.fla, und löschen Sie sie.
Hierdurch werden die Symbole der Bibliothek des Dokuments hinzugefügt, aber sie werden
nicht im Dokument angezeigt.
5 Öffnen Sie das Bedienfeld Aktionen, und geben Sie in Bild 1 Folgendes ein:
import mx.controls.RadioButton
createClassObject(RadioButton, "meinRadio", 0,
{trueUpIcon:"MeinRadioTrueUp", label: "Mein Radio Button"});
6 Wählen Sie Steuerung > Film testen.
So fügen Sie eine Komponente manuell der Bühne hinzu und übernehmen eine bearbeitete
Skin:
1 Wählen Sie Datei > Neu, um ein neues Flash-Dokument zu erstellen.
2 Wählen Sie Datei > Speichern, und geben Sie der Datei einen eindeutigen Namen,
3
4
5
6
beispielsweise ManualSkinning.fla.
Ziehen Sie Komponenten vom Bedienfeld Komponenten auf die Bühne, einschließlich der
Komponente, deren Skin Sie bearbeitet haben (in diesem Beispiel die RadioButtonKomponente).
Ziehen Sie MeinRadioTrueUp und andere benutzerdefinierte Symbole von der Datei
MeinThema.fla auf die Bühne der Datei ManualSkinning.fla, und löschen Sie sie.
Hierdurch werden die Symbole der Bibliothek des Dokuments hinzugefügt, aber sie werden
nicht im Dokument angezeigt.
Wählen Sie die RadioButton-Komponente auf der Bühne, und öffnen Sie das Bedienfeld
Aktionen.
Weisen Sie der RadioButton-Instanz den folgenden Code zu:
onClipEvent(initialize){
trueUpIcon = "MeinRadioTrueUp";
}
7 Wählen Sie Steuerung > Film testen.
44
Kapitel 3: Komponenten individuell anpassen
Bearbeitete Skins einer Unterkomponente zuweisen
In manchen Fällen möchten Sie möglicherweise die Skins von Unterkomponenten einer
Komponente ändern, obwohl die Skin-Eigenschaften nicht direkt verfügbar sind. Beispielsweise
können Sie die Skins der Bildlaufleiste in einer List-Komponente nicht direkt ändern. Der
folgende Code ermöglicht den Zugriff auf die Skins für die Bildlaufleiste. Alle Bildlaufleisten, die
nach der Ausführung dieses Codes erstellt werden, verfügen auch über die neuen Skins.
Wenn eine Komponente aus Unterkomponenten besteht, werden die Unterkomponenten wie in
den Einträgen der einzelnen Komponenten in Kapitel 4, „Komponenten-Referenz“, auf Seite 51
identifiziert.
So weisen Sie einer Unterkomponente eine neue Skin hinzu:
1 Führen Sie die unter „Komponenten-Skins bearbeiten“ auf Seite 43 beschriebenen Schritte aus,
2
3
4
5
6
bearbeiten Sie jedoch eine ScrollBar-Skin. Bearbeiten Sie in diesem Beispiel die
ScrollDownArrowDown-Skin, und benennen Sie sie in MeinScrollDownArrowDown um.
Wählen Sie Datei > Neu, um ein neues Flash-Dokument zu erstellen.
Wählen Sie Datei > Speichern, und geben Sie der Datei einen eindeutigen Namen,
beispielsweise SubcomponentProject.fla.
Doppelklicken Sie auf die List-Komponente im Bedienfeld Komponenten, um sie zur Bühne
hinzuzufügen, und drücken Sie die Rücktaste, um sie von der Bühne zu entfernen.
Hierdurch werden die Komponenten dem Bedienfeld Bibliothek hinzugefügt, aber sie werden
nicht im Dokument angezeigt.
Ziehen Sie MeinScrollDownArrowDown und andere bearbeitete Symbole der Datei
MeinThema.fla auf die Bühne der Datei SubcomponentProject.fla, und löschen Sie sie.
Hierdurch werden die Komponenten dem Bedienfeld Bibliothek hinzugefügt, aber sie werden
nicht im Dokument angezeigt.
Führen Sie einen der folgenden Schritte aus:
■ Wenn Sie alle Bildlaufleisten in einem Dokument ändern möchten, geben Sie den
folgenden Code in das Bedienfeld Aktionen in Bild 1 der Zeitleiste ein:
import mx.controls.List
import mx.controls.scrollClasses.ScrollBar
ScrollBar.prototype.downArrowDownName = "MeinScrollDownArrowDown";
Dann haben Sie zum einen die Möglichkeit, den folgenden Code in Bild 1 einzutragen, um
eine Liste dynamisch zu erstellen.
createClassObject(List, "meineListBox", 0, {dataProvider:
["AL","AR","AZ", "CA","HI","ID", "KA","LA","MA"]});
■
Zum anderen können Sie eine List-Komponente aus der Bibliothek auf die Bühne ziehen.
Wenn Sie eine bestimmte Bildlaufleiste in einem Dokument ändern möchten, geben Sie
den folgenden Code in das Bedienfeld Aktionen in Bild 1 der Zeitleiste ein:
import mx.controls.List
import mx.controls.scrollClasses.ScrollBar
var oldName = ScrollBar.prototype.downArrowDownName;
ScrollBar.prototype.downArrowDownName = "MeinScrollDownArrowDown";
createClassObject(List, "meineList1", 0, {dataProvider: ["AL","AR","AZ",
"CA","HI","ID", "KA","LA","MA"]});
meineList1.redraw(true);
ScrollBar.prototype.downArrowDownName = oldName;
Skinning-Komponenten
45
Hinweis: Sie müssen ausreichend Daten festlegen, damit die Bildlaufleisten angezeigt werden.
Wahlweise können Sie auch die Eigenschaft vScrollPolicy auf true setzen.
7 Wählen Sie Steuerung > Film testen.
Sie können auch Unterkomponenten-Skins für alle Komponenten in einem Dokument festlegen,
indem Sie die Skin-Eigenschaft auf dem prototype-Objekt der Unterkomponente im
#initclip-Bereich eines Skin-Symbols festlegen. Weitere Informationen zum Prototypobjekt
finden Sie unter Function.prototype im ActionScript-Lexikon.
So verwenden Sie „#initclip“, um eine bearbeitete Skin allen Komponenten in einem
Dokument zuzuweisen:
1 Führen Sie die unter „Komponenten-Skins bearbeiten“ auf Seite 43 beschriebenen Schritte aus,
2
3
4
5
6
7
bearbeiten Sie jedoch eine ScrollBar-Skin. Bearbeiten Sie in diesem Beispiel die
ScrollDownArrowDown-Skin, und benennen Sie sie in MeinScrollDownArrowDown um.
Wählen Sie Datei > Neu, und erstellen Sie ein neues Flash-Dokument. Speichern Sie es mit
einem eindeutigen Namen, z. B. SkinsInitExample.fla.
Wählen Sie aus der Bibliothek des bearbeiteten Themenbeispiels das
MeinScrollDownArrowDown-Symbol, ziehen Sie es auf die Bühne von SkinsInitExample.fla,
und löschen Sie es.
Damit ist das Symbol der Bibliothek hinzugefügt worden, ohne dass es auf der Bühne sichtbar
wird.
Wählen Sie MeinScrollDownArrowDown aus der Bibliothek von SkinsInitExample.fla, und
wählen Sie aus dem Optionsmenü die Option Verknüpfung.
Aktivieren Sie das Kontrollkästchen Export für ActionScript. Klicken Sie auf OK.
Die Option In erstes Bild exportieren wird automatisch aktiviert.
Doppelklicken Sie auf die neue Skin in der Bibliothek, um sie im Symbolbearbeitungsmodus
zu öffnen.
Geben Sie den folgenden Code in Bild 1 des MeinScrollDownArrowDown-Symbols ein:
#initclip 10
import mx.controls.scrollClasses.ScrollBar;
ScrollBar.prototype.downArrowDownName = "MeinScrollDownArrowDown";
#endinitclip
8 Sie können dem Dokument auf eine der folgenden Arten eine List-Komponente hinzufügen.
■
■
Ziehen Sie eine List-Komponente aus dem Bedienfeld Komponenten auf die Bühne. Geben
Sie eine ausreichende Anzahl Label-Parameter ein, damit die vertikale Bildlaufleiste
angezeigt wird.
Ziehen Sie eine List-Komponente aus dem Bedienfeld Komponenten auf die Bühne, und
löschen Sie sie. Geben Sie folgenden Code in Bild 1 der Hauptzeitleiste von
SkinsInitExample.fla ein:
createClassObject(mx.controls.List, "meineListBox1", 0, {dataProvider:
["AL","AR","AZ", "CA","HI","ID", "KA","LA","MA"]});
Hinweis: Geben Sie ausreichend Daten ein, damit die vertikale Bildlaufleiste angezeigt wird,
oder setzen Sie vScrollPolicy auf true.
Im folgenden Beispiel wird beschrieben, wie Sie auf ein Objekt, das sich bereits auf der Bühne
befindet, eine Skinning-Methode anwenden. In diesem Beispiel werden Skinning-Methoden nur
auf Listen angewendet. Die Anwendung von Skinning-Methoden auf TextArea- oder ScrollPaneLaufleisten ist nicht möglich.
46
Kapitel 3: Komponenten individuell anpassen
So verwenden Sie „#initclip“, um eine bearbeitete Skin bestimmten Komponenten in einem
Dokument zuzuweisen:
1 Führen Sie die unter „Komponenten-Skins bearbeiten“ auf Seite 43 beschriebenen Schritte aus,
2
3
4
5
6
7
bearbeiten Sie jedoch eine ScrollBar-Skin. Bearbeiten Sie in diesem Beispiel die
ScrollDownArrowDown-Skin, und benennen Sie sie in MeinScrollDownArrowDown um.
Wählen Sie Datei > Neu, und erstellen Sie ein Flash-Dokument.
Wählen Sie Datei > Speichern, und geben Sie der Datei einen eindeutigen Namen,
beispielsweise MeinVScrollTest.fla.
Ziehen Sie MeinScrollDownArrowDown aus der Themenbibliothek in die Bibliothek von
MeinVScrollTest.fla.
Wählen Sie Einfügen > Neues Symbol, und geben Sie diesem einen eindeutigen Namen,
beispielsweise MeineVScrollBar.
Aktivieren Sie das Kontrollkästchen Export für ActionScript. Klicken Sie auf OK.
Die Option In erstes Bild exportieren wird automatisch aktiviert.
Geben Sie den folgenden Code in Bild 1 des MeineScrollBar-Symbols ein:
#initclip 10
import MeineVScrollBar
Object.registerClass("VScrollBar", MeineVScrollBar);
#endinitclip
8 Ziehen Sie eine List-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
9 Geben Sie im Eigenschafteninspektor so viele Label-Parameter wie nötig ein, damit die vertikale
Bildlaufleiste angezeigt wird.
10 Wählen Sie Datei > Speichern.
11 Wählen Sie Datei > Neu, und erstellen Sie eine neue ActionScript-Datei.
12 Geben Sie den folgenden Code ein:
import mx.controls.VScrollBar
import mx.controls.List
class MeineVScrollBar extends VScrollBar{
function init():Void{
if (_parent instanceof List){
downArrowDownName = "MeinScrollDownArrowDown";
}
super.init();
}
}
13 Wählen Sie Datei > Speichern, um die Datei unter dem Namen MeineVScrollBar.as zu
speichern.
14 Klicken Sie auf einen freien Bereich der Bühne, und wählen Sie im Eigenschafteninspektor die
Schaltfläche Einstellungen für Veröffentlichungen.
15 Wählen Sie die Schaltfläche Einstellungen für die ActionScript-Version.
16 Klicken Sie auf die Plus-Schaltfläche (+), um einen neuen Klassenpfad hinzuzufügen. Wählen
Sie dann die Schaltfläche Ziel, und suchen Sie auf der Festplatte den Speicherort für die Datei
MeineComboBox.as.
17 Wählen Sie Steuerung > Film testen.
Skinning-Komponenten
47
Prototyp-Skin-Eigenschaften ändern
Wenn eine Komponente Skin-Variablen nicht direkt unterstützt, können Sie eine Unterklasse der
Komponente erstellen und die Skins ersetzen. Die ComboBox-Komponente unterstützt
beispielsweise nicht den Skinning-Mechanismus für die Dropdown-Liste, weil sie eine ListKomponente als Dropdown-Liste verwendet.
Wenn eine Komponente aus Unterkomponenten besteht, werden die Unterkomponenten wie in
den Einträgen der einzelnen Komponenten in Kapitel 4, „Komponenten-Referenz“, auf Seite 51
identifiziert.
So wenden Sie die Skinning-Methode auf eine Unterkomponente an:
1 Führen Sie die unter „Komponenten-Skins bearbeiten“ auf Seite 43 beschriebenen Schritte aus,
2
3
4
5
6
7
bearbeiten Sie jedoch eine ScrollBar-Skin. Bearbeiten Sie in diesem Beispiel die
ScrollDownArrowDown-Skin, und benennen Sie sie in MeinScrollDownArrowDown um.
Wählen Sie Datei > Neu, und erstellen Sie ein Flash-Dokument.
Wählen Sie Datei > Speichern, und geben Sie der Datei einen eindeutigen Namen,
beispielsweise MeinComboTest.fla.
Ziehen Sie MeinScrollDownArrowDown aus der obigen Themenbibliothek auf die Bühne von
MeinComboTest.fla, und löschen Sie es.
Damit ist das Symbol der Bibliothek hinzugefügt worden, ohne dass es auf der Bühne sichtbar
wird.
Wählen Sie Einfügen > Neues Symbol, und geben Sie diesem einen eindeutigen Namen,
beispielsweise MeineComboBox.
Wählen Sie die Option Export für ActionScript, und klicken Sie auf OK.
Die Option In erstes Bild exportieren wird automatisch aktiviert.
Geben Sie den folgenden Code in das Bedienfeld Aktionen in die Aktionen in Bild 1 von
MeineComboBox ein:
#initclip 10
import MeineComboBox
Object.registerClass("ComboBox", MeineComboBox);
#endinitclip
8 Ziehen Sie eine ComboBox-Komponente auf die Bühne.
9 Geben Sie im Eigenschafteninspektor so viele Label-Parameter wie nötig ein, damit die vertikale
Bildlaufleiste angezeigt wird.
10 Wählen Sie Datei > Speichern.
11 Wählen Sie Datei > Neu, und erstellen Sie eine neue ActionScript-Datei (nur für Flash
Professional).
12 Geben Sie den folgenden Code ein:
import mx.controls.ComboBox
import mx.controls.scrollClasses.ScrollBar
class MeineComboBox extends ComboBox{
function getDropdown():Object{
var oldName = ScrollBar.prototype.downArrowDownName;
ScrollBar.prototype.downArrowDownName = "MeinScrollDownArrowDown";
var r = super.getDropdown();
ScrollBar.prototype.downArrowDownName = oldName;
return r;
}
}
48
Kapitel 3: Komponenten individuell anpassen
13 Wählen Sie Datei > Speichern, um die Datei unter dem Namen MeineComboBox.as zu
speichern.
14 Klicken Sie auf einen freien Bereich der Bühne, und wählen Sie im Eigenschafteninspektor die
Schaltfläche Einstellungen für Veröffentlichungen.
15 Wählen Sie die Schaltfläche Einstellungen für die ActionScript-Version.
16 Klicken Sie auf die Plus-Schaltfläche (+), um einen neuen Klassenpfad hinzuzufügen. Wählen
Sie dann die Schaltfläche Ziel, und suchen Sie auf der Festplatte den Speicherort für die Datei
MeineComboBox.as.
17 Wählen Sie Steuerung > Film testen.
Skinning-Komponenten
49
50
Kapitel 3: Komponenten individuell anpassen
KAPITEL 4
Komponenten-Referenz
In diesem Referenzkapitel werden die einzelnen Komponenten mit ihren
Programmierschnittstellen (API) beschrieben.
Die Beschreibungen der einzelnen Komponenten enthalten jeweils die folgenden Angaben:
•
•
•
•
•
•
•
Tastaturinteraktion
Live-Vorschau
Eingabehilfen
Einstellen der Komponentenparameter
Verwenden von Komponenten in Anwendungen
Anpassen von Komponenten mit Stilen und Skins
ActionScript-Methoden, -Eigenschaften und -Ereignisse
Die Komponenten sind in alphabetischer Reihenfolge aufgelistet. Ergänzend dazu sind in den
nachfolgenden Tabellen die Komponenten entsprechend den verschiedenen Kategorien
zusammengefasst.
Komponenten der Benutzeroberfläche (UI)
Komponente
Beschreibung
Accordion-Komponente (nur
Flash Professional)
Ein Satz von vertikalen Ansichten mit Schaltflächen, über die
Anwender zwischen Ansichten wechseln können.
Alert-Komponente (nur Flash
Professional)
Ein Fenster mit einer an den Anwender gerichteten Frage und
Schaltflächen, mit denen der Anwender auf diese Frage reagieren
kann.
Button-Komponente
Eine in der Größe veränderbare Schaltfläche, die durch Zuweisen
eines eigenen Symbols angepasst werden kann.
CheckBox-Komponente
Ermöglicht dem Anwender die Auswahl eines booleschen Werts
(true/false).
ComboBox-Komponente
Ermöglicht dem Anwender die Auswahl einer Option aus einer
Liste mit verschiedenen Auswahlmöglichkeiten. Diese
Komponente kann durch ein bearbeitbares Textfeld oberhalb der
Liste ergänzt werden, mit dem der Anwender die Liste
durchsuchen kann.
51
Komponente
Beschreibung
DateChooser-Komponente
(nur Flash Professional)
Ermöglicht dem Anwender die Auswahl von Datumsangaben aus
einem Kalender.
DateField-Komponente (nur
Flash Professional)
Ein nicht auswählbares Textfeld mit Kalendersymbol. Wenn der
Anwender auf eine beliebige Stelle innerhalb der Begrenzungsbox
klickt, wird eine DateChooser-Komponente angezeigt.
DataGrid-Komponente (nur
Flash Professional)
Hier können Anwender mehrere Datenspalten anzeigen lassen
und bearbeiten.
Label-Komponente
Ein nicht bearbeitbares, einzeiliges Textfeld.
List-Komponente
Ermöglicht dem Anwender die Auswahl einer oder mehrerer
Optionen aus einer scrollenden Liste.
Loader-Komponente
Container, der eine geladene SWF- oder JPEG-Datei enthält.
Menu-Komponente (nur Flash
Professional)
Ermöglicht dem Anwender die Auswahl eines Befehls aus einer
Liste; entspricht einem Menü in einer Desktop-Anwendung.
MenuBar-Komponente (nur
Flash Professional)
Eine horizontale Menüleiste.
NumericStepper-Komponente Pfeilschaltflächen, mit denen der Wert einer Zahl durch Klicken
erhöht oder verringert werden kann.
52
ProgressBar-Komponente
Zeigt den Fortschritt eines Vorgangs an, gewöhnlich eines
Ladevorgangs.
RadioButton-Komponente
Ermöglicht dem Anwender die Auswahl zwischen sich gegenseitig
ausschließenden Optionen.
ScrollPane-Komponente
Zeigt Filme, Bitmaps und SWF-Dateien in einem begrenzten
Bereich an; bei Bedarf wird automatisch eine Bildlaufleiste
eingeblendet.
TextArea-Komponente
Ein mehrzeiliges Textfeld mit optionaler Bearbeitungsmöglichkeit.
TextInput-Komponente
Ein einzeiliges Texteingabefeld mit optionaler
Bearbeitungsmöglichkeit.
Tree-Komponente (nur Flash
Professional)
Ermöglicht dem Anwender die Bearbeitung hierarchisch
strukturierter Informationen.
Window-Komponente
Ein verschiebbares Fenster mit Titelleiste, Beschriftung, Rahmen
und einer Schließen-Schaltfläche für die Darstellung von Inhalten
am Bildschirm des Anwenders.
Kapitel 4: Komponenten-Referenz
Datenkomponenten
Komponente
Beschreibung
Datenbindungsklassen (nur
Flash Professional)
Mit diesen Klassen wird die Flash-Funktion zur Datenbindung zur
Laufzeit implementiert.
DataHolder-Komponente (nur
Flash Professional)
Enthält Daten und kann als Verbindung zwischen Komponenten
verwendet werden.
DataProvider-API
Diese Komponente ist das Modell für Datenlisten mit linearem
Zugriff. Dieses Modell bietet einfache Bearbeitungsfunktionen für
Arrays, deren Änderungen übertragen werden.
DataSet-Komponente (nur
Flash Professional)
Ein Baustein für die Erstellung datengesteuerter Anwendungen.
RDBMSResolverKomponente (nur Flash
Professional)
Hiermit können Sie Daten in eine beliebige, unterstützte
Datenquelle zurückspeichern. Diese Resolver-Komponente
übersetzt die XML, die von einem Webdienst, von JavaBean,
einem Servlet oder einer ASP-Seite empfangen und analysiert
werden kann.
Webdienst-Klassen (nur Flash
Professional)
Diese Klassen ermöglichen den Zugriff auf Webdienste, die das
Simple Object Access Protocol (SOAP) im mx.services-Paket
verwenden.
WebServiceConnector-Klasse Ermöglicht den nicht skriptgesteuerten Zugriff auf die
(nur Flash Professional)
Methodenaufrufe von Webdiensten.
XMLConnector-Komponente
(nur Flash Professional)
Liest und schreibt XML-Dokumente unter Verwendung der HTTPMethoden GET und POST.
XUpdateResolverKomponente (nur Flash
Professional)
Hiermit können Sie Daten in eine beliebige, unterstützte
Datenquelle zurückspeichern. Diese Resolver-Komponente
übersetzt das DeltaPacket in XUpdate.
Media-Komponenten
Komponente
Beschreibung
MediaController-Komponente
Steuert die Streaming-Media-Wiedergabe in einer Anwendung.
MediaDisplay-Komponente
Zeigt Streaming-Media in einer Anwendung an
MediaPlayback-Komponente
Eine Kombination der MediaDisplay- und MediaControllerKomponenten.
Weitere Informationen zu diesen Komponenten finden Sie unter „Media-Komponenten (nur
Flash Professional)“ auf Seite 360.
Media-Komponenten
53
Manager
Komponente
Beschreibung
DepthManager-Klasse
Verwaltet die Stapeltiefe von Objekten.
FocusManager-Klasse
Wickelt die Navigation zwischen den am Bildschirm angezeigten
Komponenten mit Hilfe der Tabulatortaste ab. Verwaltet
außerdem Fokusänderungen beim Klicken innerhalb der
Anwendung.
PopUpManager-Klasse
Ermöglicht das Ein- und Ausblenden von Popupfenstern.
StyleManager-Klasse
Ermöglicht das Registrieren von Stilen und verwaltet vererbte
Stile.
Bildschirme
Komponente
Beschreibung
Form-Klasse (nur Flash
Professional)
Hiermit können Sie Formularanwendungsbildschirme zur Laufzeit
bearbeiten.
Screen-Klasse (nur Flash
Professional)
Basisklasse für die Slide- und Form-Klassen.
Slide-Klasse (nur Flash
Professional)
Hiermit können Sie Präsentationsbildschirme zur Laufzeit
bearbeiten.
Accordion-Komponente (nur Flash Professional)
Die Accordion-Komponente ist ein Navigator, der eine Sequenz von untergeordneten (Child-)
Elementen enthält, die er einzeln anzeigt. Die untergeordneten Elemente müssen eine Unterklasse
der UIObject-Klasse sein (die alle mit Version 2 der Macromedia Komponenten-Architektur
erstellten Komponenten und Bildschirme enthält), meistens sind untergeordnete Elemente
jedoch eine Unterklasse der View-Klasse. Zu ihr gehören Movieclips, die der mx.core.View-Klasse
zugewiesen sind. Um die Reihenfolge der Tabstopps in den untergeordneten Elementen der
Accordion-Komponente beizubehalten, müssen die untergeordneten Elemente auch Instanzen
der View-Klasse sein.
Eine Accordion-Komponente erstellt und verwaltet Kopfzeilenschaltflächen, die ein Benutzer
drücken kann, um zwischen den untergeordneten Elementen der Accordion-Komponente
navigieren zu können. Die Accordion-Komponente hat ein vertikales Layout mit
Kopfzeilenschaltflächen, die sich über die Breite der Komponente erstrecken. Eine Kopfzeile ist
mit jedem untergeordneten Element verknüpft, und jede Kopfzeile gehört zur AccordionKomponente (und nicht zum untergeordneten Element). Wenn der Benutzer auf eine Kopfzeile
klickt, wird das zugehörige untergeordnete Element unter dieser Kopfzeile angezeigt. Der
Übergang zum neuen untergeordneten Element erfolgt mit einer Übergangsanimation.
54
Kapitel 4: Komponenten-Referenz
Eine Accordion-Komponente mit untergeordneten Elementen akzeptiert den Fokus und ändert
die Darstellung ihrer Kopfzeilen, um den Fokus anzuzeigen. Wenn ein Benutzer eine AccordionKomponente ansteuert, zeigt die ausgewählte Kopfzeile das Fokussymbol an. AccordionKomponenten ohne untergeordnete Elemente akzeptieren keinen Fokus. Wenn auf
Komponenten geklickt wird, die beim ausgewählten untergeordneten Element den Fokus
akzeptieren, erhalten diese den Fokus. Wenn eine Accordion-Instanz den Fokus hat, können Sie
diese mit Hilfe der folgenden Tasten steuern:
Taste
Beschreibung
Pfeil nach unten, Pfeil
nach rechts
Verschiebt den Fokus auf die Kopfzeile des nächsten untergeordneten
Elements. Der Fokus bricht vom letzten zum ersten um, ohne das
untergeordnete Element zu ändern.
Pfeil nach oben, Pfeil
nach links
Verschiebt den Fokus auf die Kopfzeile des vorherigen untergeordneten
Elements. Der Fokus bricht vom ersten zum letzten um, ohne das
untergeordnete Element zu ändern.
<Ende>
Wählt das letzte untergeordnete Element aus.
Eingabetaste/Leertaste
Wählt das mit der Kopfzeile, die den Fokus hat, verknüpfte
untergeordnete Element aus.
<Pos 1>
Wählt das erste untergeordnete Element aus.
Bild-ab-Taste
Wählt das nächste untergeordnete Element aus. Die Auswahl bricht vom
letzten zum ersten untergeordneten Element um.
Bild-auf-Taste
Wählt das vorherige untergeordnete Element aus. Die Auswahl bricht
vom ersten zum letzten untergeordneten Element um.
<Umschalt>+<Tab>
Verschiebt den Fokus auf die vorherige Komponente. Diese
Komponente kann sich innerhalb des ausgewählten untergeordneten
Elements oder außerhalb der Accordion-Komponente befinden; sie wird
jedoch nie eine weitere Kopfzeile in derselben Accordion-Komponente
sein.
<Tab>
Verschiebt den Fokus auf die nächste Komponente. Diese Komponente
kann sich innerhalb des ausgewählten untergeordneten Elements oder
außerhalb der Accordion-Komponente befinden; sie wird jedoch nie eine
weitere Kopfzeile in derselben Accordion-Komponente sein.
Die Accordion-Komponente kann keinen Bildschirmleseprogrammen bereitgestellt werden.
Accordion-Komponente verwenden (nur Flash Professional)
Die Accordion-Komponente kann zur Darstellung von mehrteiligen Formularen verwendet
werden. Beispielsweise kann eine Accordion-Komponente mit drei untergeordneten Elementen
Formulare darstellen, bei denen der Benutzer seine Versandadresse, Rechnungsadresse und
Zahlungsinformationen für eine E-Commerce-Transaktion ausfüllt. Die Verwendung einer
Accordion-Komponente anstelle von mehreren Webseiten minimiert die Serverlast und gibt dem
Benutzer ein besseres Fortschritts- und Kontextgefühl in einer Anwendung.
Accordion-Komponente (nur Flash Professional)
55
Accordion-Parameter
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder KomponentenInspektor für jede Accordion-Komponenteninstanz festlegen:
childSymbols Ein Array, das die Verknüpfungsbezeichner der Bibliothekssymbole festlegt, mit
denen die untergeordneten Elemente der Accordion-Komponente erstellt werden. Der
Standardwert ist [] (leeres Array).
childNames Ein Array, das die Instanznamen der untergeordneten Elemente der AccordionKomponente festlegt. Der Standardwert ist [] (leeres Array).
Ein Array, das die Textbezeichnungen für die Kopfzeilen der AccordionKomponente festlegt. Der Standardwert ist [] (leeres Array).
childLabels
Ein Array, das die Verknüpfungsbezeichner der Bibliothekssymbole festlegt, die als
Symbole in den Kopfzeilen der Accordion-Komponente zu verwenden sind. Der Standardwert ist
[] (leeres Array).
childIcons
Mit Hilfe von ActionScript-Anweisungen können Sie diese und weitere Optionen für die
Accordion-Komponente über deren Eigenschaften, Methoden und Ereignisse steuern. Weitere
Informationen finden Sie unter „Accordion-Klasse (nur Flash Professional)“ auf Seite 60.
Anwendungen mit der Accordion-Komponente erstellen
In diesem Beispiel wird der Checkout-Abschnitt eines Online-Shops entwickelt. Das Design
erfordert eine Accordion-Komponente mit drei Formularen, in denen Benutzer ihre
Versandadresse, ihre Rechnungsadresse und Zahlungsinformationen eingeben. Die Formulare für
die Versandadresse und die Rechnungsadresse sind identisch.
So fügen Sie mit Hilfe von Bildschirmen einer Anwendung eine Accordion-Komponente
hinzu:
1 Wählen Sie in Flash Datei > Neu und dann Flash-Formularanwendung.
2 Doppelklicken Sie auf den Text Form1, und geben Sie den Namen addressForm ein.
3
4
5
6
56
Der Bildschirm adressForm wird zwar nicht in der Bibliothek angezeigt, ist jedoch ein Symbol
der Screen-Klasse (einer Unterklasse der View-Klasse), das die Accordion-Komponente als
untergeordnetes Element verwenden kann.
Wählen Sie das Formular im Eigenschafteninspektor aus, und stellen Sie seine sichtbare
Eigenschaft auf false ein.
Dadurch wird der Inhalt des Formulars in der Anwendung ausgeblendet; das Formular wird
nur in der Accordion-Komponente angezeigt.
Ziehen Sie Komponenten, wie z. B. die Label- und TextInput-Komponenten, aus dem
Bedienfeld Komponenten auf das Formular, um ein Scheinadressformular zu erstellen. Ordnen
Sie sie an, und stellen Sie im Parameterfenster des Komponenten-Inspektors ihre Eigenschaften
ein.
Positionieren Sie die Formularelemente in der linken oberen Ecken des Formulars. Die linke
obere Ecke des Formulars wird in der linken oberen Ecke der Accordion-Komponente
platziert.
Wiederholen Sie die Schritte 2-4, um den Bildschirm checkoutForm zu erstellen.
Erstellen Sie ein neues Formular mit dem Namen accordionForm.
Kapitel 4: Komponenten-Referenz
7 Ziehen Sie eine Accordion-Komponente aus dem Bedienfeld Komponenten auf das Formular
accordionForm, und nennen Sie sie meinAccordion.
8 Wählen Sie meinAccordion aus, und führen Sie im Eigenschafteninspektor die folgenden
Schritte durch:
■ Geben Sie für die childSymbols-Eigenschaft addressForm, addressForm und checkoutForm
ein.
Diese Strings legen die Namen der Bildschirme fest, mit denen die untergeordneten
Elemente der Accordion-Komponente erstellt werden.
Hinweis: Die ersten beiden untergeordneten Elemente sind Instanzen desselben Bildschirms,
weil die Formulare für die Versandadresse und die Rechnungsadresse identische
Komponenten haben.
Geben Sie für die childNames-Eigenschaft shippingAddress, billingAddress und checkout
ein.
Bei diesen Strings handelt es sich um die ActionScript-Namen der untergeordneten
Elemente der Accordion-Komponente.
■ Geben Sie für die childLabels-Eigenschaft ShippingAddress, BillingAddress und Checkout
ein.
Bei diesen Strings handelt es sich um die Textbezeichnungen in den Kopfzeilen der
Accordion-Komponente.
9 Wählen Sie Steuerung > Film testen.
■
So fügen Sie einer Anwendung eine Accordion-Komponente hinzu:
1 Wählen Sie Datei > Neu, und erstellen Sie ein neues Flash-Dokument.
2 Wählen Sie Einfügen > Neues Symbol, und nennen Sie es AddressForm.
3 Klicken Sie im Dialogfeld Neues Symbol erstellen auf die Schaltfläche Erweitert, und wählen
4
5
6
7
8
Sie Export für ActionScript. Geben Sie im Feld der ActionScript 2-Klasse mx.core.View ein.
Damit die Reihenfolge der Tabstopps in den untergeordneten Elementen der AccordionKomponente beibehalten wird, müssen die untergeordneten Elemente auch Instanzen der
View-Klasse sein.
Ziehen Sie Komponenten, wie z. B. die Label- und TextInput-Komponenten, aus dem
Bedienfeld Komponenten auf die Bühne, um ein Scheinadressformular zu erstellen. Ordnen Sie
sie an, und stellen Sie im Parameterfenster des Komponenten-Inspektors ihre Eigenschaften ein.
Positionieren Sie die Formularelemente relativ zu 0, 0 (Mitte) auf der Bühne. Die 0, 0Koordinate des Movieclips wird in der linken oberen Ecke der Accordion-Komponente
platziert.
Wählen Sie Bearbeiten > Dokument bearbeiten, um zur Hauptzeitleiste zurückzukehren.
Wiederholen Sie die Schritte 2-5, um den Movieclip checkoutForm zu erstellen.
Ziehen Sie eine Accordion-Komponente aus dem Bedienfeld Komponenten auf die Bühne in
der Hauptzeitleiste.
Führen Sie im Eigenschafteninspektor die folgenden Schritte durch:
■ Geben Sie den Instanznamen meinAccordion ein.
■ Geben Sie für die childSymbols-Eigenschaft AddressForm, AddressForm und
CheckoutForm ein.
Accordion-Komponente (nur Flash Professional)
57
Diese Strings legen die Namen der Movieclips fest, mit denen die untergeordneten
Elemente der Accordion-Komponente erstellt werden.
Hinweis: Die ersten beiden untergeordneten Elemente sind Instanzen desselben Movieclips,
weil die Formulare für die Versandadresse und die Rechnungsadresse identisch sind.
Geben Sie für die childNames-Eigenschaft shippingAddress, billingAddress und checkout
ein.
Bei diesen Strings handelt es sich um die ActionScript-Namen der untergeordneten
Elemente der Accordion-Komponente.
■ Geben Sie für die childLabels-Eigenschaft ShippingAddress, BillingAddress und
Checkout ein.
Bei diesen Strings handelt es sich um die Textbezeichnungen in den Kopfzeilen der
Accordion-Komponente.
■ Geben Sie für die childIcons-Eigenschaft AddressIcon, AddressIcon und CheckoutIcon
ein.
Diese Strings legen die Verknüpfungsbezeichner der Movieclip-Symbole fest, die als
Symbole in den Kopfzeilen der Accordion-Komponente verwendet werden. Sie müssen
diese Movieclip-Symbole erstellen, wenn die Kopfzeilen Symbole enthalten sollen.
9 Wählen Sie Steuerung > Film testen.
■
So fügen Sie mit ActionScript-Anweisungen einer Accordion-Komponente untergeordnete
Elemente hinzu:
1 Wählen Sie Datei > Neu, und erstellen Sie ein Flash-Dokument.
2 Ziehen Sie die Accordion-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
3 Geben Sie im Eigenschafteninspektor den Instanznamen meinAccordion ein.
4 Ziehen Sie eine TextInput-Komponente auf die Bühne, und löschen Sie sie.
Dadurch wird sie zur Bibliothek hinzugefügt, damit Sie sie in Schritt 6 dynamisch
instanziieren können.
5 Geben Sie im Bedienfeld Aktionen in Bild 1 der Zeitleiste Folgendes ein:
meinAccordion.createChild("View", "shippingAddress", { label: "Shipping
Address" });
meinAccordion.createChild("View", "billingAddress", { label: "Billing
Address" });
meinAccordion.createChild("View", "payment", { label: "Payment" });
Mit diesem Code wird die createChild()-Methode zur Erstellung der Child-Ansichten
aufgerufen.
6 Geben Sie im Bedienfeld Aktionen unterhalb des in Schritt 4 eingegebenen Codes den
folgenden Code ein:
var o = meinAccordion.shippingAddress.createChild("TextInput", "firstName");
o.move(20, 38);
o.setSize(116, 20);
o = meinAccordion.shippingAddress.createChild("TextInput", "lastName");
o.move(175, 38);
o.setSize(145, 20);
Mit diesem Code werden den untergeordneten Elementen der Accordion-Komponente
Komponenteninstanzen (zwei TextInput-Komponenten) hinzugefügt.
58
Kapitel 4: Komponenten-Referenz
Accordion-Komponente individuell anpassen (nur Flash Professional)
Eine Accordion-Komponente kann horizontal und vertikal sowohl während des Authorings als
auch zur Laufzeit transformiert werden. Beim Authoring wählen Sie hierzu die Komponente auf
der Bühne aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle
unter Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode setSize()
(siehe UIObject.setSize()).
Die Methode setSize() und das Werkzeug Transformieren ändern nur die Breite der
Kopfzeilen der Accordion-Komponente und die Breite und Höhe ihres Inhaltsbereichs. Die Höhe
der Kopfzeilen und die Breite und Höhe der untergeordneten Elemente werden nicht geändert.
Das Begrenzungsrechteck einer Accordion-Komponente kann nur geändert werden, wenn die
Methode setSize() aufgerufen wird.
Wenn die Kopfzeilen zu klein für den Bezeichnungstext sind, werden die Bezeichnungen
abgeschnitten. Ist der Inhaltsbereich einer Accordion-Komponente kleiner als ein untergeordnetes
Element, wird das untergeordnete Element abgeschnitten.
Stile mit der Accordion-Komponente verwenden
Sie haben die Möglichkeit, Stileigenschaften festzulegen, um die Darstellung des Rahmens und
des Hintergrunds einer Accordion-Komponente zu ändern.
Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Accordion-Komponenten unterstützen die folgenden Kranz-Stile:
Stil
Beschreibung
themeColor
Der Hintergrund einer Komponente. Dies ist der einzige Farbstil, der seinen
Wert nicht übernimmt. Mögliche Wert sind „haloGreen“, „haloBlue“ und
„haloOrange“.
backgroundColor
Die Hintergrundfarbe.
borderColor
Die Rahmenfarbe.
borderStyle
Der Rahmenstil; mögliche Werte sind „none“, „solid“, „inset“, „outset“,
„default“, „alert“. Der Wert „default“ entspricht dem Aussehen des Rahmens
der Window-Komponente und der Wert „alert“ dem des Rahmens der AlertKomponente.
headerHeight
Die Höhe der Kopfzeilenschaltflächen in Pixel.
color
Die Farbe des Kopfzeilentextes.
disabledColor
Die Farbe einer deaktivierten Accordion-Komponente.
fontFamily
Der Schriftname für die Kopfzeilenbezeichnungen.
fontSize
Die Punktgröße für die Schrift der Kopfzeilenbezeichnungen.
fontStyle
Der Schriftstil für die Kopfzeilenbezeichnungen: „normal“ oder „italic“ (kursiv).
fontWeight
Das Schriftgewicht für die Kopfzeilenbezeichnungen: „normal“ oder „bold“
(fett).
Accordion-Komponente (nur Flash Professional)
59
Stil
Beschreibung
textDecoration
Textauszeichnung; mögliche Werte sind „none“ (keine) und „underline“
(unterstrichen).
openDuration
Die Dauer der Übergangsanimation in Millisekunden.
openEasing
Die von der Animation verwendete Tweening-Funktion.
Skins mit der Accordion-Komponente verwenden
Die Accordion-Komponente stellt die visuellen Zustände ihrer Kopfzeilenschaltflächen mit Hilfe
von Skins dar. Um beim Authoring für die Schaltflächen und die Titelleiste Skins zu verwenden,
ändern Sie die Skinsymbole im Ordner Flash UI Components 2/Themes/MMDefault/
Accordion Assets skins states in der Bibliothek einer der FLA-Dateien für Themen. Weitere
Informationen finden Sie unter „Skinning-Komponenten“ auf Seite 42.
Eine Accordion-Komponente besteht aus ihrem Rahmen und Hintergrund, ihren
Kopfzeilenschaltflächen und ihren untergeordneten Elementen. Der Rahmen und der
Hintergrund unterstützen Stile, jedoch keine Skins. Den Kopfzeilen können über den unten
aufgeführten Teil der von der Schaltfläche geerbten Skins zwar Skins, dafür jedoch keine Stile
zugewiesen werden. Eine Accordion-Komponente verwendet die folgenden Skineigenschaften,
um Kopfzeilenschaltflächen Skins dynamisch zuzuweisen:
Eigenschaft
Beschreibung
Standardwert
falseUpSkin
Up-Status (Schaltfläche accordionHeaderSkin
nicht geklickt)
falseDownSkin
Pressed-Status
(Schaltfläche geklickt)
accordionHeaderSkin
falseOverSkin
Rollover-Status.
accordionHeaderSkin
trueUpSkin
Toggle-Status
(Schaltfläche mit
Umschaltfunktion)
accordionHeaderSkin
Accordion-Klasse (nur Flash Professional)
Vererbung
UIObject > UIComponent > View > Accordion
ActionScript-Klassenname
mx.containers.Accordion
Eine Accordion-Komponente ist eine Komponente mit untergeordneten Elementen, die einzeln
angezeigt werden. Jedes untergeordnete Element hat eine entsprechende Kopfzeilenschaltfläche,
die mit dem untergeordneten Element erstellt wird. Ein untergeordnetes Element muss eine
Instanz der UIObject-Klasse sein.
Ein Movieclip-Symbol wird automatisch eine Instanz der UIObject-Klasse, wenn es ein
untergeordnetes Element einer Accordion-Klasse wird. Damit die Reihenfolge der Tabstopps in
den untergeordneten Elementen der Accordion-Komponente beibehalten wird, müssen die
untergeordneten Elemente auch Instanzen der View-Klasse sein. Wenn Sie ein Movieclip-Symbol
als untergeordnetes Element verwenden, müssen Sie das Feld ActionScript 2.0-Klasse auf
mx.core.View einstellen, damit es von der View-Klasse erbt.
60
Kapitel 4: Komponenten-Referenz
Die mit ActionScript festgelegte Eigenschaft der Accordion-Klasse überschreibt den
gleichnamigen Parameter, der in den Bedienfeldern des Eigenschafteninspektors bzw. des
Komponenten-Inspektors festgelegt wurde.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.Accordion.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meineAccordionInstance.version);.
Übersicht: Methoden der Accordion-Klasse
Methode
Beschreibung
Accordion.createChild()
Erstellt ein untergeordnetes Element für die Accordion-Klasse.
Accordion.createSegment()
Erstellt ein untergeordnetes Element für die Accordion-Klasse. Die
Parameter für diese Methode unterscheiden sich von denen der
createChild()-Methode.
Accordion.destroyChildAt()
Löscht ein untergeordnetes Element an einer festgelegten
Indexposition.
Accordion.getChildAt()
Ruft einen Verweis auf ein untergeordnetes Element an einer
festgelegten Indexposition ab.
Erbt alle Methoden von UIObject, UIComponent und mx.core.View.
Übersicht: Eigenschaften der Accordion-Klasse
Eigenschaft
Beschreibung
Accordion.numChildren
Die Anzahl der untergeordneten Elemente einer Accordion-Instanz.
Accordion.selectedChild
Ein Verweis auf das ausgewählte untergeordnete Element.
Accordion.selectedIndex
Die Indexposition des ausgewählten untergeordneten Elements.
Erbt alle Eigenschaften von UIObject, UIComponent und mx.core.View.
Übersicht: Ereignisse der Accordion-Klasse
Ereignis
Beschreibung
Accordion.change
Broadcastübertragung an alle registrierten Listener, wenn die
Accordion-Eigenschaften selectedIndex und selectedChild durch
einen Mausklick oder einen Tastendruck geändert werden.
Erbt alle Ereignisse von UIObject, UIComponent und mx.core.View.
Accordion-Komponente (nur Flash Professional)
61
Accordion.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.change = function(eventObject){
// Hier Code eingeben
}
meineAccordionInstance.addEventListener("change", listenerObject)
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn sich die AccordionEigenschaften selectedIndex und selectedChild ändern. Dieses Ereignis wird nur als
Broadcastübertragung verteilt, wenn der Wert selectedChild oder selectedIndex durch einen
Mausklick oder einen Tastendruck geändert wird (nicht, wenn der Wert mit ActionScript
geändert wird). Dieses Ereignis wird als Broadcastübertragung verteilt, bevor die
Übergangsanimation auftritt.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Die AccordionKomponente setzt ein change-Ereignis ab, wenn eine ihrer Schaltflächen gedrückt wird, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Sie rufen die addEventListener()-Methode
auf und übergeben ihr als Parameter einen Verweis auf die Prozedur.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. (Weitere Informationen zu Ereignisobjekten finden Sie unter
„Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird die Prozedur meinAccordionListener definiert und der
meinAccordion.addEventListener()-Methode als zweiter Parameter übergeben. Das
Ereignisobjekt wird von der change-Prozedur im Parameter evtObject erfasst. Wenn das
change-Ereignis als Broadcastübertragung verteilt wird, wird eine trace-Anweisung an das
Bedienfeld Ausgabe gesendet.
meinAccordionListener = new Object();
meinAccordionListener.change = function(){
trace("Changed to different view");
}
meinAccordion.addEventListener("change", meinAccordionListener);
62
Kapitel 4: Komponenten-Referenz
Accordion.createChild()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinAccordion.createChild(classOrSymbolName,
instanceName[, initialProperties])
Parameter
Dieser Parameter kann entweder die Konstruktorfunktion für die zu
instanziierende UIObject-Klasse sein oder der Verknüpfungsname, ein Verweis auf das zu
instanziierende Symbol. Bei der Klasse muss es sich um die UIObject-Klasse oder eine
Unterklasse von UIObject handeln, meistens ist es jedoch eine View-Klasse oder eine Unterklasse
der View-Klasse.
classOrSymbolName
instanceName
Der Instanzname der neuen Instanz.
initialProperties Ein optionaler Parameter, der Ausgangseigenschaften für die neue Instanz
festlegt. Sie können die folgenden Eigenschaften verwenden:
•
•
label Dieser String gibt die Textbezeichnung an, die die neue untergeordnete Instanz bei
ihrer Kopfzeile verwendet.
icon Dieser String gibt den Verknüpfungsbezeichner des Bibliothekssymbols an, das das
untergeordnete Element für das Symbol in seiner Kopfzeile verwendet.
Rückgaben
Ein Verweis auf eine Instanz der UIObject-Klasse, die das neu erstellte untergeordnete Element
ist.
Beschreibung
Methode (geerbt von View); erstellt das untergeordnete Element für die Accordion-Komponente.
Das neu erstellte untergeordnete Element wird am Ende der Liste mit den untergeordneten
Elementen der Accordion-Komponente hinzugefügt. Mit dieser Methode können Sie Ansichten
innerhalb der Accordion-Komponente positionieren. Das erstellte untergeordnete Element ist
eine Instanz der Klasse oder des im Parameter classOrSymbolName angegebenen MovieclipSymbols. Mit den label- und icon-Eigenschaften können Sie eine Textbezeichnung und ein
Symbol für die zugehörige Accordion-Kopfzeile für jedes untergeordnete Element im Parameter
initialProperties festlegen.
Wenn ein untergeordnetes Element erstellt wird, wird ihm in der Reihenfolge der Erstellung eine
Indexzahl zugewiesen, und die numChildren-Eigenschaft wird um 1 erhöht.
Accordion-Komponente (nur Flash Professional)
63
Beispiel
Mit dem folgenden Code wird eine Instanz des Movieclip-Symbols PaymentForm mit dem
Namen payment als letztes untergeordnetes Element von meinAccordion erstellt:
var child = meinAccordion.createChild("PaymentForm", "payment", { label:
"Payment", Icon: "payIcon" });
child.cardType.text = "Visa";
child.cardNumber.text = "1234567887654321";
Mit dem folgenden Code wird ein untergeordnetes Element erstellt, das eine Instanz der ViewKlasse ist:
var child = meinAccordion.createChild(mx.core.View, "payment", { label:
"Payment", Icon: "payIcon" });
child.cardType.text = "Visa";
child.cardNumber.text = "1234567887654321";
Mit dem folgenden Code wird auch ein untergeordnetes Element erstellt, das eine Instanz der
View-Klasse ist; hier wird jedoch „import“ verwendet, um auf den Konstruktor für die ViewKlasse zu verweisen:
import mx.core.View
var child = meinAccordion.createChild(View, "payment", { label: "Payment",
Icon: "payIcon" });
child.cardType.text = "Visa";
child.cardNumber.text = "1234567887654321";
Accordion.createSegment()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
meinAccordion.createSegment(classOrSymbolName, instanceName[, label[, icon]])
Parameter
classOrSymbolName Dieser Parameter kann entweder ein Verweis auf die Konstruktorfunktion
für die zu instanziierende UIObject-Klasse sein oder der Verknüpfungsname des zu
instanziierenden Symbols. Bei der Klasse muss es sich um die UIObject-Klasse oder eine
Unterklasse von UIObject handeln, meistens ist es jedoch eine View-Klasse oder eine Unterklasse
der View-Klasse.
instanceName
Der Instanzname der neuen Instanz.
Dieser String gibt die Textbezeichnung an, die die neue untergeordnete Instanz bei ihrer
Kopfzeile verwendet. Dieser Parameter ist optional.
label
Dieser String ist ein Verweis auf den Verknüpfungsbezeichner des Bibliothekssymbols, das
das untergeordnete Element für das Symbol in seiner Kopfzeile verwendet. Dieser Parameter ist
optional.
icon
Rückgaben
Ein Verweis auf die neu erstellte UIObject-Instanz.
64
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; erstellt das untergeordnete Element für die Accordion-Komponente. Das neu erstellte
untergeordnete Element wird am Ende der Liste mit den untergeordneten Elementen der
Accordion-Komponente hinzugefügt. Mit dieser Methode können Sie Ansichten innerhalb der
Accordion-Komponente positionieren. Das erstellte untergeordnete Element ist eine Instanz der
Klasse oder des im Parameter classOrSymbolName angegebenen Movieclip-Symbols. Mit den
label- und icon-Parametern können Sie eine Textbezeichnung und ein Symbol für die
zugehörige Accordion-Kopfzeile für jedes untergeordnete Element festlegen.
Die createSegment()-Methode unterscheidet sich von der createChild()-Methode insofern,
als label und icon direkt als Parameter und nicht als Eigenschaften eines initialPropertiesParameters übergeben werden.
Wenn ein untergeordnetes Element erstellt wird, wird ihm in der Reihenfolge der Erstellung eine
Indexzahl zugewiesen, und die numChildren-Eigenschaft wird um 1 erhöht.
Beispiel
Im folgenden Beispiel wird eine Instanz des Movieclip-Symbols PaymentForm mit dem Namen
payment als letztes untergeordnetes Element von meinAccordion erstellt:
var child = meinAccordion.createSegment("PaymentForm", "payment", "Payment",
"payIcon");
child.cardType.text = "Visa";
child.cardNumber.text = "1234567887654321";
Mit dem folgenden Code wird ein untergeordnetes Element erstellt, das eine Instanz der ViewKlasse ist:
var child = meinAccordion.createSegment(mx.core.View, "payment", { label:
"Payment", Icon: "payIcon" });
child.cardType.text = "Visa";
child.cardNumber.text = "1234567887654321";
Mit dem folgenden Code wird auch ein untergeordnetes Element erstellt, das eine Instanz der
View-Klasse ist; hier wird jedoch „import“ verwendet, um auf den Konstruktor für die ViewKlasse zu verweisen:
import mx.core.View
var child = meinAccordion.createSegment(View, "payment", { label: "Payment",
Icon: "payIcon" });
child.cardType.text = "Visa";
child.cardNumber.text = "1234567887654321";
Accordion.destroyChildAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinAccordion.destroyChildAt(index)
Accordion-Komponente (nur Flash Professional)
65
Parameter
index Die Indexzahl des zu löschenden Accordion-Childs. Jedem untergeordneten Element
eines Accordion wird in der Reihenfolge, in der es erstellt wurde, eine Indexzahl mit der Basis 0
zugewiesen.
Rückgaben
Keine.
Beschreibung
Methode (geerbt von View); löscht eines der untergeordneten Elemente von Accordion. Das zu
löschende untergeordnete Element wird durch seinen Index angegeben, welcher an die Methode
im Parameter index übergeben wird. Wenn diese Methode aufgerufen wird, wird die
entsprechende Kopfzeile ebenfalls gelöscht.
Wenn das gelöschte untergeordnete Element ausgewählt wird, wird ein neues untergeordnetes
Element ausgewählt. Wenn es ein weiteres untergeordnetes Element gibt, so wird es ausgewählt.
Wenn es kein weiteres untergeordnetes Element gibt, wird das vorherige untergeordnete Element
ausgewählt. Wenn es kein vorheriges untergeordnetes Element gibt, ist die Auswahl nicht
definiert.
Hinweis: Durch Aufruf der destroyChildAt()-Methode wird die Eigenschaft numChildren um 1
verringert.
Beispiel
Mit dem folgenden Code wird das letzte untergeordnete Element von meinAccordion gelöscht:
meinAccordion.destroyChildAt(meinAccordion.numChildren - 1);
Siehe auch
Accordion.createChild()
Accordion.getChildAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinAccordion.getChildAt(index)
Parameter
index Die Indexzahl eines Accordion-Childs. Jedem untergeordneten Element eines Accordion
wird in der Reihenfolge, in der es erstellt wurde, ein Index mit der Basis 0 zugewiesen.
Rückgaben
Ein Verweis zur UIObject-Instanz an der angegebenen Indexposition.
66
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; gibt einen Verweis zum untergeordneten Element an der angegebenen Indexposition
zurück. Jedes Accordion-Child erhält für seine Position einen Indexzahl. Diese Indexzahl hat die
Basis 0, das erste untergeordnete Element ist also 0, das zweite untergeordnete Element 1 usw.
Beispiel
Mit dem folgenden Code wird ein Verweis auf das letzte untergeordnete Element von
meinAccordion abgerufen:
var lastChild:UIObject = meinAccordion.getChildAt(meinAccordion.numChildren 1);
Accordion.numChildren
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinAccordion.numChildren
Beschreibung
Eigenschaft (geerbt von View); gibt die Anzahl der untergeordneten Elemente (Child UIObjects)
in einer Accordion-Instanz an. Kopfzeilen zählen nicht als untergeordnete Elemente.
Jedes Accordion-Child erhält für seine Position einen Indexzahl. Diese Indexzahl hat die Basis 0,
das erste untergeordnete Element ist also 0, das zweite untergeordnete Element 1 usw. Der Code
meinAccordion.numChild - 1 verweist immer auf das letzte untergeordnete Element, das
einem Accordion hinzugefügt wurde. Wenn ein Accordion beispielsweise 7 untergeordnete
Elemente hat, hat das letzte untergeordnete Element den Index 6. Die Eigenschaft numChildren
hat nicht die Basis 0, der Wert von meinAccordion.numChildren würde also 7 sein. Das
Ergebnis von 7 - 1 ist 6, was die Indexzahl des letzten untergeordneten Elements ist.
Beispiel
Im folgenden Beispiel wird das letzte untergeordnete Element ausgewählt:
meinAccordion.selectedIndex = meinAccordion.numChildren - 1;
Accordion.selectedChild
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinAccordion.selectedChild
Accordion-Komponente (nur Flash Professional)
67
Beschreibung
Eigenschaft; das ausgewählte untergeordnete Element, wenn es ein oder mehrere untergeordnete
Elemente gibt; nicht definiert, wenn es keine untergeordneten Elemente gibt. Diese Eigenschaft
ist entweder vom Typ UIObject oder nicht definiert.
Wenn das Accordion untergeordnete Elemente hat, entspricht der Code
meinAccordion.selectedChild dem Code
meinAccordion.getChildAt(meinAccordion.selectedIndex).
Wird diese Eigenschaft auf ein untergeordnetes Element eingestellt, startet das Accordion die
Übergangsanimation, um das angegebene untergeordnete Element anzuzeigen.
Durch die Änderung des Wertes von selectedChild wird auch der Wert von selectedIndex
geändert.
Der Standardwert ist meinAccordion.getChildAt(0), wenn das Accordion untergeordnete
Elemente hat. Hat das Accordion keine untergeordneten Elemente, ist der Standardwert
undefined.
Beispiel
Im folgenden Beispiel wird die Bezeichnung der ausgewählten Child-Ansicht abgefragt:
var selectedLabel = meinAccordion.selectedChild.label;
Im folgenden Beispiel soll das Zahlungsformular die ausgewählte Child-Ansicht sein:
meinAccordion.selectedChild = meinAccordion.payment;
Siehe auch
Accordion.selectedIndex
Accordion.selectedIndex
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinAccordion.selectedIndex
Beschreibung
Eigenschaft; der von Null ausgehende Index des ausgewählten untergeordneten Elements in
einem Accordion mit einem oder mehreren untergeordneten Elementen. Bei einem Accordion
ohne Child-Ansichten ist der einzig gültige Wert undefined.
Jedes Accordion-Child erhält für seine Position einen Indexzahl. Diese Indexzahl hat die Basis 0,
das erste untergeordnete Element ist also 0, das zweite untergeordnete Element 1 usw. Die
gültigen Werte von selectedIndex sind 0, 1, 2 ... n - 1, wobei n die Anzahl der untergeordneten
Elemente ist.
68
Kapitel 4: Komponenten-Referenz
Wird diese Eigenschaft auf ein untergeordnetes Element eingestellt, startet das Accordion die
Übergangsanimation, um das angegebene untergeordnete Element anzuzeigen.
Durch die Änderung des Wertes von selectedIndex wird auch der Wert von selectedChild
geändert.
Beispiel
Im folgenden Beispiel wird an den Index des ausgewählten untergeordneten Elements erinnert:
var oldSelectedIndex = meinAccordion.selectedIndex;
Im folgenden Beispiel wird das letzte untergeordnete Element ausgewählt:
meinAccordion.selectedIndex = meinAccordion.numChildren - 1;
Siehe auch
Accordion.selectedChild, Accordion.numChildren
Alert-Komponente (nur Flash Professional)
Mit der Alert-Komponente können Sie ein Fenster mit einer an den Benutzer gerichteten
Meldung und Antwortschaltflächen einblenden. Das Alert-Fenster verfügt über eine Titelleiste,
die Sie mit Text ausfüllen können, eine Meldung, die Sie individuell anpassen können, und
Schaltflächen, deren Bezeichnungen Sie ändern können. Ein Alert-Fenster kann eine beliebige
Kombination der folgenden Schaltflächen aufweisen: Ja, Nein, OK und Abbrechen. Sie können
die Textbezeichnungen auf den Schaltflächen mit Hilfe der folgenden Eigenschaften ändern:
Alert.yesLabel, Alert.noLabel, Alert.okLabel und Alert.cancelLabel. Die Reihenfolge
der Schaltflächen in einem Alert-Fenster kann nicht geändert werden; sie ist immer OK, Ja, Nein,
Abbrechen.
Um ein Alert-Fenster einzublenden, müssen Sie die Alert.show()-Methode aufrufen. Die AlertKomponente muss in der Bibliothek vorhanden sein, damit die Methode erfolgreich aufgerufen
werden kann. Sie müssen die Alert-Komponente aus dem Bedienfeld Komponenten auf die
Bühne ziehen und dann die Alert-Komponente von der Bühne löschen. Hierdurch wird die
Komponente zur Bibliothek hinzugefügt, sie wird jedoch nicht im Dokument angezeigt.
Die Live-Vorschau für die Alert-Komponente ist ein leeres Fenster.
Der Text und die Schaltflächen eines Alert-Fensters können für Bildschirmleseprogramme
zugänglich gemacht werden. Wenn Sie einer Anwendung die Alert-Komponente hinzufügen,
können Sie diese im Bedienfeld Eingabehilfen für Bildschirmleseprogramme verfügbar machen.
Dazu brauchen Sie lediglich die folgende Codezeile einzufügen:
mx.accessibility.AlertAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie im Abschnitt „Barrierefreie Inhalte erstellen“ in
der Hilfe „Flash verwenden“.
Alert-Komponente (nur Flash Professional)
69
Alert-Komponente verwenden (nur Flash Professional)
Die Alert-Komponente kann immer dann verwendet werden, wenn Sie einem Benutzer etwas
mitteilen möchten. Beispielsweise könnten Sie ein Alert-Fenster einblenden, wenn ein Benutzer
ein Formular nicht richtig ausfüllt, wenn eine Aktie einen gewissen Preis erreicht oder wenn ein
Benutzer eine Anwendung beendet, ohne seine Sitzung zu speichern.
Alert-Parameter
Die Alert-Komponente unterstützt keine Authoring-Parameter. Sie müssen die ActionScriptMethode Alert.show() aufrufen, um ein Alert-Fenster einzublenden. Mit anderen ActionScriptEigenschaften können Sie das Alert-Fenster in einer Anwendung ändern. Weitere Informationen
finden Sie unter „Alert-Klasse (nur Flash Professional)“ auf Seite 72.
Anwendungen mit der Alert-Komponente erstellen
Im folgenden Verfahren wird erklärt, wie Sie einer Anwendung beim Authoring eine AlertKomponente hinzufügen. In diesem Beispiel wird die Alert-Komponente angezeigt, wenn eine
Aktie einen bestimmten Preis erreicht.
So erstellen Sie eine Anwendung mit einer Alert-Komponente:
1 Doppelklicken Sie im Bedienfeld Komponenten auf die Alert-Komponente, um sie der Bühne
hinzuzufügen.
2 Drücken Sie die Rücktaste (Windows) bzw. <Entf> (Macintosh), um die Komponente von der
Bühne zu löschen.
Hierdurch wird die Komponente zur Bibliothek hinzugefügt, sie wird jedoch nicht in der
Anwendung angezeigt.
3 Geben Sie im Bedienfeld Aktionen den folgenden Code in Bild 1 der Zeitleiste ein, um eine
Ereignisprozedur für das click-Ereignis zu definieren:
import mx.controls.Alert
meinClickHandler = function (evt){
if (evt.detail == Alert.OK){
trace("start stock app");
// startStockApplication();
}
}
Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK |
Alert.CANCEL, this, meinClickHandler, "stockIcon", Alert.OK);
Mit diesem Code wird ein Alert-Fenster mit den Schaltflächen OK und Abbrechen erstellt.
Wenn auf eine der Schaltflächen geklickt wird, wird die meinClickHandler-Funktion
aufgerufen. Wenn jedoch auf die Schaltfläche OK geklickt wird, wird die
startStockApplication()-Methode aufgerufen.
4 Steuerung > Film testen
70
Kapitel 4: Komponenten-Referenz
Alert-Komponente individuell anpassen (nur Flash Professional)
Die Alert-Komponente positioniert sich in der Mitte der Komponente, die als ihr ParentParameter übergeben wurde. Das übergeordnete Element (Parent) muss eine UIComponentKlasse sein. Wenn es ein Movieclip ist, können Sie den Clip als mx.core.View registrieren, sodass
es von UIComponent erbt.
Das Alert-Fenster dehnt sich horizontal automatisch aus, um seine Größe an den Meldungstext
oder die angezeigten Schaltflächen anzupassen. Wenn Sie große Textmengen anzeigen möchten,
sollten Sie Zeilenumbrüche in den Text einfügen.
Die Alert-Komponente reagiert nicht auf die setSize()-Methode.
Stile mit der Alert-Komponente verwenden
Sie können Stileigenschaften festlegen, um das Erscheinungsbild der Alert-Komponente zu
ändern. Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Alert-Komponenten unterstützen die folgenden Kranz-Stile:
Stil
Beschreibung
themeColor
Der Hintergrund einer Komponente. Dies ist der einzige Farbstil, der
den Wert nicht übernimmt. Mögliche Wert sind „haloGreen“, „haloBlue“
und „haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“ (kursiv).
fontWeight
Das Schriftgewicht für den Text: „normal“ oder „bold“ (fett).
textDecoration
Textauszeichnung; mögliche Werte sind „none“ (keine) und „underline“
(unterstrichen).
buttonStyleDeclaration
Eine (statische) CSSStyleDeclaration-Klasse für die Stile des
Schaltflächentextes.
messageStyleDeclaration
Eine (statische) CSSStyleDeclaration-Klasse für die Stile des
Meldungstextes, des Rahmens und des Hintergrunds.
titleStyleDeclaration
Eine (statische) CSSStyleDeclaration-Klasse für die Stile des
Titeltextes.
Alert-Komponente (nur Flash Professional)
71
Skins mit der Alert-Komponente verwenden
Die Alert-Komponente stellt die visuellen Zustände ihre Kopfzeilenschaltflächen mit Hilfe von
Window-Skins dar. Um beim Authoring für die Schaltflächen und die Titelleiste Skins zu
verwenden, ändern Sie die Skinsymbole im Ordner Flash UI Components 2/Themes/
MMDefault/Window Assets skins states in der Bibliothek einer der FLA-Dateien für Themen.
Weitere Informationen finden Sie unter „Skinning-Komponenten“ auf Seite 42.
Die RectBorder.as-Klasse enthält ActionScript-Code, der zur Darstellung der Feldrahmen in der
Alert-Komponente verwendet wird. Sie können Alert-Komponenten wie folgt mit RectBorderStilen ändern:
var meinAlert = Alert.show("This is a test of errors", "Error", Alert.OK |
Alert.CANCEL, this);
meinAlert.setStyle("borderStyle", "inset");
Weitere Informationen zu RectBorder-Stilen finden Sie unter „Skins mit der List-Komponente
verwenden“ auf Seite 323.
Eine Alert-Komponente verwendet die folgenden Skineigenschaften, um den Schaltflächen und
der Titelleiste Skins dynamisch zuzuweisen:
Eigenschaft
Beschreibung
Standardwert
buttonUp
Der Up-Status der Schaltfläche.
ButtonSkin
buttonDown
Der Pressed-Status der Schaltfläche.
ButtonSkin
buttonOver
Der Rollover-Status der Schaltfläche.
ButtonSkin
titleBackground
Die Titelleiste des Fensters.
TitleBackground
Alert-Klasse (nur Flash Professional)
Vererbung
UIObject > UIComponent > View > ScrollView > Window > Alert
ActionScript-Klassenname
mx.controls.Alert
Um die Alert-Komponente zu verwenden, ziehen Sie eine Alert-Komponente auf die Bühne und
löschen sie, sodass die Komponente sich zwar in der Dokumentbibliothek befindet, jedoch nicht
in der Anwendung sichtbar ist. Rufen Sie dann Alert.show() auf, um ein Alert-Fenster
anzuzeigen. Sie können Alert.show() Parameter übergeben, die dem Alert-Fenster eine
Meldung, eine Titelleiste und Schaltflächen hinzufügen.
Da ActionScript asynchron ist, blockiert die Alert-Komponente nicht. Das heißt, die Zeilen des
ActionScript-Code sind nach dem Aufruf von Alert.show() fortlaufend. Sie müssen Listener
hinzufügen, um die click-Ereignisse zu verarbeiten, die übertragen werden, wenn ein Benutzer
auf eine Schaltfläche klickt, und dann Ihren Code fortzusetzen, nachdem das Ereignis übertragen
wurde.
Hinweis: In blockierenden Betriebssystemumgebungen (wie z. B. Microsoft Windows) würde der
Aufruf von Alert.show() erst zurückgegeben werden, nachdem der Benutzer eine Aktion
ausgeführt hat, z. B. auf eine Schaltfläche geklickt hat.
72
Kapitel 4: Komponenten-Referenz
Übersicht: Methoden der Alert-Klasse
Ereignis
Beschreibung
Alert.show()
Erstellt ein Alert-Fenster mit optionalen Parametern.
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der Alert-Klasse
Eigenschaft
Beschreibung
Alert.buttonHeight
Die Höhe jeder Schaltfläche in Pixel. Der Standardwert
ist 22.
Alert.buttonWidth
Die Breite jeder Schaltfläche in Pixel. Der Standardwert ist
100.
Alert.cancelLabel
Der Bezeichnungstext der Schaltfläche Abbrechen.
Alert.noLabel
Der Bezeichnungstext der Schaltfläche Nein.
Alert.okLabel
Der Bezeichnungstext der Schaltfläche OK.
Alert.yesLabel
Der Bezeichnungstext der Schaltfläche Ja.
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Ereignisse der Alert-Klasse
Ereignis
Beschreibung
Alert.click
Broadcastübertragung, wenn auf eine Schaltfläche in
einem Alert-Fenster geklickt wird.
Erbt alle Ereignisse von UIObject und UIComponent.
Alert.buttonHeight
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Alert.buttonHeight
Beschreibung
Eigenschaft (Klasse); eine (statische) Klasseneigenschaft, die die Höhe der Schaltflächen ändert.
Siehe auch
Alert.buttonWidth
Alert-Komponente (nur Flash Professional)
73
Alert.buttonWidth
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Alert.buttonWidth
Beschreibung
Eigenschaft (Klasse); eine (statische) Klasseneigenschaft, die die Breite der Schaltflächen ändert.
Siehe auch
Alert.buttonHeight
Alert.click
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
clickHandler = function(eventObject){
// Hier Code eingeben
}
Alert.show(message[, title[, flags[, parent[, clickHandler[, icon[,
defaultButton]]]]]])
Beschreibung
Ereignis; sendet einen Broadcast an den registrierten Listener, wenn auf eine der Schaltflächen
OK, Ja, Nein oder Abbrechen geklickt wird.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Die AlertKomponente setzt ein click-Ereignis ab, wenn eine ihrer Schaltflächen gedrückt wird, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, des von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Sie rufen die Alert.show()-Methode auf und
übergeben ihr den Namen der Prozedur als Parameter. Wenn im Alert-Fenster auf eine
Schaltfläche geklickt wird, wird der Listener aufgerufen.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Alert.click-Ereignisses hat eine zusätzliche
detail-Eigenschaft, deren Wert je nachdem, auf welche Schaltfläche geklickt wurde, einer der
folgenden ist: Alert.OK, Alert.CANCEL, Alert.YES, Alert.NO. (Weitere Informationen zu
Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
74
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird die Prozedur meinClickHandler definiert und der Alert.show()Methode als fünfter Parameter übergeben. Das Ereignisobjekt wird von meinClickHandler im
Parameter evt erfasst. Die detail-Eigenschaft des Ereignisobjekts wird dann innerhalb einer
trace-Anweisung verwendet, um den Namen der Schaltfläche, auf die geklickt wurde (Alert.OK
oder Alert.CANCEL), an das Bedienfeld Ausgabe zu senden:
meinClickHandler = function(evt){
if(evt.detail == Alert.OK){
trace(Alert.okLabel);
}else if (evt.detail == Alert.CANCEL){
trace(Alert.cancelLabel);
}
}
Alert.show("This is a test of errors", "Error", Alert.OK | Alert.CANCEL, this,
meinClickHandler);
Alert.cancelLabel
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Alert.cancelLabel
Beschreibung
Eigenschaft (Klasse); eine (statische) Klasseneigenschaft, die den Bezeichnungstext auf der
Schaltfläche Abbrechen angibt.
Beispiel
Im folgenden Beispiel wird die Bezeichnung der Schaltfläche Abbrechen auf Abbruch
(„cancellation“) eingestellt:
Alert.cancelLabel = "cancellation";
Alert.noLabel
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Alert.noLabel
Beschreibung
Eigenschaft (Klasse); eine (statische) Klasseneigenschaft, die den Bezeichnungstext auf der
Schaltfläche Nein angibt.
Alert-Komponente (nur Flash Professional)
75
Beispiel
Im folgenden Beispiel wird die Bezeichnung der Schaltfläche Nein auf „nyet“ eingestellt:
Alert.noLabel = "nyet";
Alert.okLabel
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Alert.okLabel
Beschreibung
Eigenschaft (Klasse); eine (statische) Klasseneigenschaft, die den Bezeichnungstext auf der
Schaltfläche OK angibt.
Beispiel
Im folgenden Beispiel wird die Bezeichnung der Schaltfläche OK auf „okay“ eingestellt:
Alert.okLabel = "okay";
Alert.show()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Alert.show(message[, title[, flags[, parent[, clickHandler[, icon[,
defaultButton]]]]]])
Parameter
message
title
Titel
Die anzuzeigende Meldung.
Der Text in der Alert-Titelleiste. Dieser Parameter ist optional. Wenn der Parameter
nicht angegeben wird, ist die Titelleiste leer.
Ein optionaler Parameter, der die im Alert-Fenster anzuzeigenden Schaltflächen angibt.
Der Standardwert ist Alert.ok, der eine OK-Schaltfläche anzeigt. Wenn Sie mehr als einen Wert
verwenden, trennen Sie die Werte mit einem Balken |. Bei dem Wert kann es sich um einen oder
mehrere der Folgenden handeln:
flags
76
Kapitel 4: Komponenten-Referenz
•
•
•
•
Alert.OK
Alert.CANCEL
Alert.YES
Alert.NO
Sie können auch Alert.NONMODAL verwenden, um anzugeben, dass das Alert-Fenster
modusunabhängig ist. Ein modusunabhängiges Fenster ermöglicht einem Benutzer die
Interaktion mit anderen Fenstern in der Anwendung.
parent Das Parent-Fenster für die Alert-Komponente. Das Alert-Fenster zentriert sich im
Parent-Fenster. Verwenden Sie den Wert null oder undefined, um die _root-Zeitleiste anzugeben.
Das Parent-Fenster muss von der UIComponent-Klasse erben. Sie können das Parent-Fenster mit
mx.core.View registrieren, damit es von UIComponent erbt. Dieser Parameter ist optional.
clickHandler Ein Handler für die click-Ereignisübertragung, wenn auf die Schaltflächen
geklickt wird. Zusätzlich zu den Objekteigenschaften des Standard-click-Ereignisses gibt es eine
weitere detail-Eigenschaft, die den Wert für den Schaltflächenparameter enthält, auf den
geklickt wurde (Alert.OK, Alert.CANCEL, Alert.YES, Alert.NO). Bei diesem Handler kann es
sich um eine Funktion oder ein Objekt handeln. Weitere Informationen finden Sie in Kapitel 2,
„Komponentenereignis-Listener verwenden“, auf Seite 26.
Ein String, der den Verknüpfungsbezeichner eines Symbols in der Bibliothek darstellt, der
als Symbol verwendet werden kann, das links vom Text angezeigt wird. Dieser Parameter ist
optional.
icon
defaultButton Gibt an, auf welche Schaltfläche geklickt wurde, wenn ein Benutzer die
Eingabetaste drückt. Dieser Parameter kann folgende Werte annehmen:
•
•
•
•
Alert.OK
Alert.CANCEL
Alert.YES
Alert.NO
Rückgaben
Die Instanz der Alert-Klasse, die erstellt wird.
Beschreibung
Methode (Klasse); eine (statische) Klassenmethode, die ein Alert-Fenster mit einer Nachricht,
einem optionalen Titel, optionalen Schaltflächen und einem optionalen Symbol anzeigt. Der
Titel des Alert-Fensters wird im oberen Bereich angezeigt und wird links ausgerichtet. Das
Symbol wird links vom Nachrichtentext angezeigt. Die Schaltflächen werden zentriert unterhalb
des Nachrichtentextes und des Symbols angezeigt.
Beispiel
Der folgende Code ist ein einfaches Beispiel eines modusabhängigen Alert-Fensters mit einer OKSchaltfläche:
Alert.show("Hallo Welt!");
Der folgende Code definiert eine Klickprozedur, die eine Nachricht zum Bedienfeld Ausgabe mit
der Information sendet, auf welche Schaltfläche geklickt wurde:
Alert-Komponente (nur Flash Professional)
77
meinClickHandler = function(evt){
trace (evt.detail + "wurde angeklickt");
}
Alert.show("This is a test of errors", "Error", Alert.OK | Alert.CANCEL, this,
meinClickHandler);
Hinweis: Die detail-Eigenschaft des Ereignisobjekts gibt eine Zahl zurück, die jeweils eine
Schaltfläche darstellt. Die Schaltfläche OK wird durch 4, die Schaltfläche Abbrechen durch 8, die
Schaltfläche Ja durch 1 und die Schaltfläche Nein durch 2 dargestellt.
Alert.yesLabel
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Alert.yesLabel
Beschreibung
Eigenschaft (Klasse); eine Klasseneigenschaft (statisch), die den Beschriftungstext auf der
Schaltfläche Ja angibt.
Beispiel
Im folgenden Beispiel wird die Beschriftung der Schaltfläche OK auf „da“ gesetzt:
Alert.yesLabel = "da";
Button-Komponente
Die Button-Komponente ist eine rechteckige Schaltfläche mit veränderlicher Größe als
Bestandteil der Benutzeroberfläche. Sie können Schaltflächen eigene Symbole zuweisen.
Außerdem können Sie das Verhalten von Schaltflächen ändern und herkömmliche Schaltflächen
in Schaltflächen mit Umschaltfunktion umwandeln. Ein Schaltfläche mit Umschaltfunktion
(Toggle-Schaltfläche) bleibt nach dem Klicken so lange aktiviert, bis der Anwender erneut darauf
klickt.
Schaltflächen können innerhalb der Anwendung aktiviert oder deaktiviert werden. Im
deaktivierten Zustand reagiert die Schaltfläche nicht auf Maus- und Tastatureingaben. Aktivierte
Schaltflächen erhalten den Eingabefokus, wenn darauf geklickt wird oder wenn sie mit der
Tabulatortaste angesteuert werden. Schaltflächeninstanzen mit Eingabefokus können mit den
folgenden Tasten gesteuert werden:
78
Taste
Beschreibung
<Umschalt>+<Tab>
Verschiebt den Fokus auf das vorherige Objekt.
Leertaste
Drückt die Komponente bzw. gibt diese frei und löst das Ereignis click
aus.
<Tab>
Verschiebt den Fokus auf das nächste Objekt.
Kapitel 4: Komponenten-Referenz
Weitere Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte
Fokusnavigation erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
Die Änderungen an den Parametern der einzelnen Schaltflächeninstanzen, die beim Authoring
im Eigenschafteninspektor oder im Komponenten-Inspektor vorgenommen werden, werden
jeweils in einer Live-Vorschau angezeigt. Anstelle eigener Symbole werden in der Live-Vorschau
auf der Bühne allerdings graue Quadrate angezeigt.
Die einer Anwendung hinzugefügten Button-Komponenten können Sie über das Bedienfeld
Eingabehilfen für Bildschirmleseprogramme zugänglich machen. Dazu brauchen Sie lediglich die
folgende Zeile in den Code einzufügen:
mx.accessibility.ButtonAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie in der Hilfe „Flash verwenden“ unter
„Barrierefreie Inhalte erstellen“.
Mit der Button-Komponente arbeiten
Die Schaltfläche (Button) gehört zu den grundlegenden Bestandteilen von Formularen und WebAnwendungen. Mit Schaltflächen können Sie dem Anwender die Möglichkeit geben, Ereignisse
zu initiieren. Die meisten Formulare enthalten beispielsweise eine Schaltfläche Abschicken, mit
der die Übertragung der eingegebenen Daten an den Server eingeleitet wird. In Präsentationen
ermöglichen Schaltflächen wie Zurück und Weiter das Navigieren zwischen den einzelnen Seiten.
Sie können einer Schaltfläche ein Symbol zuweisen, indem Sie einen Movieclip oder ein
Grafiksymbol auswählen oder erstellen und als Symbol zuweisen. Damit die Schaltfläche korrekt
angezeigt wird, muss das Symbol mit den Koordinaten 0, 0 registriert werden. Wählen Sie im
Bedienfeld Bibliothek das gewünschte Symbol aus, öffnen Sie über das Menü Optionen das
Dialogfeld Verknüpfung, und geben Sie einen Verknüpfungsbezeichner ein. Derselbe Wert ist
auch als Symbolparameter im Bedienfeld Eigenschafteninspektor oder Komponenten-Inspektor
anzugeben. Sie können diesen Wert auch für die ActionScript-Eigenschaft Button.icon eingeben.
Hinweis: Wenn das Symbol größer als die Schaltfläche ist, ragt es über deren Begrenzungen
hinaus.
Parameter der Button-Komponente
Jeder Instanz einer Button-Komponente können beim Authoring im Bedienfeld
Eigenschafteninspektor oder Komponenten-Inspektor die folgenden Parameter zugewiesen
werden:
Mit label legen Sie den Schaltflächentext fest. Der Standardtext lautet „Button“.
Mit icon können Sie der Schaltfläche ein eigenes Symbol zuweisen. Der Wert entspricht dem
Verknüpfungsbezeichner eines Movieclips oder eines Grafiksymbols in der Bibliothek. Ein
Standardwert ist nicht vorhanden.
Mit toggle können Sie der Schaltfläche eine Umschaltfunktion zuweisen. Wenn Sie diesen
Parameter auf den Wert „true“ setzen, bleibt die Schaltfläche nach dem Klicken so lange aktiviert,
bis der Anwender erneut darauf klickt. Wenn Sie diesen Parameter auf den Wert „false“ setzen,
verhält sich die Schaltfläche wie eine normale Schaltfläche. Der Standardwert ist „false“.
Button-Komponente
79
Wenn Sie diesen Parameter auf „true“ setzen, können Sie mit dem zusätzlichen Parameter
selected festlegen, ob die Schaltfläche im aktivierten (true) oder deaktivierten (false)
Ausgangszustand angezeigt wird. Der Standardwert lautet false.
Mit labelPlacement legen Sie die Ausrichtung des Beschriftungstexts der Schaltfläche in Bezug
zum Symbol fest. Diesem Parameter können die vier Werte left (links), right (rechts), top (oben)
und bottom (unten) zugewiesen werden. Der Standardwert ist right. Weitere Informationen
finden Sie unter Button.labelPlacement.
Sie können diese und weitere Optionen für Button-Komponenten über die entsprechenden
Eigenschaften, Methoden und Ereignisse in ActionScript steuern. Weitere Informationen finden
Sie unter Button-Klasse.
Anwendungen mit der Button-Komponente erstellen
Im Folgenden wird erläutert, wie Sie einer Anwendung beim Authoring eine ButtonKomponente hinzufügen. Im Beispiel wird beschrieben, wie Sie eine Schaltfläche mit dem
Beschriftungstext „Hilfe“ und einem eigenen Symbol erstellen, mit der der Anwender ein
Hilfesystem aufrufen kann.
Führen Sie die folgenden Schritte aus, um eine Anwendung mit einer Button-Komponente
zu erstellen:
1 Ziehen Sie eine Button-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Geben Sie im Eigenschafteninspektor den Instanznamen helpBtn ein.
3 Führen Sie im Eigenschafteninspektor die folgenden Schritte durch:
Geben Sie Hilfe als Wert für den Parameter label ein.
■ Geben Sie HelpIcon als Wert für den Parameter icon ein.
Sie können der Schaltfläche ein Symbol zuweisen, indem Sie den Verknüpfungsbezeichner
eines Movieclips oder Grafiksymbols aus der Bibliothek als Wert für den Parameter icon
zuweisen. Im Beispiel lautet der Verknüpfungsbezeichner „HelpIcon“.
■ Weisen Sie der Eigenschaft toggle den Wert „true“ zu.
4 Wählen Sie in der Zeitleiste das erste Bild aus, öffnen Sie das Bedienfeld Aktionen, und geben
Sie den folgenden Code ein:
■
clippyListener = new Object();
clippyListener.click = function (evt){
clippyHelper.enabled = evt.target.selected;
}
helpBtn.addEventListener("click", clippyListener);
Mit der letzten Codezeile wird der Instanz helpBtn eine Ereignisprozedur click hinzugefügt.
Die Prozedur aktiviert und deaktiviert die Instanz clippyHelper, bei der es sich beispielsweise
um ein Bedienfeld mit einer Online-Hilfe handeln kann.
80
Kapitel 4: Komponenten-Referenz
Die Button-Komponente anpassen
Button-Komponenten können sowohl beim Authoring als auch zur Laufzeit horizontal und
vertikal transformiert werden. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne
aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit verwenden Sie hierzu die Methode setSize()
(siehe UIObject.setSize()) oder die entsprechenden Eigenschaften und Methoden der ButtonKlasse (siehe Button-Klasse). Wenn die Größe der Schaltfläche geändert wird, wird die Größe des
Symbols und der Beschriftung nicht automatisch angepasst.
Die Begrenzungsbox einer Schaltflächeninstanz ist nicht sichtbar. Sie markiert zugleich den
Kollisionsbereich der Instanz. Wenn Sie eine Instanz vergrößern, vergrößert sich auch der
Kollisionsbereich. Wenn der Platz innerhalb der Begrenzungsbox nicht für die Beschriftung
ausreicht, wird diese unvollständig angezeigt.
Wenn das Symbol größer als die Schaltfläche ist, ragt es über deren Begrenzungen hinaus.
Stile für die Button-Komponente verwenden
Durch Zuweisen von Stileigenschaften können Sie die Gestaltung einer Schaltflächeninstanz
ändern. Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Die Button-Komponente unterstützt die folgenden Kranz-Stile:
Stil
Beschreibung
themeColor
Der Hintergrund einer Komponente. Dies ist der einzige Farbstil, der den Wert
nicht übernimmt. Mögliche Wert sind „haloGreen“, „haloBlue“ und „haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil: „normal“ oder „italic“.
fontWeight
Die Schriftstärke: „normal“ oder „bold“.
Skins für die Button-Komponente verwenden
Die Button-Komponente verwendet für die Darstellung der Schaltflächenzustände das ZeichnenAPI von ActionScript. Wenn Sie beim Authoring der Button-Komponente Skins zuweisen
möchten, bearbeiten Sie den ActionScript-Code in der Datei ButtonSkin.as, die im Ordner First
Run\Classes\mx\skins\halo gespeichert ist.
Button-Komponenten, die Sie mit der Methode UIObject.createClassObject() dynamisch
(zur Laufzeit) erstellen, können Sie dynamisch Skins zuweisen. Sie können einer Komponente zur
Laufzeit Skins zuweisen, indem Sie die Skin-Eigenschaften des Parameters initObject anpassen,
der an die Methode createClassObject() übergeben wird. Diese Skin-Eigenschaften legen die
Namen der Symbole fest, die für die verschiedenen Zustände der Schaltfläche verwendet werden
sollen (mit oder ohne Schaltflächensymbol).
Button-Komponente
81
Wenn Sie beim Authoring den Parameter icon oder zur Laufzeit die ActionScript-Eigenschaft
icon festlegen, wird derselbe Verknüpfungsbezeichner für drei Symbolzustände zugewiesen:
falseUpIcon, falseDownIcon und trueUpIcon. Sie können abweichende Symbole für die
einzelnen Symbolzustände (von denen es insgesamt acht gibt) zuweisen, indem Sie die
Eigenschaften des Parameters initObject anpassen, der an die Methode createClassObject()
übergeben wird. Auf diese Weise können Sie beispielsweise erreichen, dass ein anderes Symbol
angezeigt wird, wenn der Anwender gerade auf eine Schaltfläche klickt.
Im folgenden Codebeispiel wird ein Objekt mit der Bezeichnung initObject erstellt, das als
Parameter initObject die Skin-Eigenschaften des neuen Verknüpfungsbezeichners für das
Symbol einstellt. In der letzten Codezeile wird durch einen Aufruf der Methode
createClassObject() eine neue Instanz der Button-Klasse mit den im Parameter initObject
übergebenen Eigenschaften erzeugt:
var initObject = new Object();
initObject.falseUpIcon = "MeinFalseUpIcon";
initObject.falseDownIcon = "MeinFalseDownIcon";
initObject.trueUpIcon = "MeinTrueUpIcon";
createClassObject(mx.controls.Button, "ButtonInstance", 0, initObject);
Weitere Informationen hierzu finden Sie unter „Skinning-Komponenten“ auf Seite 42 und
UIObject.createClassObject().
Aktivierte Schaltflächen werden im Over-Status angezeigt, wenn sich der Mauszeiger darüber
befindet. Beim Klicken auf die Schaltfläche erhält diese den Eingabefokus, und sie wird im
Down-Status angezeigt. Beim Loslassen der Maustaste wird die Schaltfläche wieder im OverStatus angezeigt. Wenn der Mauszeiger bei gedrückter Maustaste verschoben wird, sodass er sich
nicht mehr über der Schaltfläche befindet, kehrt diese wieder in den Ausgangszustand zurück,
behält aber den Eingabefokus. Wenn der Parameter toggle auf „true“ gesetzt ist, ändert sich der
Zustand erst beim Loslassen der Maustaste über der Schaltfläche.
Deaktivierte Schaltflächen werden unabhängig von den Bedienvorgängen des Anwenders immer
im Disabled-Status angezeigt.
Für Button-Komponenten sind die folgenden Skin-Eigenschaften verfügbar:
82
Eigenschaft
Beschreibung
falseUpSkin
Up-Status (Schaltfläche nicht geklickt). Der Standardwert ist
RectBorder.
falseDownSkin
Pressed-Status (Schaltfläche geklickt). Der Standardwert ist
RectBorder.
falseOverSkin
Over-Status (Mauszeiger über der Schaltfläche). Der Standardwert ist
RectBorder.
falseDisabledSkin
Disabled-Status (Schaltfläche deaktiviert). Der Standardwert ist
RectBorder.
trueUpSkin
Toggle-Status (Schaltfläche mit Umschaltfunktion). Der Standardwert
ist RectBorder.
trueDownSkin
Pressed-Status bei Toggle-Schaltflächen. Der Standardwert ist
RectBorder.
trueOverSkin
Over-Status bei Toggle-Schaltflächen. Der Standardwert ist
RectBorder.
Kapitel 4: Komponenten-Referenz
Eigenschaft
Beschreibung
trueDisabledSkin
Disabled-Status bei Toggle-Schaltflächen. Der Standardwert ist
RectBorder.
falseUpIcon
Symbol im Up-Status. Der Standardwert ist undefined.
falseDownIcon
Symbol im Pressed-Status. Der Standardwert ist undefined.
falseOverIcon
Symbol im Over-Status. Der Standardwert ist undefined.
falseDisabledIcon
Symbol im Disabled-Status. Der Standardwert ist undefined.
trueUpIcon
Symbol im Toggle-Status. Der Standardwert ist undefined.
trueOverIcon
Symbol im Over-Status bei Toggle-Schaltflächen. Der Standardwert
ist undefined.
trueDownIcon
Symbol im Pressed-Status bei Toggle-Schaltflächen. Der
Standardwert ist undefined.
trueDisabledIcon
Symbol im Disabled-Status bei Toggle-Schaltflächen. Der
Standardwert ist undefined.
Button-Klasse
Vererbung
UIObject > UIComponent > SimpleButton > Button
ActionScript-Klassenname
mx.controls.Button
Mit Hilfe der Eigenschaften der Button-Klasse können Sie Schaltflächen Symbole und
Beschriftungstexte zuweisen sowie Schaltflächen mit einer Umschaltfunktion versehen.
Per ActionScript zugewiesene Eigenschaften der Button-Klasse haben Vorrang vor gleichnamigen
Parametern, die im Bedienfeld Eigenschafteninspektor oder Komponenten-Inspektor festgelegt
werden.
Die Button-Komponente verwendet ein mit dem FocusManager gezeichnetes, angepasstes
Rechteck mit abgerundeten Ecken, das das standardmäßige Fokus-Rechteck von Flash Player
ersetzt. Weitere Informationen finden Sie unter „Benutzerdefinierte Fokusnavigation erstellen“
auf Seite 28.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.Button.version);
Hinweis: Der folgende Code gibt undefined zurück: trace(meineButtonInstance.version);.
Die Komponentenklasse Button ist nicht mit dem integrierten Button-Objekt von ActionScript
identisch.
Button-Komponente
83
Übersicht: Methoden der Button-Klasse
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften für die Button-Klasse
Methode
Beschreibung
SimpleButton.emphasized
Gibt an, ob eine Schaltfläche aussieht wie eine
Standardschaltfläche.
SimpleButton.emphasizedStyleDeclaration Die Stildeklaration, wenn die emphasizedEigenschaft auf true eingestellt ist.
Button.icon
Gibt das Symbol der Schaltflächeninstanz an.
Button.label
Gibt den innerhalb der Schaltfläche angezeigten Text
an.
Button.labelPlacement
Gibt die Ausrichtung des Beschriftungstexts in Bezug
zum Symbol an.
Button.selected
Wenn die Eigenschaft toggle auf true gesetzt ist, gibt
diese Eigenschaft an, ob die Schaltfläche gedrückt
(true) oder nicht gedrückt (false) ist.
Button.toggle
Gibt an, ob die Schaltfläche als Toggle-Schaltfläche
(mit Umschaltfunktion) fungiert.
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Ereignisse der Button-Klasse
Methode
Beschreibung
Button.click
Broadcast beim Drücken der Maustaste über einer
Schaltflächeninstanz und beim Betätigen der
Leertaste.
Erbt alle Ereignisse von UIObject und UIComponent.
Button.click
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(click){
...
}
84
Kapitel 4: Komponenten-Referenz
Verwendung 2:
listenerObject = new Object();
listenerObject.click = function(eventObject){
...
}
buttonInstance.addEventListener("click", listenerObject)
Beschreibung
Ereignis; Broadcast an alle registrierten Listener, wenn die Maustaste über der Schaltfläche
gedrückt (losgelassen) oder wenn die Schaltfläche den Fokus hat und die Leertaste betätigt wird.
Im ersten Verwendungsbeispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der
Button-Komponente zugewiesen werden muss. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Wenn
beispielsweise der folgende Code der Button-Komponenteninstanz meineButtonComponent
zugewiesen ist, wird _level0.meineButtonComponent an das Bedienfeld Ausgabe gesendet.
on(click){
trace(this);
}
Beachten Sie das abweichende Verhalten von this, wenn dieses Schlüsselwort innerhalb einer
on()-Prozedur verwendet wird, die einem normalen Flash-Schaltflächensymbol zugewiesen ist.
Wird this innerhalb einer on()-Prozedur verwendet, die einem Schaltflächensymbol zugewiesen
ist, bezieht sich dieses Schlüsselwort auf die Zeitleiste, die die betreffende Schaltfläche enthält.
Wenn beispielsweise der folgende Code der Schaltflächensymbolinstanz meinButton zugewiesen
wird, wird „_level0“ an das Ausgabebedienfeld gesendet:
on(release) {
trace(this);
}
Hinweis: Für das integrierte Button-Objekt von ActionScript gibt es kein click-Ereignis, sondern
nur ein release-Ereignis mit weitgehend ähnlicher Funktion.
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (buttonInstance) setzt ein Ereignis (in diesem Fall click) ab, und das
Ereignis reagiert auf eine Funktion (auch als Handler bezeichnet) des von Ihnen erstellten
Listener-Objekts (listenerObject). Beim Auslösen dieses Ereignisses wird eine von Ihnen
definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf das
Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Das Ereignisobjekt verfügt über
einen Satz von Eigenschaften mit Informationen zum Ereignis. Mit Hilfe dieser Eigenschaften
können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen Sie die Methode
addEventListener() (siehe UIEventDispatcher.addEventListener()) für die
Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz zuzuordnen.
Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Button-Komponente
85
Beispiel
Im folgenden Beispiel, das einem Bild in der Zeitleiste zugewiesen ist, wird eine Meldung an das
Ausgabebedienfeld gesendet, wenn auf eine Schaltfläche mit der Bezeichnung buttonInstance
geklickt wird. In der ersten Codezeile wird der Schaltfläche eine Beschriftung zugewiesen. Die
zweite Zeile bewirkt, dass sich die Schaltfläche als Toggle-Schaltfläche (mit Umschaltfunktion)
verhält. In der dritten Zeile wird ein Listener-Objekt mit der Bezeichnung form erstellt. In der
vierten Zeile wird eine Funktion für das click-Ereignis des Listener-Objekts definiert. Eine
trace-Aktion innerhalb der Funktion erzeugt anhand des automatisch übergebenen
Ereignisobjekts (in diesem Fall eventObj) eine Meldung. Die Eigenschaft target eines
Ereignisobjekts entspricht der Komponente, die das Ereignis erzeugt (in diesem Fall
buttonInstance). Der Zugriff auf die Eigenschaft Button.selected erfolgt über die
Eigenschaft target des Ereignisobjekts. In der letzten Zeile wird die Methode
addEventListener() durch buttonInstance aufgerufen; dabei werden das Ereignis click und
das Listener-Objekt form als Parameter übergeben:
buttonInstance.label = "Mausklick testen"
buttonInstance.toggle = true;
form = new Object();
form.click = function(eventObj){
trace("Die gewählte Eigenschaft wurde geändert in " +
eventObj.target.selected);
}
buttonInstance.addEventListener("click", form);
Im folgenden Codebeispiel wird ebenfalls beim Klicken auf buttonInstance eine Meldung an
das Ausgabebedienfeld gesendet. Die on()-Prozedur muss buttonInstance direkt zugewiesen
werden:
on(click){
trace("Klick auf Button-Komponente");
}
Siehe auch
UIEventDispatcher.addEventListener()
SimpleButton.emphasized
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
buttonInstance.emphasized
Beschreibung
Eigenschaft; gibt an, ob die Schaltfläche hervorgehoben (true) ist oder nicht (false). Im
hervorgehobenen Zustand entspricht die Darstellung einer Standardschaltfläche. Verwenden Sie
generell die Eigenschaft FocusManager.defaultPushButton, und stellen Sie nicht die
Eigenschaft emphasized direkt ein. Der Standardwert lautet false.
86
Kapitel 4: Komponenten-Referenz
Die emphasized-Eigenschaft ist eine statische Eigenschaft der SimpleButton-Klasse. Sie müssen
deshalb direkt von SimpleButton aus darauf zugreifen, wie im Folgenden dargestellt:
SimpleButton.emphasizedStyleDeclaration = "foo";
Wenn Sie nicht FocusManager.defaultPushButton verwenden, empfiehlt es sich, eine
Schaltfläche in den hervorgehobenen Status zu versetzen oder über den hervorgehobenen Status
die Farbe von Text zu ändern. Im folgenden Beispiel wird die Eigenschaft emphasized für die
Schaltflächeninstanz meinButton festgelegt:
_global.styles.foo = new CSSStyleDeclaration();
_global.styles.foo.color = 0xFF0000;
SimpleButton.emphasizedStyleDeclaration = "foo";
meinButton.emphasized = true;
Siehe auch
SimpleButton.emphasizedStyleDeclaration
SimpleButton.emphasizedStyleDeclaration
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
buttonInstance.emphasizedStyleDeclataion
Beschreibung
Eigenschaft; ein String mit der Stildeklaration zur Formatierung einer Schaltfläche, wenn die
Eigenschaft emphasized auf true eingestellt ist.
Siehe auch
SimpleButton.emphasized
Button.icon
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
buttonInstance.icon
Button-Komponente
87
Beschreibung
Eigenschaft; eine Zeichenfolge, die den Verknüpfungsbezeichner eines Symbols aus der
Bibliothek angibt, das als Symbol einer Schaltflächeninstanz verwendet werden soll. Als Symbol
kann wahlweise ein Movieclip-Symbol oder ein Grafiksymbol mit Registrierungspunkt in der
oberen linken Ecke verwendet werden. Die Größe der Schaltfläche wird nicht automatisch an die
Größe des Symbols angepasst. Um zu verhindern, dass das Symbol über die Schaltfläche
hinausragt, müssen Sie deren Größe erforderlichenfalls selbst anpassen.
Um einer Schaltfläche ein eigenes Symbol zuzuweisen, müssen Sie zunächst einen Movieclip oder
ein Grafiksymbol erstellen. Wählen Sie das gewünschte Symbol im Symbolbearbeitungsmodus
auf der Bühne aus, und geben Sie in den Feldern X und Y im Eigenschafteninspektor jeweils den
Wert 0 ein. Wählen Sie den Movieclip im Bedienfeld Bibliothek aus, und wählen Sie
anschließend im Menü Optionen den Befehl Verknüpfung. Wählen Sie Export für ActionScript,
und geben Sie im Textfeld Bezeichner einen Bezeichner ein.
Der Standardwert ist ein leerer String (""); hierdurch wird der Schaltfläche kein Symbol
zugewiesen.
Mit der Eigenschaft labelPlacement können Sie die Position des Symbols in Bezug zur
Schaltfläche festlegen.
Beispiel
Im folgenden Codebeispiel wird einer Schaltflächeninstanz ein Movieclip aus dem Bedienfeld
Bibliothek als Symbol zugewiesen, dessen Verknüpfungsbezeichner hapiness lautet:
meinButton.icon = "hapiness"
Siehe auch
Button.labelPlacement
Button.label
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
buttonInstance.label
Beschreibung
Eigenschaft; gibt den Beschriftungstext für eine Schaltflächeninstanz an. Standardmäßig wird der
Beschriftungstext mittig innerhalb der Schaltfläche ausgerichtet. Ein mit dieser Methode
zugewiesener Beschriftungstext hat Vorrang vor einem Text, der beim Authoring über den
entsprechenden Parameter im Bedienfeld Eigenschafteninspektor oder Komponenten-Inspektor
zugewiesen wurde. Der Standardwert ist Button.
88
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Codebeispiel wird der Text „Aus Liste entfernen“ als Beschriftung zugewiesen:
buttonInstance.label = "Aus Liste entfernen";
Siehe auch
Button.labelPlacement
Button.labelPlacement
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
buttonInstance.labelPlacement
Beschreibung
Eigenschaft; gibt die Position des Beschriftung in Bezug zum Symbol an. Der Standardwert ist
right. Symbol und Beschriftungstext werden immer vertikal und horizontal zentriert innerhalb
des Begrenzungsbereichs der Schaltfläche ausgerichtet. Für labelPlacement können die folgenden
Werte angegeben werden:
•
•
•
•
Der Beschriftungstext wird rechts vom Symbol positioniert.
left Der Beschriftungstext wird links vom Symbol positioniert.
bottom Der Beschriftungstext wird unterhalb des Symbols positioniert.
top Der Beschriftungstext wird oberhalb des Symbols positioniert.
right
Beispiel
Im folgenden Codebeispiel wird der Beschriftungstext links vom Symbol positioniert. In der
zweiten Codezeile wird der Wert der Eigenschaft labelPlacement an das Ausgabebedienfeld
gesendet.
iconInstance.labelPlacement = "left";
trace(iconInstance.labelPlacement);
Button.selected
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
buttonInstance.selected
Button-Komponente
89
Beschreibung
Eigenschaft; ein boolescher Wert, der angibt, ob die Schaltfläche gedrückt (true) oder nicht
gedrückt (false) ist. Die Eigenschaft selected kann nur auf true gesetzt werden, wenn auch
die Eigenschaft toggle den Wert true hat. Wenn die Eigenschaft toggle den Wert false hat,
bleibt die Zuweisung des Werts true für die Eigenschaft selected ohne Auswirkungen. Der
Standardwert lautet false.
Das Ereignis click wird nicht ausgelöst, wenn sich der Wert der Eigenschaft selected mit
ActionScript ändert. Es wird ausgelöst, wenn ein Benutzer die Schaltfläche verwendet.
Beispiel
Im folgenden Beispiel wird der Wert der Eigenschaft toggle auf true und der Wert der
Eigenschaft selected ebenfalls auf true gesetzt; dadurch befindet sich die Schaltfläche im
gedrückten Zustand. Die Aktion trace sendet den Wert true an das Ausgabebedienfeld:
ButtonInstance.toggle = true; // "toggle" muss "true" sein, damit die gewählte
// Eigenschaft gesetzt werden kann
ButtonInstance.selected = true; // Zeigt den Toggle-Status der Schaltfläche an
trace(ButtonInstance.selected); // Aktion "trace" übergibt "true"
Siehe auch
Button.toggle
Button.toggle
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
buttonInstance.toggle
Beschreibung
Eigenschaft; ein boolescher Wert, der angibt, ob sich die Schaltfläche als Toggle-Schaltfläche mit
Umschaltfunktion (true) oder wie eine normale Schaltfläche (false) verhält. Der Standardwert
ist false. Eine Toggle-Schaltfläche bleibt nach dem Klicken so lange im gedrückten Zustand, bis
erneut darauf geklickt wird.
Beispiel
Im folgenden Codebeispiel wird die Eigenschaft toggle auf true gesetzt, sodass die Instanz
meinButton als Toggle-Schaltfläche fungiert.
meinButton.toggle = true;
90
Kapitel 4: Komponenten-Referenz
CellRenderer-API
Die CellRenderer-API ist ein Satz von Eigenschaften und Methoden, den die List-basierten
Komponenten (List, DataGrid, Tree und Menu) verwenden, um benutzerdefinierten Zellinhalt
für jede ihrer Zeilen anzuzeigen und zu manipulieren. Diese benutzerdefinierte Zelle kann eine
vorgefertigte Komponente enthalten, wie beispielsweise eine CheckBox, oder eine von Ihnen
erstellte Klasse.
Mit List-Klassen arbeiten
Zur Verwendung der CellRenderer-API benötigen Sie Vorkenntnisse zur List-Klasse. Die
Komponenten DataGrid, Tree und Menu sind eine Erweiterung der List-Klasse, daher ist ein
Verständnis der List-Klasse Voraussetzung zum Verständnis dieser Komponenten.
Hinweis: Eine Komponente ist eine Klasse, aber eine Klasse ist nicht notwendigerweise eine
Komponente.
Zusammensetzung der List-Klasse
List-Klassen setzen sich aus Zeilen zusammen. Diese Zeilen zeigen Rollover- und
Auswahlmarkierungen an, werden als Aktiv-Zustand zur Zeilenauswahl verwendet und spielen
beim Scrollen eine wichtige Rolle. Abgesehen von Auswahlmarkierungen und Symbolen (wie
beispielsweise die Knotensymbole und Erweiterungspfeile einer Tree-Komponente), besteht eine
Zeile aus einer Zelle (oder im Falle von DataGrid aus mehreren Zellen). Bei der
Standardbedingung sind diese Zellen TextField-Objekte, die die CellRenderer-API
implementieren. Sie können eine List-Klasse jedoch anweisen, für jede Zeile eine andere
Komponentenklasse als Zelle zu verwenden. Die einzige Voraussetzung ist, dass die Klasse die
CellRenderer-API implementiert, die die List-Klasse zur Kommunikation mit der Zelle
verwendet.
Stapelanordnung einer Zeile in einer List- oder DataGrid-Komponente.
Hinweis: Wenn eine Zelle über Ereignisprozeduren (onPress usw.) für Schaltflächen verfügt,
empfängt der Hintergrund-Kollisionsbereich möglicherweise keine Eingabe, die zur Auslösung der
Ereignisse notwendig ist.
Scrolling-Verhalten der List-Klasse
List-Klassen verwenden zum Scrollen einen eher komplexen Algorithmus. Eine Liste ordnet nur
so viele Zeilen an, wie sie auf einmal anzeigen kann; Elemente unterhalb des Werts der rowCountEigenschaft erhalten keine Zeilen. Wenn ein Bildlauf in einer Liste durchgeführt wird, werden
alle Zeilen nach oben oder unten verschoben (je nach Bildlaufrichtung). Die Liste recycelt
daraufhin die Zeilen, die aus dem Anzeigebereich verschwunden sind; sie initialisiert diese neu
und verwendet sie für die neuen Zeilen, die in den Anzeigebereich verschoben werden, indem der
Wert der alten Zeile auf das neue Element in der Anzeige gesetzt wird und die alte Zeile dorthin
verschoben wird, wo das neue Element durch den Bildlauf in der Anzeige erscheint.
CellRenderer-API
91
Durch dieses Bildlaufverhalten können Sie nicht davon ausgehen, dass eine Zelle für nur einen
Wert verwendet wird. Da Zeilen wiederverwendet werden, muss der CellRenderer in der Lage
sein, ihren Status komplett zurückzusetzen, wenn sie auf einen neuen Wert gesetzt werden. Wenn
Ihr CellRenderer beispielsweise ein Symbol zur Anzeige eines Elements erstellt, muss dieses
Symbol möglicherweise entfernt werden, wenn ein anderes Element mit diesem wiedergegeben
wird. Gehen Sie beispielsweise davon aus, dass Ihr CellRenderer ein Behälter ist, der mit der Zeit
mit unzähligen Elementwerten gefüllt wird, und er muss in der Lage sein, sich komplett von der
Anzeige eines Werts zur Anzeige eines anderen zu verändern. Ihre Zelle sollte sogar in der Lage
sein, undefinierte Elemente ordnungsgemäß widerzugeben, was möglicherweise das Entfernen
des gesamten alten Inhalts der Zelle zur Folge hat.
Mit der CellRenderer-API arbeiten
Sie müssen eine Klasse mit 4 Methoden erstellen (CellRenderer.getPreferredHeight(),
CellRenderer.getPreferredWidth(), CellRenderer.setSize(),
CellRenderer.setValue()), die die List-basierte Komponente zur Kommunikation mit der
Zelle verwendet.
Es gibt zwei Methoden und eine Eigenschaft (CellRenderer.getCellIndex(),
und CellRenderer.listOwner), die einer Zelle automatisch
zugeordnet werden, um ihr die Kommunikation mit der List-basierten Komponente zu
ermöglichen. Nehmen wir beispielsweise an, eine Zelle verfügt über ein integriertes
Kontrollkästchen, über das eine Zeile ausgewählt wird, wenn auf diese geklickt wird. Der
CellRenderer benötigt einen Verweis auf die List-basierte Komponente, die sie enthält, um die
selectedIndex-Eigenschaft der List-basierten Komponente aufzurufen. Die Zelle muss
außerdem wissen, welcher Elementindex zurzeit wiedergegeben wird, sodass sie selectedIndex
auf die korrekte Zahl setzen kann; die Zelle kann zu diesem Zweck CellRenderer.listOwner
und CellRenderer.getCellIndex() verwenden. Sie müssen diese APIs nicht implementieren;
die Zelle empfängt diese automatisch, wenn sie innerhalb der List-basierten Komponente
platziert wird.
CellRenderer.getDataLabel()
Für die CellRenderer-API zu implementierende Methoden
Sie müssen einen Klasse mit den folgenden Methoden erstellen, sodass die Komponenten List,
DataGrid, Tree oder Menu mit der Zelle kommunizieren können:
Name
Beschreibung
CellRenderer.getPreferredHeight() Gibt die bevorzugte Höhe einer Zelle zurück.
92
CellRenderer.getPreferredWidth()
Gibt die bevorzugte Breite einer Zelle zurück.
CellRenderer.setSize()
Legt die Breite und Höhe einer Zelle fest.
CellRenderer.setValue()
Legt den in der Zelle anzuzeigenden Inhalt fest.
Kapitel 4: Komponenten-Referenz
Durch die CellRenderer-API zur Verfügung gestellte Methoden
Im Folgenden werden die Methoden beschrieben, die die Komponenten List, DataGrid, Tree und
Menu an die Zelle übergeben, wenn diese innerhalb der Komponente erstellt wird. Sie müssen
diese Methoden nicht implementieren.
Name
Beschreibung
CellRenderer.getDataLabel()
Gibt einen String zurück, der den Namen des CellRendererDatenfeldes enthält.
CellRenderer.getCellIndex()
Gibt ein Objekt mit zwei Feldern zurück, columnIndex und
rowIndex, die die Position der Zelle angeben.
Durch die CellRenderer-API zur Verfügung gestellte Eigenschaften
Im Folgenden wird die Eigenschaft beschrieben, die die Komponenten List, DataGrid, Tree und
Menu an die Zelle übergeben, wenn diese innerhalb der Komponente erstellt wird. Sie müssen
diese Eigenschaft nicht implementieren.
Name
Beschreibung
CellRenderer.listOwner
Ein Verweis auf die List-Komponente, die die Zelle enthält.
CellRenderer.getDataLabel()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
componentInstance.getDataLabel()
Parameter
Keine.
Rückgaben
Ein String.
Beschreibung
Methode; gibt einen String zurück, der den Namen des CellRenderer-Datenfeldes enthält.
Beispiel
Der folgende Code liefert der Zelle die Information, dass sie das Datenfeld "Price" wiedergibt.
Die Variable p ist nun gleich "Price":
var p = getDataLabel();
CellRenderer-API
93
CellRenderer.getCellIndex()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
componentInstance.getCellIndex()
Parameter
Keine.
Rückgaben
Ein Objekt mit zwei Feldern: columnIndex und itemIndex.
Beschreibung
Methode; gibt ein Objekt mit zwei Feldern zurück, columnIndex und itemIndex, die die Zelle
im Raster finden. Jedes Feld ist eine Ganzzahl, die die Spaltenposition und Elementposition einer
Zelle angibt. Für andere Komponenten als DataGrid ist der Wert von columnIndex immer 0.
Beispiel
In diesem Beispiel wird dataProvider eines DataGrid aus einer Zelle bearbeitet:
var index = getCellIndex();
var colName = listOwner.getColumnAt(index.columnIndex).columnName;
listOwner.dataProvider.editField(index.itemIndex, colName, someVal);
CellRenderer.getPreferredHeight()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
componentInstance.getPreferredHeight()
Parameter
Keine.
Rückgaben
Die korrekte Höhe der Zelle.
Beschreibung
Methode; die bevorzugte Höhe einer Zelle. Dies ist besonders wichtig, um die richtige Texthöhe
innerhalb der Zelle zu erlangen. Wenn Sie diesen Wert höher als die rowHeight-Eigenschaft der
Komponente setzen, ragen die Zellen oben und unten über die Zeilen hinaus.
94
Kapitel 4: Komponenten-Referenz
Beispiel
In diesen Beispiel wird der Wert 20 zurückgegeben, wodurch angegeben wird, dass die Zelle 20
Pixel hoch ist:
function getPreferredHeight(Void) :Number
{
return 20;
}
CellRenderer.getPreferredWidth()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
componentInstance.getPreferredWidth()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; die bevorzugte Breite einer Zelle. Wenn Sie mehr Breite festlegen, als der Komponente
zur Verfügung steht, wird die Zelle möglicherweise abgeschnitten.
Beispiel
In diesem Beispiel wird der Wert 3 zurückgegeben, wodurch angegeben wird, dass die Zelle
dreimal größer als die Länge des Strings ist, der von ihr wiedergegeben wird:
function getPreferredWidth(Void) : Number
{
return meinString.length*3;
}
CellRenderer.listOwner
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
componentInstance.listOwner
CellRenderer-API
95
Beschreibung
Eigenschaft; ein Verweis auf die Liste, die die Zelle enthält. Bei dieser Liste kann es sich um
DataGrid, Tree oder List handeln.
Beispiel
In diesem Beispiel wird das in der Liste ausgewählte Element in einer Zelle gefunden:
var s = listOwner.selectedItem;
CellRenderer.setSize()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
componentInstance.setSize(width, height)
Parameter
width
Eine Zahl, die die Breite angibt, mit der die Komponente angeordnet werden soll.
height
Eine Zahl, die die Höhe angibt, mit der die Komponente angeordnet werden soll.
Rückgaben
Keine.
Beschreibung
Methode; enthält die Information für die Listenzellen, mit welcher Größe diese anzuordnen sind.
Das Layout sollte vom CellRenderer durchgeführt werden, sodass dieses in den angegebenen
Bereich passt, ansonsten ragt die visuelle Anzeige der Zelle möglicherweise über andere
Listenbereiche hinaus und erscheint unterbrochen.
Beispiel
In diesem Beispiel wird die Größe eines Bildes innerhalb der Zelle angepasst, damit dieses in die
durch die Liste festgelegte Grenzen passt:
function setSize(w:Number, h:Number) : Void
{
image._width = w-2;
image._height = w-2;
image._x = image._y = 1;
}
96
Kapitel 4: Komponenten-Referenz
CellRenderer.setValue()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
componentInstance.setValue(suggested, item, selected)
Parameter
suggested
Ein Wert, der ggf. für den CellRenderer-Text zu verwenden ist.
Ein Objekt, das das gesamte wiederzugebende Element darstellt. Der CellRenderer kann
beliebige Eigenschaften dieses Objekts, die zur Wiedergabe benötigt werden, verwenden.
item
Ein Boolescher Wert, der angibt, ob die Zeile, in der sich die Zelle befindet,
ausgewählt ist (true) oder nicht (false).
selected
Rückgaben
Keine.
Beschreibung
Methode; übernimmt die angegebenen Werte und erstellt eine Darstellung dieser innerhalb der
Zelle. Dadurch wird jeglicher Unterschied beseitigt, der zwischen dem, was in der Zelle
dargestellt wurde, und dem, was in der Zelle für das neue Element dargestellt werden muss,
besteht. Beachten Sie, dass jede Zelle während Ihrer Existenz zahlreiche Werte in der Liste
darstellen kann. Dies ist die wichtigste Methode jedes CellRenderers.
Beispiel
In diesem Beispiel wird ein Bild in eine Loader-Komponente innerhalb der Zelle geladen,
abhängig vom übergebenen Wert:
function setValue(suggested, item, selected) : Void
{
//Loader leeren
loader.contentPath = undefined;
// die Liste verfügt über URLs für unterschiedliche Bilder in ihrem
// Datenprovider
if (suggested!=undefined)
loader.contentPath = suggested;
}
CellRenderer-API
97
CheckBox-Komponente
Kontrollkästchen sind quadratische Felder, die ausgewählt werden können bzw. deren Auswahl
aufgehoben werden kann. Ausgewählte Kontrollkästchen werden durch Häkchen
gekennzeichnet. Kontrollkästchen können mit einem Beschriftungstext versehen werden, der
wahlweise links, rechts, über oder unter dem Kontrollkästchen positioniert werden kann.
Kontrollkästchen können in der Anwendung aktiviert und deaktiviert werden. Wenn der
Anwender auf die Beschriftung eines aktivierten Kontrollkästchens klickt, erhält dieses den
Eingabefokus und wird im gedrückten Zustand angezeigt. Wenn der Mauszeiger bei gedrückter
Maustaste den Begrenzungsbereich eines Kontrollkästchens oder des zugehörigen
Beschriftungstexts verlässt, wird die Komponente wieder im ursprünglichen Zustand angezeigt
und behält den Eingabefokus. Der Status eines Kontrollkästchens ändert sich erst, wenn die
Maustaste über der Komponente losgelassen wird. Darüber hinaus gibt es für Kontrollkästchen
zwei deaktivierte Zustände (ausgewählt und nicht ausgewählt), in denen keine Interaktion per
Maus oder Tastatur möglich ist.
Deaktivierte Kontrollkästchen werden unabhängig von der Interaktion des Anwenders im
deaktivierten Zustand angezeigt. Im deaktivierten Zustand reagiert die Schaltfläche nicht auf
Maus- und Tastatureingaben.
Eine CheckBox-Instanz erhält den Eingabefokus, wenn der Anwender darauf klickt oder die
Instanz mit der Tabulatortaste ansteuert. Eine CheckBox-Instanz mit Eingabefokus lässt sich mit
den folgenden Tasten steuern:
Taste
Beschreibung
<Umschalt>+<Tab>
Verschiebt den Fokus auf das vorherige Element.
Leertaste
Wählt die Komponente aus bzw. hebt die Auswahl der Komponente auf
und löst das Ereignis click aus.
<Tab>
Verschiebt den Fokus auf das nächste Element.
Weitere Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte
Fokusnavigation erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
Die Änderungen an den Parametern der einzelnen CheckBox-Instanzen, die beim Authoring im
Eigenschafteninspektor oder im Komponenten-Inspektor vorgenommen werden, werden jeweils
in einer Live-Vorschau angezeigt.
Die einer Anwendung hinzugefügten CheckBox-Komponenten können Sie über das Bedienfeld
Eingabehilfen für Bildschirmleseprogramme zugänglich machen. Dazu brauchen Sie lediglich die
folgende Codezeile einzufügen:
mx.accessibility.CheckBoxAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie in der Hilfe „Flash verwenden“ unter
„Barrierefreie Inhalte erstellen“.
98
Kapitel 4: Komponenten-Referenz
Mit der CheckBox-Komponente arbeiten
Kontrollkästchen gehören zu den grundlegenden Bestandteilen von Formularen und WebAnwendungen. Sie können Kontrollkästchen immer dann verwenden, wenn mehrere boolesche
Werte (true oder false) abgefragt werden sollen, die sich nicht gegenseitig ausschließen. Ein
Beispiel wäre ein Formular zur Erfassung persönlicher Angaben eines Kunden, in dem dieser über
entsprechende Kontrollkästchen seine Hobbys auswählen kann.
CheckBox-Parameter
Jeder Instanz einer CheckBox-Komponente können beim Authoring im Bedienfeld
Eigenschafteninspektor oder Komponenten-Inspektor die folgenden Parameter zugewiesen
werden:
Mit label legen Sie den Beschriftungstext für das Kontrollkästchen fest. Der Standardwert ist
defaultValue.
Mit selected legen Sie den Ausgangszustand des Kontrollkästchens, true oder false, fest.
Mit labelPlacement legen Sie die Ausrichtung des Beschriftungstexts in Bezug zum
Kontrollkästchen fest. Diesem Parameter können die vier Werte left (links), right (rechts),
top (oben) und bottom (unten) zugewiesen werden. Der Standardwert ist right. Weitere
Informationen finden Sie unter CheckBox.labelPlacement.
Sie können mit ActionScript-Eigenschaften, -Methoden und -Ereignissen diese und weitere
Optionen für die CheckBox-Komponenten steuern. Weitere Informationen finden Sie unter
(und somit die CheckBox-Klasse selbst) definieren.
Anwendungen mit der CheckBox-Komponente erstellen
Im Folgenden wird erläutert, wie Sie einer Anwendung beim Authoring eine CheckBoxKomponente hinzufügen. Die Komponente wird anhand eines Beispiels für ein Abfrageformular
einer Online-Partnervermittlung erläutert. Die Kunden können mit Hilfe dieses Formulars die
Datenbank nach möglichen Partnern durchsuchen. Mit dem Kontrollkästchen Alter eingrenzen
kann der Suchvorgang auf Partner beschränkt werden, die bestimmten Altersvorgaben
entsprechen. Wenn das Kontrollkästchen Alter eingrenzen ausgewählt wird, kann der Kunde das
gewünschte Mindest- und Höchstalter in die entsprechenden Textfelder eingeben. Diese
Textfelder sind nur verfügbar, wenn die Option Alter eingrenzen ausgewählt ist.
Führen Sie die folgenden Schritte aus, um eine Anwendung mit der CheckBox-Komponente
zu erstellen:
1 Ziehen Sie zwei TextInput-Komponenten aus dem Bedienfeld Komponenten auf die Bühne.
2 Geben Sie im Eigenschafteninspektor die Instanznamen minimumAge und maximumAge ein.
3 Ziehen Sie eine CheckBox-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
4 Führen Sie im Eigenschafteninspektor die folgenden Schritte durch:
■
■
Geben Sie als Instanznamen restrictAge ein.
Geben Sie Restrict Age als Wert für den Parameter label ein.
CheckBox-Komponente
99
5 Wählen Sie in der Zeitleiste das erste Bild aus, öffnen Sie das Bedienfeld Aktionen, und geben
Sie den folgenden Code ein:
restrictAgeListener = new Object();
restrictAgeListener.click = function (evt){
minimumAge.enabled = evt.target.selected;
maximumAge.enabled = evt.target.selected;
}
restrictAge.addEventListener("click", restrictAgeListener);
Durch diesen Code wird eine Ereignisprozedur click erstellt, die die bereits auf der Bühne
platzierten Textfeldkomponenten minimumAge und maximumAge aktiviert und deaktiviert.
Weitere Informationen zum Ereignis click finden Sie unter CheckBox.click. Weitere
Informationen zur TextInput-Komponente finden Sie unter „TextInput-Komponente“
auf Seite 569.
Die CheckBox-Komponente anpassen
CheckBox-Komponenten können sowohl beim Authoring als auch zur Laufzeit horizontal und
vertikal transformiert werden. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne
aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit können Sie hierzu die Methode setSize()
(UIObject.setSize()) sowie die entsprechenden Eigenschaften und Methoden der CheckBoxKlasse verwenden (siehe (und somit die CheckBox-Klasse selbst) definieren). Wenn die Größe
eines Kontrollkästchen geändert wird, ändert sich nur die Größe der Begrenzungsbox; die Größe
des Beschriftungstexts und des Kontrollkästchensymbols bleibt gleich.
Die Begrenzungsbox einer CheckBox-Instanz ist nicht sichtbar. Sie markiert zugleich den
Kollisionsbereich der Instanz. Wenn Sie eine Instanz vergrößern, vergrößert sich auch der
Kollisionsbereich. Wenn der Platz innerhalb der Begrenzungsbox nicht für die Beschriftung
ausreicht, wird diese unvollständig angezeigt.
Stile für die CheckBox-Komponente verwenden
Durch Zuweisen von Stileigenschaften können Sie die Gestaltung einer CheckBox-Instanz
ändern. Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Die CheckBox-Komponente unterstützt die folgenden Kranz-Stile:
100
Stil
Beschreibung
themeColor
Der Hintergrund einer Komponente. Dies ist der einzige Farbstil, der den
Wert nicht übernimmt. Mögliche Wert sind „haloGreen“, „haloBlue“ und
„haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil: „normal“ oder „italic“.
Kapitel 4: Komponenten-Referenz
Stil
Beschreibung
fontWeight
Die Schriftstärke: „normal“ oder „bold“.
textDecoration
Die Textauszeichnung: „none“ oder „underline“.
Skins für die CheckBox-Komponente verwenden
Die CheckBox-Komponente verwendet für die Darstellung der Schaltflächenzustände Symbole
aus dem Bedienfeld Bibliothek. Sie können der CheckBox-Komponente beim Authoring Skins
zuweisen, indem Sie die Symbole im Bedienfeld Bibliothek anpassen. Die Skins für die
CheckBox-Komponente befinden sich im Ordner Flash UI Components 2/Themes/
MMDefault/CheckBox Assets/states in der Bibliothek der Datei HaloTheme.fla oder der Datei
SampleTheme.fla. Weitere Informationen finden Sie unter „Skinning-Komponenten“
auf Seite 42.
Für CheckBox-Komponenten sind die folgenden Skin-Eigenschaften verfügbar:
Eigenschaft
Beschreibung
falseUpSkin
Up-Status (Schaltfläche nicht geklickt). Der Standardwert ist
RectBorder.
falseDownSkin
Pressed-Status (Schaltfläche geklickt). Der Standardwert ist
RectBorder.
falseOverSkin
Over-Status (Mauszeiger über der Schaltfläche). Der Standardwert ist
RectBorder.
falseDisabledSkin
Disabled-Status (Schaltfläche deaktiviert). Der Standardwert ist
RectBorder.
trueUpSkin
Toggle-Status (Schaltfläche mit Umschaltfunktion). Der Standardwert
ist RectBorder.
trueDownSkin
Pressed-Status bei Toggle-Schaltflächen. Der Standardwert ist
RectBorder.
trueOverSkin
Over-Status bei Toggle-Schaltflächen. Der Standardwert ist
RectBorder.
trueDisabledSkin
Disabled-Status bei Toggle-Schaltflächen. Der Standardwert ist
RectBorder.
(und somit die CheckBox-Klasse selbst) definieren
Vererbung
UIObject > UIComponent > SimpleButton > Button > CheckBox
ActionScript-Klassenname
mx.controls.CheckBox
Mit Hilfe der Eigenschaften der CheckBox-Klasse können Sie Kontrollkästchen zur Laufzeit
Beschriftungstexte zuweisen und wahlweise links oder rechts vom Kontrollkästchen bzw. darüber
oder darunter positionieren.
Per ActionScript zugewiesene Eigenschaften der CheckBox-Klasse haben Vorrang vor
gleichnamigen Parametern, die im Bedienfeld Eigenschafteninspektor oder KomponentenInspektor festgelegt werden.
CheckBox-Komponente
101
Die CheckBox-Komponente verwendet ein mit dem FocusManager gezeichnetes, angepasstes
Rechteck mit abgerundeten Ecken, das das standardmäßige Fokus-Rechteck von Flash Player
ersetzt. Weitere Informationen finden Sie unter „Benutzerdefinierte Fokusnavigation erstellen“
auf Seite 28.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.CheckBox.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meineCheckBoxInstance.version);.
Übersicht: Methoden der CheckBox-Klasse
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der CheckBox-Klasse
Eigenschaft
Beschreibung
CheckBox.label
Gibt den Text an, der neben dem Kontrollkästchen als Beschriftung
angezeigt wird.
CheckBox.labelPlacement Gibt die Ausrichtung des Beschriftungstexts in Bezug zum
Kontrollkästchen an.
CheckBox.selected
Gibt an, ob das Kontrollkästchen ausgewählt (true) oder nicht
ausgewählt (false) ist.
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Ereignisse der CheckBox-Klasse
Ereignis
Beschreibung
CheckBox.click
Wird ausgelöst, wenn die Maustaste über einer Schaltflächeninstanz
losgelassen wird.
Erbt alle Ereignisse von UIObject und UIComponent.
CheckBox.click
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
102
Kapitel 4: Komponenten-Referenz
Verwendung
Verwendung 1:
on(click){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.click = function(eventObject){
...
}
checkBoxInstance.addEventListener("click", listenerObject)
Beschreibung
Ereignis; Broadcast an alle registrierten Listener, wenn die Maustaste über dem Kontrollkästchen
gedrückt (losgelassen) oder wenn das Kontrollkästchen den Fokus hat und die Leertaste betätigt
wird.
Im ersten Verwendungsbeispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der
CheckBox-Komponente zugewiesen werden muss. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Wenn
beispielsweise der folgende Code dem Kontrollkästchen meineCheckBox zugewiesen wird, wird
„_level0.meineCheckBox“ an das Ausgabebedienfeld gesendet:
on(click){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (checkBoxInstance) setzt ein Ereignis (in diesem Fall click) ab, und das
Ereignis reagiert auf eine Funktion (auch als Handler bezeichnet) des von Ihnen erstellten
Listener-Objekts (listenerObject). Beim Auslösen dieses Ereignisses wird eine von Ihnen
definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf das
Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Das Ereignisobjekt verfügt über
einen Satz von Eigenschaften mit Informationen zum Ereignis. Mit Hilfe dieser Eigenschaften
können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen Sie die Methode
addEventListener() (siehe UIEventDispatcher.addEventListener()) für die
Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz zuzuordnen.
Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
CheckBox-Komponente
103
Beispiel
In diesem Beispiel, das einem Bild in der Zeitleiste zugewiesen ist, wird eine Meldung an das
Ausgabebedienfeld gesendet, wenn auf eine Schaltfläche mit der Bezeichnung
checkBoxInstance geklickt wird. In der ersten Codezeile wird ein Listener-Objekt mit der
Bezeichnung form erzeugt. In der zweiten Zeile wird eine Funktion für das click-Ereignis des
Listener-Objekts definiert. Eine trace-Aktion innerhalb der Funktion erzeugt anhand des
automatisch übergebenen Ereignisobjekts (in diesem Fall eventObj) eine Meldung. Die
Eigenschaft target eines Ereignisobjekts entspricht der Komponente, die das Ereignis erzeugt (in
diesem Fall checkBoxInstance). Der Zugriff auf die Eigenschaft CheckBox.selected erfolgt
über die Eigenschaft target des Ereignisobjekts. In der letzten Zeile wird die Methode
addEventListener() durch checkBoxInstance aufgerufen; dabei werden das Ereignis click
und das Listener-Objekt form als Parameter übergeben:
form = new Object();
form.click = function(eventObj){
trace("Die gewählte Eigenschaft wurde geändert in " +
eventObj.target.selected);
}
checkBoxInstance.addEventListener("click", form);
Im folgenden Codebeispiel wird ebenfalls beim Klicken auf checkBoxInstance eine Meldung an
das Ausgabebedienfeld gesendet. Die on()-Prozedur muss checkBoxInstance direkt zugewiesen
werden:
on(click){
trace("Klick auf CheckBox-Komponente");
}
Siehe auch
UIEventDispatcher.addEventListener()
CheckBox.label
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
checkBoxInstance.label
Beschreibung
Eigenschaft; gibt den Beschriftungstext für das Kontrollkästchen an. Standardmäßig erscheint die
Bezeichnung rechts neben dem Kontrollkästchen. Diese Eigenschaft hat Vorrang vor einem
Beschriftungsparameter, der im Bedienfeld mit den Parametern für den Clip angegeben wird.
104
Kapitel 4: Komponenten-Referenz
Beispiel
Mit dem folgenden Code wird der Text festgelegt, der neben der CheckBox-Komponente
angezeigt wird, und der Wert an das Ausgabebedienfeld gesendet:
checkBox.label = "Aus Liste entfernen";
trace(checkBox.label)
Siehe auch
CheckBox.labelPlacement
CheckBox.labelPlacement
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
checkBoxInstance.labelPlacement
Beschreibung
Eigenschaft; eine Zeichenfolge, die die Position der Beschriftung in Bezug zum Kontrollkästchen
angibt. Im Folgenden sind die vier zulässigen Werte angegeben (die gepunkteten Linien stehen
für den Begrenzungsbereich einer Komponente. Sie sind in einem Dokument nicht sichtbar):
•
right Das Kontrollkästchen wird in der oberen linken Ecke des Begrenzungsbereichs
positioniert. Die Beschriftung befindet sich rechts vom Kontrollkästchen. Dies ist der
Standardwert.
•
left
•
bottom Die Beschriftung befindet sich unterhalb des Kontrollkästchens. Die Gruppe aus
Kontrollkästchen und Beschriftung wird horizontal und vertikal zentriert.
•
top
Das Kontrollkästchen wird in der oberen rechten Ecke des Begrenzungsbereichs
positioniert. Die Beschriftung befindet sich links vom Kontrollkästchen.
Die Beschriftung befindet sich oberhalb des Kontrollkästchens. Die Gruppe aus
Kontrollkästchen und Beschriftung wird horizontal und vertikal zentriert.
Sie können den Begrenzungsbereich einer Komponente mit dem Befehl Transformieren oder
zur Laufzeit mit der Eigenschaft UIObject.setSize() ändern. Weitere Informationen finden
Sie unter „Die CheckBox-Komponente anpassen“ auf Seite 100.
CheckBox-Komponente
105
Beispiel
Im folgenden Beispiel wird der Beschriftungstext links vom Kontrollkästchen positioniert:
checkBox_mc.labelPlacement = "left";
Siehe auch
CheckBox.label
CheckBox.selected
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
checkBoxInstance.selected
Beschreibung
Eigenschaft; ein boolescher Wert, mit dem das Kontrollkästchen ausgewählt (true) bzw. die
Auswahl des Kontrollkästchens aufgehoben (false) wird.
Beispiel
Im folgenden Beispiel wird die Instanz checkbox1 ausgewählt:
checkbox1.selected = true;
ComboBox-Komponente
Ein Kombinationsfeld kann statisch oder bearbeitbar sein. Statische Kombinationsfelder
ermöglichen dem Anwender die Auswahl einer einzelnen Option aus einer Dropdown-Liste.
Bearbeitbare Kombinationsfelder ermöglichen dem Benutzer wahlweise die direkte Eingabe von
Text in ein Textfeld oberhalb der Liste oder die Auswahl einer Option aus einer Dropdown-Liste.
Wenn die Dropdown-Liste über den unteren Dokumentrand hinausreicht, wird sie nach oben
statt nach unten geöffnet. Ein Kombinationsfeld setzt sich aus drei Komponenten zusammen:
einer Button-Komponente, einer TextInput-Komponente und einer List-Komponente.
Wenn in der Liste eine Auswahl getroffen wird, wird die Bezeichnung der Auswahl in das Textfeld
oben im Kombinationsfeld kopiert. Dabei spielt es keine Rolle, ob die Auswahl mit der Maus
oder über die Tastatur durchgeführt wurde.
106
Kapitel 4: Komponenten-Referenz
Eine ComboBox-Komponente erhält den Fokus, wenn auf das Textfeld oder die Schaltfläche
geklickt wird. Wenn eine ComboBox-Komponente den Fokus hat und bearbeitbar ist, werden
alle Tastatureingaben an das Textfeld übermittelt und entsprechend den Regeln der TextInputKomponente verarbeitet (siehe „TextInput-Komponente“ auf Seite 569). Davon ausgenommen
sind die folgenden Tastenkombinationen:
Taste
Beschreibung
<Strg>+<Nach-unten> Öffnet die Dropdown-Liste und setzt den Fokus auf die Liste.
<Umschalt>+<Tab>
Verschiebt den Fokus auf das vorherige Objekt.
<Tab>
Verschiebt den Fokus auf das nächste Objekt.
Wenn eine ComboBox-Komponente den Fokus hat und statisch ist, wird durch alphanumerische
Tastatureingaben die Auswahl innerhalb der Dropdown-Liste auf das nächste Element mit dem
entsprechenden Anfangsbuchstaben nach oben bzw. unten verschoben. Statische
Kombinationsfelder können darüber hinaus mit den folgenden Tasten gesteuert werden:
Taste
Beschreibung
<Strg>+<Nach-unten> Öffnet die Dropdown-Liste und setzt den Fokus auf die Liste.
<Strg>+<Nach-oben> Schließt die Dropdown-Liste, wenn diese in den selbstständigen und
Browser-Versionen des Flash-Players geöffnet ist.
<Nach-unten>
Verschiebt die Auswahl um ein Element nach unten.
<Ende>
Verschiebt die Auswahl an das Ende der Liste.
<Esc>
Schließt die Dropdown-Liste und gibt den Fokus zurück an das
Kombinationsfeld im Filmtestmodus.
Eingabetaste
Schließt die Dropdown-Liste und gibt den Fokus zurück an das
Kombinationsfeld.
<Pos 1>
Verschiebt die Auswahl an den Anfang der Liste.
Bild-ab-Taste
Verschiebt die Auswahl um eine Seite nach unten.
Bild-auf-Taste
Verschiebt die Auswahl um eine Seite nach oben.
<Umschalt>+<Tab>
Verschiebt den Fokus auf das vorherige Objekt.
<Tab>
Verschiebt den Fokus auf das nächste Objekt.
ComboBox-Komponente
107
Wenn das Dropdown-Listenfeld einer ComboBox-Komponente den Fokus hat, wird durch
alphanumerische Tastatureingaben die Auswahl innerhalb der Dropdown-Liste auf das nächste
Element mit dem entsprechenden Anfangsbuchstaben nach oben bzw. unten verschoben.
Dropdown-Listenfelder können darüber hinaus mit den folgenden Tasten gesteuert werden:
Taste
Beschreibung
<Strg>+<Nach-oben> Wenn die Dropdown-Liste geöffnet ist, wird sie geschlossen und das Textfeld
erhält wieder den Fokus in den selbstständigen und Browser-Versionen des
Flash Players.
<Nach-unten>
Verschiebt die Auswahl um ein Element nach unten.
<Ende>
Die Einfügemarke wird zum Ende des Textfelds verschoben.
Eingabetaste
Wenn die Dropdown-Liste geöffnet ist, wird sie geschlossen und das Textfeld
erhält wieder den Fokus.
<Esc>
Wenn die Dropdown-Liste geöffnet ist, wird sie im Filmtestmodus
geschlossen und das Textfeld erhält wieder den Fokus.
<Pos 1>
Die Einfügemarke wird zum Anfang des Textfelds verschoben.
Bild-ab-Taste
Verschiebt die Auswahl um eine Seite nach unten.
Bild-auf-Taste
Verschiebt die Auswahl um eine Seite nach oben.
<Tab>
Verschiebt den Fokus auf das nächste Objekt.
<Umschalt>-<Ende>
Wählt den Text von der Einfügemarke bis zur Endposition aus.
<Umschalt>-<Pos 1>
Wählt den Text von der Einfügemarke bis zur ersten Position aus.
<Umschalt>-<Tab>
Verschiebt den Fokus auf das vorherige Objekt.
<Nach-oben>
Verschiebt die Auswahl um ein Element nach oben.
Hinweis: Die Seitengröße beim Blättern innerhalb der Dropdown-Liste mit der Bild-auf-Taste und
Bild-ab-Taste entspricht der Anzahl der Elemente, die in den angezeigten Ausschnitt passen, minus
eins. Beispiel: Bei einer zehnzeiligen Dropdown-Liste werden beim Durchlaufen mit der Bild-abTaste die Elemente 0 bis 9, dann die Elemente 9 bis 18, dann die Elemente 18 bis 27 angezeigt usw.
Die jeweils letzte angezeigte Zeile wird also immer zur ersten angezeigten Zeile der nächsten Seite.
Weitere Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte
Fokusnavigation erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
Die Änderungen an den Parametern der einzelnen ComboBox-Instanzen, die beim Authoring im
Eigenschafteninspektor oder im Komponenten-Inspektor vorgenommen werden, werden jeweils
in einer Live-Vorschau angezeigt. In der Live-Vorschau wird allerdings die Dropdown-Liste nicht
geöffnet, und das erste Element wird hier als ausgewähltes Element angezeigt.
Die einer Anwendung hinzugefügten ComboBox-Komponenten können Sie über das Bedienfeld
Eingabehilfen für Bildschirmleseprogramme zugänglich machen. Dazu brauchen Sie lediglich die
folgende Codezeile einzufügen:
mx.accessibility.ComboBoxAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie in der Hilfe „Flash verwenden“ unter
„Barrierefreie Inhalte erstellen“.
108
Kapitel 4: Komponenten-Referenz
Mit der ComboBox-Komponente arbeiten
Sie können die ComboBox-Komponente in Formularen und Anwendungen verwenden, in denen
ein Element aus einer Liste auszuwählen ist. Ein Beispiel wäre ein Formular zur Eingabe der
Anschrift, in dem der Kunde die Region seines Wohnorts über eine Dropdown-Liste auswählt.
Mit bearbeitbaren Kombinationsfeldern lassen sich auch komplexere Dateneingaben erfassen. Ein
Beispiel hierfür wäre ein Formular zur Anforderung einer Wegbeschreibung, bei dem Ausgangsund Zielort über ein bearbeitbares Kombinationsfeld eingegeben werden. Mit Hilfe der
Dropdown-Liste könnten sich dabei bei früheren Anfragen eingetragene Angaben abrufen lassen.
ComboBox-Parameter
Jeder Instanz einer ComboBox-Komponente können beim Authoring im Bedienfeld
Eigenschafteninspektor oder Komponenten-Inspektor die folgenden Parameter zugewiesen
werden:
Mit editable legen Sie fest, ob die ComboBox-Komponente bearbeitbar (true) oder nur
auswählbar (false) ist. Der Standardwert lautet false.
Mit labels weisen Sie der ComboBox-Komponente ein Array aus Textwerten zu.
Mit data weisen Sie den einzelnen Elementen der ComboBox-Komponente Datenwerte zu. Bei
dem Parameter data handelt es sich um ein Array.
Mit rowCount legen Sie die maximale Anzahl der Elemente fest, die ohne Verwendung der
Bildlaufleiste gleichzeitig angezeigt werden können. Der Standardwert ist 5.
Sie können diese und weitere Optionen für ComboBox-Instanzen über die entsprechenden
Eigenschaften, Methoden und Ereignisse in ActionScript steuern. Weitere Informationen finden
Sie unter ComboBox-Klasse.
Anwendungen mit der ComboBox-Komponente erstellen
Im Folgenden wird erläutert, wie Sie einer Anwendung beim Authoring eine ComboBoxKomponente hinzufügen. In diesem Beispiel wird im Kombinationsfeld eine Liste mit Städten
angezeigt, die über das Dropdown-Listenfeld ausgewählt werden können.
Führen Sie die folgenden Schritte aus, um eine Anwendung mit einer ComboBoxKomponente zu erstellen:
1 Ziehen Sie eine ComboBox-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Wählen Sie das Werkzeug Transformieren aus, und passen Sie die Größe der Komponente auf
der Bühne an.
Die Größe des Kombinationsfelds auf der Bühne kann nur beim Authoring geändert werden.
Normalerweise braucht nur die Breite des Kombinationsfelds entsprechend der Länge der
Einträge angepasst zu werden.
3 Wählen Sie das Kombinationsfeld aus, und geben Sie im Eigenschafteninspektor den
Instanznamen comboBox ein.
4 Führen Sie im Bedienfeld Komponenten-Inspektor oder im Eigenschafteninspektor die
folgenden Schritte aus:
■ Geben Sie München, Hamburg und Stuttgart als Werte für den Parameter label ein.
Doppelklicken Sie auf das Parameterfeld label, um das Dialogfeld Werte zu öffnen. Klicken
Sie anschließend auf das Pluszeichen, um Elemente hinzuzufügen.
ComboBox-Komponente
109
Geben Sie BY.swf, HH.swf und BW.swf als Werte für den Parameter data ein.
Diese (imaginären) SWF-Dateien sollen im Beispiel geöffnet werden, wenn der Anwender
eine Stadt aus dem Kombinationsfeld auswählt.
5 Wählen Sie in der Zeitleiste das erste Bild aus, öffnen Sie das Bedienfeld Aktionen, und geben
Sie den folgenden Code ein:
■
form = new Object();
form.change = function (evt){
trace(evt.target.selectedItem.label);
}
comboBox.addEventListener("change", form);
In der letzten Codezeile wird der ComboBox-Instanz die Ereignisprozedur change hinzugefügt.
Weitere Informationen finden Sie unter ComboBox.change.
Die ComboBox-Komponente anpassen
Sie können ComboBox-Komponenten beim Authoring horizontal und vertikal transformieren.
Beim Authoring wählen Sie hierzu die Komponente auf der Bühne aus und verwenden
anschließend das Werkzeug Frei transformieren oder die Befehle unter Modifizieren >
Transformieren.
Text, der zu lang ist, um in das Kombinationsfeld zu passen, wird unvollständig angezeigt. Sie
müssen die Größe des Kombinationsfelds beim Authoring entsprechend der Länge des
Beschriftungstexts anpassen.
Bei bearbeitbaren Kombinationsfeldern umfasst der Kollisionsbereich nur die Schaltfläche; das
Textfeld gehört nicht zum Kollisionsbereich. Bei statischen Kombinationsfeldern umfasst der
Kollisionsbereich die Schaltfläche und das Textfeld.
Stile für die ComboBox-Komponente verwenden
Durch Zuweisen von Stileigenschaften können Sie die Gestaltung einer ComboBox-Komponente
ändern. Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Für Kombinationsfelder gibt es zwei eigene Stile. Darüber hinaus übernehmen die einzelnen
Elemente eines Kombinationsfelds (Schaltfläche, Textfeld, Dropdown-Liste) die Stile der
jeweiligen Komponententypen:
• Bei der Schaltfläche handelt es sich um eine Schaltflächeninstanz mit den entsprechenden
•
•
110
Stilen. (Weitere Informationen finden Sie unter „Stile für die Button-Komponente
verwenden“ auf Seite 81.)
Beim Text handelt es sich um eine TextInput-Instanz mit den entsprechenden Stilen. (Weitere
Informationen finden Sie unter „Stile mit der TextInput-Komponente verwenden“
auf Seite 572.)
Bei der Dropdown-Liste handelt es sich um eine List-Instanz mit den entsprechenden Stilen.
(Weitere Informationen finden Sie unter „Stile mit der List-Komponente verwenden“
auf Seite 322.)
Kapitel 4: Komponenten-Referenz
Die ComboBox-Komponente unterstützt die folgenden Kranz-Stile:
Stil
Beschreibung
themeColor
Der Hintergrund einer Komponente. Dies ist der einzige Farbstil, der
den Wert nicht übernimmt. Mögliche Wert sind „haloGreen“,
„haloBlue“ und „haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil: „normal“ oder „italic“.
fontWeight
Die Schriftstärke: „normal“ oder „bold“.
textDecoration
Die Textauszeichnung: „none“ oder „underline“.
openDuration
Die Anzahl der Millisekunden für das Einblenden des DropdownListenfelds. Der Standardwert ist 250.
openEasing
Eine Referenz auf eine Tweening-Funktion, die die Animation der
Dropdown-Liste steuert. Standardmäßig wird eine Sinus-Animation
verwendet. Eine Liste mit weiteren Formeln können Sie auf der
Website von Robert Penner unter www.robertpenner.com/easing/
herunterladen.
Skins für die ComboBox-Komponente verwenden
Die ComboBox-Komponente verwendet für die Darstellung der Schaltflächenzustände Symbole
aus dem Bedienfeld Bibliothek. Die ComboBox-Komponente verfügt über Skin-Variablen für die
Pfeilschaltfläche nach unten. Darüber hinaus werden Bildlaufleisten- und Listen-Skins
verwendet. Sie können der ComboBox-Komponente beim Authoring Skins zuweisen, indem Sie
die Symbole im Bedienfeld Bibliothek anpassen und die Komponente als SWC neu exportieren.
Die Skins für die ComboBox-Komponente befinden sich im Ordner Flash UI Components 2/
Themes/MMDefault/ComboBox Assets/states in der Bibliothek der Datei HaloTheme.fla oder
SampleTheme.fla. Weitere Informationen finden Sie unter „Skinning-Komponenten“
auf Seite 42.
Die ComboBox-Komponente unterstützt die folgenden Skin-Eigenschaften:
Eigenschaft
Beschreibung
ComboDownArrowDisabledName Nach-unten-Pfeil im Disabled-Status (Schaltfläche deaktiviert). Der
Standardwert ist RectBorder.
ComboDownArrowDownName
Nach-unten-Pfeil im Down-Status (Schaltfläche geklickt). Der
Standardwert ist RectBorder.
ComboDownArrowUpName
Nach-unten-Pfeil im Up-Status (Schaltfläche nicht geklickt). Der
Standardwert ist RectBorder.
ComboDownArrowOverName
Nach-unten-Pfeil im Over-Status (Mauszeiger über der
Schaltfläche). Der Standardwert ist RectBorder.
ComboBox-Komponente
111
ComboBox-Klasse
Vererbung
UIObject > UIComponent > ComboBase > ComboBox
ActionScript-Klassenname
mx.controls.ComboBox
Die ComboBox-Komponente setzt sich aus drei Unterkomponenten zusammen: Button,
TextInput und List. Die APIs der einzelnen Unterkomponenten sind größtenteils direkt von der
ComboBox-Komponente aus verfügbar und werden in den Tabellen mit den Methoden,
Eigenschaften und Ereignissen der ComboBox-Klasse aufgelistet.
Die Dropdown-Liste eines Kombinationsfelds wird entweder als Array- oder als DataProviderObjekt umgesetzt. Wenn Sie ein DataProvider-Objekt verwenden, verändert sich die Liste zur
Laufzeit. Die Datenquelle einer ComboBox-Instanz kann dynamisch durch den Wechsel zu
einem neuen Array- oder DataProvider-Objekt geändert werden.
Die Elemente eines Kombinationsfelds werden anhand der Position indiziert; die Zählung der
Indizes beginnt bei 0. Als Elemente können fungieren:
• Grunddatentypen
• Objekte mit den Eigenschaften label und data
Hinweis: Ein Objekt kann mit der Eigenschaft ComboBox.labelFunction oder
ComboBox.labelField die Eigenschaft label bestimmen.
Elemente aller Grunddatentypen werden in Zeichenfolgen umgewandelt, sofern es sich bei dem
verwendeten Datentyp nicht bereits um eine Zeichenfolge handelt. Bei Objekten als Elementen
muss für die Eigenschaft label eine Zeichenfolge angegeben werden; für die Eigenschaft data
kann ein beliebiger ActionScript-Wert angegeben werden.
Bei der Übergabe von Elementen an Methoden der ComboBox-Komponente müssen die beiden
Parameter label und data angegeben werden, die sich auf die oben genannten Eigenschaften
beziehen. Methoden, die ein Element zurückgeben, geben dieses als Objekt zurück.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.ComboBox.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meineComboBoxInstance.version);.
Übersicht: Methoden der ComboBox-Klasse
112
Eigenschaft
Beschreibung
ComboBox.addItem()
Fügt ein Element am Ende der Liste hinzu.
ComboBox.addItemAt()
Fügt ein Element am Ende der Liste mit dem angegebenen Index
hinzu.
ComboBox.close()
Schließt die Dropdown-Liste.
ComboBox.getItemAt()
Gibt das Element an der angegebenen Indexposition zurück.
ComboBox.open()
Öffnet die Dropdown-Liste.
Kapitel 4: Komponenten-Referenz
Eigenschaft
Beschreibung
ComboBox.removeAll()
Entfernt alle Elemente aus der Liste.
ComboBox.removeItemAt()
Entfernt das Element an der angegebenen Position aus der Liste.
ComboBox.replaceItemAt()
Ersetzt ein Element in der Liste durch ein anderes angegebenes
Element.
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der ComboBox-Klasse
Eigenschaft
Beschreibung
ComboBox.dataProvider
Das Datenmodell für die Elemente in der Liste.
ComboBox.dropdown
Gibt eine Referenz auf die in der ComboBox enthaltene ListKomponente zurück.
ComboBox.dropdownWidth
Die Breite der Dropdown-Liste in Pixeln.
ComboBox.editable
Gibt an, ob die ComboBox bearbeitbar ist.
ComboBox.labelField
Gibt an, welches Datenfeld als Bezeichnung für die Dropdown-Liste
verwendet wird.
ComboBox.labelFunction
Gibt eine Funktion zur Berechnung des Bezeichnungsfelds für die
Dropdown-Liste an.
ComboBox.length
Schreibgeschützte Eigenschaft. Die Länge der Dropdown-Liste.
ComboBox.rowCount
Die maximale Anzahl der gleichzeitig angezeigten Listenelemente.
ComboBox.selectedIndex
Der Index des ausgewählten Elements in der Dropdown-Liste.
ComboBox.selectedItem
Der Wert des ausgewählten Elements in der Dropdown-Liste.
ComboBox.text
Die Textzeichenfolge im Textfeld.
ComboBox.textField
Eine Referenz auf die TextInput-Komponente im Kombinationsfeld.
ComboBox.value
Der Wert des Textfelds (bearbeitbares Kombinationsfeld) oder der
Dropdown-Liste (statisches Kombinationsfeld).
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Ereignisse der ComboBox-Klasse
Ereignis
Beschreibung
ComboBox.change
Broadcast, wenn sich der Wert des Kombinationsfelds durch
Bedienvorgänge des Anwenders ändert.
ComboBox.close
Broadcast beim Ausblenden der Dropdown-Liste.
ComboBox.enter
Broadcast beim Betätigen der Eingabetaste.
ComboBox.itemRollOut
Broadcast, wenn der Mauszeiger von einem Element der DropdownListe weggezogen wird.
ComboBox-Komponente
113
Ereignis
Beschreibung
ComboBox.itemRollOver
Broadcast, wenn der Mauszeiger auf ein Element der DropdownListe gezogen wird.
ComboBox.open
Broadcast beim Einblenden der Dropdown-Liste.
ComboBox.scroll
Broadcast beim Scrollen in der Dropdown-Liste.
Erbt alle Ereignisse von UIObject und UIComponent.
ComboBox.addItem()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
comboBoxInstance.addItem(label[, data])
Verwendung 2:
comboBoxInstance.addItem({label:label[, data:data]})
Verwendung 3:
comboBoxInstance.addItem(obj);
Parameter
label
data
obj
Eine Zeichenfolge, die die Bezeichnung für das neue Element angibt.
Die Daten für das Element mit beliebigem Datentyp. Dieser Parameter ist optional.
Ein Objekt mit einer label-Eigenschaft und einer optionalen data-Eigenschaft.
Rückgaben
Der Index des hinzugefügten Elements.
Beschreibung
Methode; fügt ein neues Element am Ende des Listenfelds hinzu.
Beispiel
Mit dem folgenden Code wird ein Element zur Instanz meineComboBox hinzugefügt:
meineComboBox.addItem("Hinzugefügtes Element");
114
Kapitel 4: Komponenten-Referenz
ComboBox.addItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
comboBoxInstance.addItemAt(index, label[, data])
Parameter
index Eine positive Zahl oder die Zahl 0 für die Position, an der das Element eingefügt wird
(Index des neuen Elements).
label
data
Eine Zeichenfolge, die die Bezeichnung für das neue Element angibt.
Die Daten für das Element mit beliebigem Datentyp. Dieser Parameter ist optional.
Rückgaben
Der Index des hinzugefügten Elements.
Beschreibung
Methode; fügt ein neues Element am Ende der Liste an der mit dem Parameter index
angegebenen Position hinzu. Indizes, deren Wert größer ist als ComboBox.length, werden
ignoriert.
Beispiel
Mit dem folgenden Code wird ein Element an Index 3, also an der vierten Position der Liste des
Kombinationsfelds eingefügt (der Index 0 entspricht der ersten Position):
meineBox.addItemAt(3, "Viertes Element");
ComboBox.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(change){
// Hier Code eingeben
}
ComboBox-Komponente
115
Verwendung 2:
listenerObject = new Object();
listenerObject.change = function(eventObject){
// Hier Code eingeben
}
comboBoxInstance.addEventListener("change", listenerObject)
Beschreibung
Ereignis; Broadcast an alle registrierten Listener, wenn sich der Wert des Kombinationsfelds durch
Bedienvorgänge des Anwenders ändert.
Im ersten Beispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der ComboBoxKomponente zugewiesen werden muss. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Wenn beispielsweise der folgende
Code der Instanz meineBox der ComboBox-Komponente zugewiesen wird, wird
„_level0.meineBox“ an das Ausgabebedienfeld gesendet:
on(change){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (comboBoxInstance) setzt ein Ereignis (in diesem Fall change) ab, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode addEventListener() (siehe UIEventDispatcher.addEventListener()) für
die Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz
zuzuordnen. Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird der Instanzname der Komponente, die das Ereignis change generiert
hat, an das Ausgabebedienfeld gesendet:
form.change = function(eventObj){
trace("Wert geändert in " + eventObj.target.value);
}
meineCombo.addEventListener("change", form);
Siehe auch
UIEventDispatcher.addEventListener()
116
Kapitel 4: Komponenten-Referenz
ComboBox.close()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.close()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; schließt die Dropdown-Liste.
Beispiel
Im folgenden Beispiel wird die Dropdown-Liste des Kombinationsfelds meineBox geschlossen:
meineBox.close();
Siehe auch
ComboBox.open()
ComboBox.close
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(close){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.close = function(eventObject){
// Hier Code eingeben
}
comboBoxInstance.addEventListener("close", listenerObject)
ComboBox-Komponente
117
Beschreibung
Ereignis; Broadcast an alle registrierten Listener, wenn die Liste des Kombinationsfelds
eingeklappt wird.
Im ersten Beispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der ComboBoxKomponente zugewiesen werden muss. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Wenn beispielsweise der folgende
Code der Instanz meineBox der ComboBox-Komponente zugewiesen wird, wird
„_level0.meineBox“ an das Ausgabebedienfeld gesendet:
on(close){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (comboBoxInstance) setzt ein Ereignis (in diesem Fall close) ab, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode addEventListener() für die Komponenteninstanz auf, die das Ereignis
überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis absetzt, wird
der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird eine Meldung an das Ausgabebedienfeld gesendet, wenn die
Dropdown-Liste geschlossen wird:
form.close = function(){
trace("Das Kombinationsfeld wurde geschlossen");
}
meineCombo.addEventListener("close", form);
Siehe auch
UIEventDispatcher.addEventListener()
ComboBox.dataProvider
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
comboBoxInstance.dataProvider
118
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; das Datenmodell der in der Liste angezeigten Elemente. Als Wert für diese
Eigenschaft kann ein Array oder ein Objekt verwendet werden, das die DataProvider-Schnittstelle
implementiert. Der Standardwert ist [] (leeres Array). Hierbei handelt es sich um eine Eigenschaft
der List-Komponente, auf die jedoch von ComboBox-Instanzen aus direkt zugegriffen werden
kann.
Die List-Komponente und andere datenorientierte Komponenten erweitern den Methodenvorrat
des Prototyps des Array-Objekts, sodass dieser der DataProvider-Schnittstelle entspricht (weitere
Informationen finden Sie im Abschnitt zu DataProvider.as). Arrays, die zeitgleich mit einer Liste
existieren, verfügen automatisch über alle erforderlichen Methoden (addItem(), getItemAt()
usw.) für die Verwendung als Listenmodell. Diese Arrays können somit für Broadcasts von
Modelländerungen an mehrere Komponenten verwendet werden.
Wenn das Array Objekte enthält, wird anhand der Eigenschaft labelField oder labelFunction
ermittelt, welche Teile des Elements angezeigt werden. Der Standardwert ist label. Wenn also
ein Feld dieses Namens vorhanden ist, wird es angezeigt; andernfalls wird eine Liste aller Felder
mit Kommas als Trennzeichen angezeigt.
Hinweis: Wenn alle Indizes des Arrays Zeichenfolgen und keine Objekte enthalten, können die
Elemente in der Liste nicht sortiert werden und der Auswahlstatus kann nicht dauerhaft gespeichert
werden. Die Auswahl geht bei jedem Sortiervorgang verloren.
Als Datenprovider für Listen eignen sich alle Instanzen, die die DataProvider-Schnittstelle
implementierten. Hierzu gehören unter anderem Flash Remoting RecordSets und Firefly
DataSets.
Beispiel
Im folgenden Beispiel werden die Elemente einer Dropdown-Liste aus einem Array aus
Zeichenfolgen übernommen:
comboBox.dataProvider = ["Postzustellung","Paketdienst","Paketdienst mit
Expresszustellung"];
Im folgenden Beispiel wird ein Datenprovider-Array erstellt und der Eigenschaft dataProvider
zugewiesen:
meinDP = new Array();
list.dataProvider = meinDP;
for (var i=0; i<accounts.length; i++) {
// Diese Änderungen des DataProvider werden per Broadcast an die Liste
// übermittelt
meinDP.addItem({ label: accounts[i].name,
data: accounts[i].accountID });
}
ComboBox.dropdown
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
ComboBox-Komponente
119
Verwendung
meineComboBox.dropdown
Beschreibung
Eigenschaft (schreibgeschützt); gibt eine Referenz auf die im Kombinationsfeld enthaltene ListKomponente zurück. Die List-Unterkomponente wird erst dann im Kombinationsfeld erzeugt,
wenn sie angezeigt werden muss. Wenn Sie jedoch auf die Eigenschaft dropdown zugreifen, wird
die Liste unmittelbar erstellt.
Siehe auch
ComboBox.dropdownWidth
ComboBox.dropdownWidth
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.dropdownWidth
Beschreibung
Eigenschaft; die maximale Breite der Dropdown-Liste in Pixeln. Der Standardwert ist die Breite
der ComboBox-Komponente (TextInput-Instanz plus SimpleButton-Instanz).
Beispiel
Im folgenden Codebeispiel wird dropdownWidth auf 150 Pixel gesetzt:
meineComboBox.dropdownWidth = 150;
Siehe auch
ComboBox.dropdown
ComboBox.editable
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.editable
120
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; gibt an, ob das Kombinationsfeld bearbeitbar (true) oder statisch (false) ist. Bei
bearbeitbaren Kombinationsfeldern können auch nicht in der Dropdown-Liste enthaltene Werte
in das Textfeld eingegeben werden. Bei nicht bearbeitbaren Kombinationsfeldern können nur die
in der Dropdown-Liste enthaltenen Werte in das Textfeld eingegeben werden. Der Standardwert
lautet false.
Wenn Sie diese Eigenschaft auf true setzen, wird der Inhalt des Textfelds gelöscht. Außerdem wird
der ausgewählte Index (und damit das ausgewählte Element) auf undefined gesetzt. Mit dem
folgenden Code können Sie ein Kombinationsfeld bearbeitbar machen und dabei das ausgewählte
Element beibehalten:
var ix = meineComboBox.selectedIndex;
meineComboBox.editable = true; // Löscht den Text im Textfeld
meineComboBox.selectedIndex = ix; // Kopiert die Bezeichnung wieder ins
// Textfeld
Beispiel
Mit dem folgenden Code wird meineComboBox zu einem bearbeitbaren Kombinationsfeld:
meineComboBox.editable = true;
ComboBox.enter
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(enter){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.enter = function(eventObject){
// Hier Code eingeben
}
comboBoxInstance.addEventListener("enter", listenerObject)
Beschreibung
Ereignis; Broadcast an alle registrierten Listener, wenn die Eingabetaste im Textfeld betätigt wird.
Ein Broadcast für dieses Ereignis erfolgt nur bei bearbeitbaren Kombinationsfeldern. Bei diesem
Ereignis handelt es sich um ein Ereignis der TextInput-Komponente, das über
Kombinationsfelder ausgelöst wird. Weitere Informationen finden Sie unter TextInput.enter.
ComboBox-Komponente
121
Im ersten Beispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der ComboBoxKomponente zugewiesen werden muss. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Wenn beispielsweise der folgende
Code der Instanz meineBox der ComboBox-Komponente zugewiesen wird, wird
„_level0.meineBox“ an das Ausgabebedienfeld gesendet:
on(enter){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (comboBoxInstance) setzt ein Ereignis (in diesem Fall enter) ab, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode addEventListener() für die Komponenteninstanz auf, die das Ereignis
überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis absetzt, wird
der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird eine Meldung an das Ausgabebedienfeld gesendet, wenn die
Dropdown-Liste geschlossen wird:
form.enter = function(){
trace("Eingabeereignis für Kombinationsfeld wurde ausgelöst");
}
meineCombo.addEventListener("enter", form);
Siehe auch
UIEventDispatcher.addEventListener()
ComboBox.getItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
comboBoxInstance.getItemAt(index)
Parameter
index Eine Zahl größer oder gleich 0 und kleiner als der Wert von ComboBox.length. Der
Index des abzurufenden Elements.
122
Kapitel 4: Komponenten-Referenz
Rückgaben
Das Elementobjekt oder der Elementwert mit dem angegebenen Index. Wenn der Index
außerhalb des gültigen Bereichs liegt, ist der Wert nicht definiert.
Beschreibung
Methode; ruft das Element an der angegebenen Indexposition ab.
Beispiel
Mit dem folgenden Code wird das Element mit der Indexposition 4 abgerufen:
trace(meineBox.getItemAt(4).label);
ComboBox.itemRollOut
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(itemRollOut){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.itemRollOut = function(eventObject){
// Hier Code eingeben
}
comboBoxInstance.addEventListener("itemRollOut", listenerObject)
Ereignisobjekt
Zusätzlich zu den Standardeigenschaften des Ereignisobjekts hat das Ereignis itemRollOut die
folgende Eigenschaft: index. index ist die Nummer des Elements, von dem der Mauszeiger
weggeführt wurde.
Beschreibung
Ereignis; Broadcast an alle registrierten Listener, wenn der Mauszeiger aus der Dropdown-Liste
heraus bewegt wird. Bei diesem Ereignis handelt es sich um ein Ereignis der List-Komponente,
das über Kombinationsfelder ausgelöst wird. Weitere Informationen finden Sie unter
List.itemRollOut.
Im ersten Beispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der ComboBoxKomponente zugewiesen werden muss. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Wenn beispielsweise der folgende
Code der Instanz meineBox der ComboBox-Komponente zugewiesen wird, wird
„_level0.meineBox“ an das Ausgabebedienfeld gesendet:
ComboBox-Komponente
123
on(itemRollOut){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (comboBoxInstance) setzt ein Ereignis (in diesem Fall itemRollOut) ab,
und das Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen
erstellten Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird
eine von Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das
sich auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein
Ereignisobjekt (eventObject) an die Methode des Listener-Objekts übergeben. Jedes
Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit
Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. (Weitere
Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Anschließend rufen Sie die Methode addEventListener() für die Komponenteninstanz auf, die
das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis
absetzt, wird der Listener aufgerufen.
Beispiel
Im folgenden Beispiel wird eine Meldung an das Ausgabebedienfeld gesendet, die das Element
angibt, über dem sich der Mauszeiger beim Verlassen der Dropdown-Liste befand:
form.itemRollOut = function (eventObj) {
trace("Beim Verlassen der Liste befand sich der Mauszeiger über Element " +
eventObj.index + ".");
}
meineCombo.addEventListener("itemRollOut", form);
Siehe auch
ComboBox.itemRollOver, UIEventDispatcher.addEventListener()
ComboBox.itemRollOver
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(itemRollOver){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.itemRollOver = function(eventObject){
// Hier Code eingeben
}
comboBoxInstance.addEventListener("itemRollOver", listenerObject)
124
Kapitel 4: Komponenten-Referenz
Ereignisobjekt
Zusätzlich zu den Standardeigenschaften des Ereignisobjekts hat das Ereignis itemRollOver die
folgende Eigenschaft: index. index ist die Nummer des Elements, über dem sich der Mauszeiger
befindet.
Beschreibung
Ereignis; Broadcast an alle registrierten Listener, wenn der Mauszeiger über die Elemente in der
Dropdown-Liste bewegt wird. Bei diesem Ereignis handelt es sich um ein Ereignis der ListKomponente, das über Kombinationsfelder ausgelöst wird. Weitere Informationen finden Sie
unter List.itemRollOver.
Im ersten Beispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der ComboBoxKomponente zugewiesen werden muss. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Wenn beispielsweise der folgende
Code der Instanz meineBox der ComboBox-Komponente zugewiesen wird, wird
„_level0.meineBox“ an das Ausgabebedienfeld gesendet:
on(itemRollOver){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (comboBoxInstance) setzt ein Ereignis (in diesem Fall itemRollOver) ab,
und das Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen
erstellten Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird
eine von Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das
sich auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein
Ereignisobjekt (eventObject) an die Methode des Listener-Objekts übergeben. Jedes
Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit
Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. (Weitere
Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Anschließend rufen Sie die Methode addEventListener() für die Komponenteninstanz auf, die
das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis
absetzt, wird der Listener aufgerufen.
Beispiel
Im folgenden Beispiel wird eine Meldung an das Ausgabebedienfeld gesendet, die die
Indexnummer des Elements angibt, über dem sich der Mauszeiger befindet:
form.itemRollOver = function (eventObj) {
trace("Der Mauszeiger befindet sich über Element Nr. " + eventObj.index +
".");
}
meineCombo.addEventListener("itemRollOver", form);
Siehe auch
ComboBox.itemRollOut, UIEventDispatcher.addEventListener()
ComboBox-Komponente
125
ComboBox.labelField
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.labelField
Beschreibung
Eigenschaft; der Name des Felds im dataProvider-Arrayobjekt, das als Bezeichnungsfeld
verwendet wird. Bei dieser Eigenschaft handelt es sich um eine Eigenschaft der List-Komponente,
die bei Instanzen der ComboBox-Komponente zur Verfügung steht. Weitere Informationen
finden Sie unter List.labelField.
Der Standardwert ist undefined.
Beispiel
Im folgenden Beispiel wird die Eigenschaft dataProvider auf ein Array aus Zeichenfolgen
gesetzt und über die Eigenschaft labelField das Feld name als Bezeichnung für die DropdownListe zugewiesen:
meineComboBox.dataProvider = [
{name:"Gerd", gender:"männlich"},
{name:"Susanne", gender:"weiblich"} ];
meineComboBox.labelField = "name";
Siehe auch
List.labelFunction
ComboBox.labelFunction
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.labelFunction
Beschreibung
Eigenschaft; eine Funktion zur Berechnung der Bezeichnung eines dataProvider-Elements. Diese
Funktion muss von Ihnen definiert werden. Der Standardwert ist undefined.
126
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird ein Datenprovider erstellt und anschließend eine Funktion definiert,
die den Bezeichnungstext für die Dropdown-Liste angibt.
meineComboBox.dataProvider = [
{firstName:"Norbert", lastName:"Petersen", age:"sehr jung"},
{firstName:"Gerd", lastName:"Groß", age:"jung"},
{firstName:"Christian", lastName:"Waldmeister", age:"alt"},
{firstName:"Gregor", lastName:"Jablonski", age:"sehr alt"} ];
meineComboBox.labelFunction = function(itemObj){
return (itemObj.lastName + ", " + itemObj.firstName);
}
Siehe auch
List.labelField
ComboBox.length
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.length
Beschreibung
Eigenschaft (schreibgeschützt); die Länge der Dropdown-Liste. Bei dieser Eigenschaft handelt es
sich um eine Eigenschaft der List-Komponente, die bei Instanzen der ComboBox-Komponente
zur Verfügung steht. Weitere Informationen finden Sie unter List.length. Der Standardwert
ist 0.
Beispiel
Im folgenden Beispiel wird der Wert von length in einer Variablen gespeichert:
dropdownItemCount = meineBox.length;
ComboBox.open()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.open()
Parameter
Keine.
ComboBox-Komponente
127
Rückgaben
Keine.
Beschreibung
Eigenschaft; öffnet die Dropdown-Liste.
Beispiel
Mit dem folgenden Code wird die Dropdown-Liste für die Instanz combo1 geöffnet:
combo1.open();
Siehe auch
ComboBox.close()
ComboBox.open
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(open){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.open = function(eventObject){
// Hier Code eingeben
}
comboBoxInstance.addEventListener("open", listenerObject)
Beschreibung
Ereignis; Broadcast an alle registrierten Listener beim Einblenden der Dropdown-Liste.
Im ersten Beispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der ComboBoxKomponente zugewiesen werden muss. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Wenn beispielsweise der folgende
Code der Instanz meineBox der ComboBox-Komponente zugewiesen wird, wird
„_level0.meineBox“ an das Ausgabebedienfeld gesendet:
on(open){
trace(this);
}
128
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (comboBoxInstance) setzt ein Ereignis (in diesem Fall open) ab, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. (Weitere
Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Anschließend rufen Sie die Methode addEventListener() für die Komponenteninstanz auf, die
das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis
absetzt, wird der Listener aufgerufen.
Beispiel
Im folgenden Beispiel wird eine Meldung an das Ausgabebedienfeld gesendet, die die
Indexnummer des Elements angibt, über dem sich der Mauszeiger befindet:
form.open = function () {
trace("Das Kombinationsfeld wurde mit dem Text " + meineBox.text +
"geöffnet.");
}
meineBox.addEventListener("open", form);
Siehe auch
ComboBox.close, UIEventDispatcher.addEventListener()
ComboBox.removeAll()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
comboBoxInstance.removeAll()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; entfernt alle Elemente aus der Liste. Bei dieser Methode handelt es sich um eine
Methode der List-Komponente, die bei Instanzen der ComboBox-Komponente zur Verfügung
steht.
ComboBox-Komponente
129
Beispiel
Mit dem folgenden Code wird die Liste gelöscht:
meineCombo.removeAll();
Siehe auch
ComboBox.removeItemAt(), ComboBox.replaceItemAt()
ComboBox.removeItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.removeItemAt(index)
Parameter
Eine Zahl für die Position des Elements, das aus der Liste entfernt werden soll. Die
Bezugsbasis für diesen Wert ist 0.
index
Rückgaben
Ein Objekt; das aus der Liste entfernte Element (nicht definiert, wenn keine Elemente vorhanden
sind).
Beschreibung
Methode; entfernt das Element an der angegebenen index-Position. Nachdem das mit dem
Parameter index angegebene Element entfernt wurde, werden die verbleibenden Indexwerte
entsprechend angepasst. Bei dieser Methode handelt es sich um eine Methode der ListKomponente, die bei Instanzen der ComboBox-Komponente zur Verfügung steht.
Beispiel
Mit dem folgenden Code wird das Element mit der Indexposition 3 entfernt:
meineCombo.removeItemAt(3);
Siehe auch
ComboBox.removeAll(), ComboBox.replaceItemAt()
ComboBox.replaceItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
130
Kapitel 4: Komponenten-Referenz
Verwendung
comboBoxInstance.replaceItemAt(index, label[, data])
Parameter
index Eine positive Zahl oder die Zahl 0 für die Position, an der das Element eingefügt wird
(Index des neuen Elements).
label
data
Eine Zeichenfolge, die die Bezeichnung für das neue Element angibt.
Die Daten für das Element. Dieser Parameter ist optional.
Rückgaben
Keine.
Beschreibung
Methode; ersetzt den Inhalt des im Parameter index angegebenen Elements. Bei dieser Methode
handelt es sich um eine Methode der List-Komponente, die bei Instanzen der ComboBoxKomponente zur Verfügung steht.
Beispiel
Im folgenden Beispiel wird der Inhalt des Elements an der dritten Indexposition geändert:
meineCombo.replaceItemAt(3, "Neue Bezeichnung");
Siehe auch
ComboBox.removeAll(), ComboBox.removeItemAt()
ComboBox.rowCount
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.rowCount
Beschreibung
Eigenschaft; die maximale Anzahl der in der Dropdown-Liste angezeigten Reihen. Der
Standardwert ist 5.
Wenn die Anzahl der Elemente in der Dropdown-Liste dem Wert der Eigenschaft rowCount
entspricht oder diesen übersteigt, wird die Größe der Liste geändert und erforderlichenfalls eine
Bildlaufleiste eingeblendet. Wenn die Anzahl der Elemente in der Dropdown-Liste kleiner ist als
der Wert der Eigenschaft rowCount, wird die Größe der Liste entsprechend angepasst.
In diesem Punkt weicht das Verhalten von der List-Komponente ab, bei der immer die in der
Eigenschaft rowCount festgelegte Zeilenanzahl angezeigt wird, auch wenn das Listenfeld dabei
nicht vollständig durch die Elemente ausgefüllt wird.
Bei negativen oder nicht ganzzahligen Werten ist das Verhalten nicht definiert.
ComboBox-Komponente
131
Beispiel
Im folgenden Beispiel wird die Anzahl der sichtbaren Zeilen im Kombinationsfeld auf
höchstens 20 festgelegt:
meineComboBox.rowCount = 20;
ComboBox.scroll
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(scroll){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.scroll = function(eventObject){
// Hier Code eingeben
}
comboBoxInstance.addEventListener("scroll", listenerObject)
Ereignisobjekt
Neben den Standardeigenschaften für Ereignisobjekte verfügt das scroll-Ereignis über die
zusätzliche Eigenschaft direction. Hierbei handelt es sich um eine Zeichenfolge mit dem Wert
horizontal oder vertical, die die Richtung des Bildlaufs angibt. Bei Instanzen der
ComboBox-Komponente ist der Wert von scroll immer vertical.
Beschreibung
Ereignis; Broadcast an alle registrierten Listener beim Scrollen in der Dropdown-Liste. Bei dieser
Eigenschaft handelt es sich um eine Eigenschaft der List-Komponente, die bei Instanzen der
ComboBox-Komponente zur Verfügung steht.
Im ersten Beispiel wird eine on()-Prozedur verwendet, die direkt einer Instanz der ComboBoxKomponente zugewiesen werden muss. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Wenn beispielsweise der folgende
Code der Instanz meineBox der ComboBox-Komponente zugewiesen wird, wird
„_level0.meineBox“ an das Ausgabebedienfeld gesendet:
on(scroll){
trace(this);
}
132
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (comboBoxInstance) setzt ein Ereignis (in diesem Fall scroll) ab, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. (Weitere
Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Anschließend rufen Sie die Methode addEventListener() für die Komponenteninstanz auf, die
das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis
absetzt, wird der Listener aufgerufen.
Beispiel
Im folgenden Beispiel wird eine Meldung an das Ausgabebedienfeld gesendet, die die
Indexnummer des beim Scrollen angesteuerten Elements angibt:
form.scroll = function (eventObj) {
trace("Das beim Scrollen angesteuerte Element hat die Indexnummer " +
eventObj.target.vPosition + ".");
}
meineCombo.addEventListener("scroll", form);
Siehe auch
UIEventDispatcher.addEventListener()
ComboBox.selectedIndex
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.selectedIndex
Beschreibung
Eigenschaft; der Index des ausgewählten Elements in der Dropdown-Liste. Der Standardwert
ist 0. Durch Zuweisen dieser Eigenschaft wird die aktuelle Auswahl gelöscht, das angegebene
Element ausgewählt und dessen Bezeichnung im Textfeld des Kombinationsfelds angezeigt.
Wenn der angegebene Wert für selectedIndex außerhalb des gültigen Bereichs liegt, wird er
ignoriert. Sobald Text in das Textfeld eines bearbeitbaren Kombinationsfelds eingegeben wird,
wird selectedIndex auf undefined gesetzt.
ComboBox-Komponente
133
Beispiel
Mit dem folgenden Code wird das letzte Element der Liste ausgewählt:
meineComboBox.selectedIndex = meineComboBox.length-1;
Siehe auch
ComboBox.selectedItem
ComboBox.selectedItem
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.selectedItem
Beschreibung
Eigenschaft; der Wert des ausgewählten Elements in der Dropdown-Liste.
Bei bearbeitbaren Kombinationsfeldern ist der Rückgabewert von selectedItem nicht definiert,
wenn Text in das Textfeld eingegeben wird. Der Wert ist nur definiert, wenn ein Element aus der
Dropdown-Liste ausgewählt oder der Wert per ActionScript zugewiesen wurde. Bei statischen
Kombinationsfeldern ist der Wert von selectedItem immer gültig.
Beispiel
Im folgenden Beispiel wird das ausgewählte Element (selectedItem) angezeigt, wenn der
Datenprovider Grunddatentypen enthält:
var item = meineComboBox.selectedItem;
trace("Sie haben das Element " + item + " ausgewählt.");
Im folgenden Beispiel wird das ausgewählte Element (selectedItem) angezeigt, wenn der
Datenprovider Objekte mit den Eigenschaften label und data enthält:
var obj = meineComboBox.selectedItem;
trace("Die Bezeichnung der gewählten Farbe lautet: " + obj.label);
trace("Der Hexadezimalwert der gewählten Farbe ist: " + obj.data);
Siehe auch
ComboBox.dataProvider, ComboBox.selectedIndex
ComboBox.text
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
134
Kapitel 4: Komponenten-Referenz
Verwendung
meineComboBox.text
Beschreibung
Eigenschaft; der Text im Textfeld. Bei bearbeitbaren Kombinationsfeldern kann dieser Wert
abgefragt und zugewiesen werden. Bei statischen Kombinationsfeldern ist dieser Wert
schreibgeschützt, d. h., er kann nur abgefragt werden.
Beispiel
Im folgenden Beispiel wird der aktuelle Wert der Eigenschaft text für ein bearbeitbares
Kombinationsfeld zugewiesen:
meineComboBox.text = "Zürich";
ComboBox.textField
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.textField
Beschreibung
Eigenschaft (schreibgeschützt); gibt eine Referenz auf die im Kombinationsfeld enthaltene
TextInput-Komponente zurück.
Mit dieser Eigenschaft können Sie auf die zugrunde liegende TextInput-Komponente und deren
Eigenschaften zugreifen. Sie können damit beispielsweise den Auswahlstatus des Textfelds ändern
oder bei der Eingabe nur bestimmte Zeichen zulassen.
Beispiel
Im folgenden Codebeispiel wird das Textfeld meineComboBox so angepasst, dass nur Zahlen
eingegeben werden können:
meineComboBox.textField.restrict = "0-9";
ComboBox.value
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
meineComboBox.value
ComboBox-Komponente
135
Beschreibung
Eigenschaft (schreibgeschützt); bei bearbeitbaren Kombinationsfeldern gibt value den Wert des
Textfelds zurück. Bei statischen Kombinationsfeldern gibt value den Wert der Dropdown-Liste
zurück. Der Wert der Dropdown-Liste entspricht dem Wert im Feld data oder (falls das Feld
data nicht vorhanden ist) dem Wert im Feld label.
Beispiel
Im folgenden Beispiel werden dem Kombinationsfeld mit Hilfe der Eigenschaft dataProvider
Daten zugewiesen. Dann wird der Wert value im Ausgabebedienfeld angezeigt. Zum Schluss
wird das Listenelement „Zürich“ ausgewählt und im Textfeld angezeigt.
cb.dataProvider = [
{label:"Bern", data:"BE"},
{label:"Genf", data:"GE"},
{label:"Zürich", data:"ZH"}];
cb.editable = true;
cb.selectedIndex = 1;
trace('Bearbeitbarer Wert ist "Zürich": '+ cb.value);
cb.editable = false;
cb.selectedIndex = 1;
trace('Nicht bearbeitbarer Wert ist "ZH": '+ cb.value);
Datenbindungsklassen (nur Flash Professional)
Die Datenbindungsklassen stellen die Laufzeitfunktionen für die Datenbindung in
Flash MX Professional 2004 zur Verfügung. In der Flash-Authoring-Umgebung können Sie auf
der Registerkarte Bindungen im Bedienfeld Komponenten-Inspektor Datenbindungen visuell
erstellen und konfigurieren. Alternativ können Sie Bindungen auch mit den Klassen im
mx.data.binding-Paket direkt erstellen und konfigurieren.
Eine Übersicht zu Datenbindungen und Informationen zum visuellen Erstellen von
Datenbindungen im Flash-Authoring-Tool finden Sie unter „Datenbindung (nur Flash
Professional)“ in der Hilfe „Flash verwenden“.
Datenbindungsklassen zur Laufzeit verfügbar machen (nur Flash
Professional)
Damit die Datenbindungsklassen zur Laufzeit verfügbar sind, muss sich die DataBindingClassesKomponente in der Bibliothek der FLA-Datei befinden. Wenn Sie in der Flash-AuthoringUmgebung Bindungen visuell erstellen, wird diese Komponente der Bibliothek des Dokuments
automatisch hinzugefügt. Wenn Sie jedoch nur mit ActionScript zur Laufzeit Bindungen
erstellen, müssen Sie diese Komponente der Bibliothek des Dokuments manuell hinzufügen.
Informationen zum Hinzufügen dieser Komponente zu einem Dokument finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe
„Flash verwenden“.
136
Kapitel 4: Komponenten-Referenz
Klassen im mx.data.binding-Paket (nur Flash Professional)
Die folgende Tabelle enthält die Klassen im mx.data.binding-Paket.
Klasse
Beschreibung
Binding-Klasse (nur Flash
Professional)
Erstellt eine Bindung zwischen zwei Endpunkten.
ComponentMixins-Klasse (nur
Flash Professional)
Fügt Komponenten datenbindungsspezifische Funktionen hinzu.
CustomFormatter-Klasse (nur
Flash Professional)
Basisklasse zum Erstellen von benutzerdefinierten FormatterKlassen.
CustomValidator-Klasse (nur
Flash Professional)
Basisklasse zum Erstellen von benutzerdefinierten ValidatorKlassen.
DataType-Klasse (nur Flash
Professional)
Ermöglicht Lese- und Schreibzugriff auf Datenfelder einer
Komponenteneigenschaft.
EndPoint-Klasse (nur Flash
Professional)
Definiert Quelle oder Ziel einer Bindung.
TypedValue-Klasse (nur Flash
Professional)
Enthält einen Datenwert und Informationen über seinen Datentyp.
Binding-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.data.binding.Binding
Die Binding-Klasse definiert eine Verknüpfung zwischen zwei Endpunkten, einer Quelle und
einem Ziel. Sie wartet auf Änderungen an der Quelle und kopiert die geänderten Daten in das
Ziel, wenn sich die Quelle geändert hat.
Sie können eigene Bindungen mit der Binding-Klasse (und den zugehörigen Klassen) erstellen
oder dazu die Registerkarte Bindungen im Bedienfeld Komponenten-Inspektor verwenden
(Fenster > Entwicklungs-Bedienfelder > Komponenten-Inspektor).
Hinweis: Damit diese Klasse zur Laufzeit verfügbar ist, müssen Sie die DataBindingClassesKomponente dem FLA-Dokument hinzufügen. Weitere Informationen dazu finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Eine Übersicht der Klassen im mx.data.binding-Paket finden Sie unter „Datenbindungsklassen
(nur Flash Professional)“ auf Seite 136.
Übersicht: Methoden der Binding-Klasse
Methode
Beschreibung
Binding.execute()
Fragt die Daten der Quellkomponente ab, formatiert sie und weist
sie der Zielkomponente zu.
Datenbindungsklassen (nur Flash Professional)
137
Konstruktor für die Binding-Klasse
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
new Binding(source, destination, [format], [isTwoWay])
Parameter
source Der Quellendpunkt der Bindung. Dieser Parameter hat nominell den Typ
mx.data.binding.EndPoint, es kann sich dabei aber um jedes ActionScript-Objekt
handeln,
das die erforderlichen Endpunktfelder besitzt (siehe EndPoint-Klasse (nur Flash Professional)).
destination Der Zielendpunkt der Bindung. Dieser Parameter hat nominell den Typ
mx.data.binding.EndPoint, es kann sich dabei aber um jedes ActionScript-Objekt handeln,
das die erforderlichen Endpunktfelder besitzt (siehe EndPoint-Klasse (nur Flash Professional)).
format (Optional) Ein Objekt mit Formatierungsinformationen. Das Objekt muss folgende
Eigenschaften besitzen:
•
•
Eine ActionScript-Klasse, die die Klasse mx.data.binding.DataAccessor erweitert.
settings Ein Objekt, dessen Eigenschaften optionale Einstellungen für die FormatterKlasse enthalten, die durch cls angegeben ist.
cls
(Optional) Ein Boolescher Wert, der angibt, ob das neue Binding-Objekt
bidirektional ist (true) oder nicht (false). Der Standardwert lautet false.
isTwoWay
Rückgaben
Keine.
Beschreibung
Konstruktor; erstellt ein neues Binding-Objekt. Sie können Datenbindungen zu jedem
ActionScript-Objekt erstellen, das Eigenschaften besitzt und Ereignisse erzeugt, einschließlich
(aber nicht begrenzt auf ) Komponenten.
Ein Binding-Objekt existiert, solange der innerste Movieclip sowohl die Quell- als auch die
Zielkomponenten enthält. Wenn beispielsweise ein Movieclip namens „A“ die Komponenten „X“
und „Y“ enthält und zwischen „X“ und „Y“ eine Bindung besteht, ist die Bindung gültig, solange
Movieclip „A“ existiert.
Hinweis: Es ist nicht erforderlich, einen Bezug auf das neue Binding-Objekt zu erhalten (obwohl
dies möglich ist). Sofort nach seiner Erstellung wartet das Binding-Objekt darauf, ob einer der
Endpunkte ein change-Ereignis ausgibt. In einigen Fällen soll aber möglicherweise ein Bezug auf das
neue Binding-Objekt erhalten bleiben, um später seine execute()-Methode aufrufen zu können
(siehe Binding.execute()).
138
Kapitel 4: Komponenten-Referenz
Beispiel
Beispiel 1: In diesem Beispiel besteht zwischen der Eigenschaft text einer TextInputKomponente (src_txt) und der Eigenschaft text einer anderen TextInput-Komponente
(dest_txt) eine Bindung. Wenn das src_txt-Textfeld den Fokus verliert (d. h., wenn das
Ereignis focusOut erzeugt wird), wird der Wert der Eigenschaft text in dest_txt.text kopiert.
import mx.data.binding.*;
var src = new EndPoint();
src.component = src_txt;
src.property = "text";
src.event = "focusOut";
var dest= new EndPoint();
dest.component = dest_txt;
dest.property = "text";
new Binding(src, dest);
Beispiel 2: Dieses Beispiel veranschaulicht die Erstellung eines Binding-Objekts, das eine
benutzerdefinierte Formatter-Klasse verwendet. Weitere Informationen zum Erstellen von
benutzerdefinierten Formatter-Klassen finden Sie unter „CustomFormatter-Klasse (nur Flash
Professional)“ auf Seite 140.
import mx.data.binding.*;
var src = new EndPoint();
src.component = src_txt;
src.property = "text";
src.event = "focusOut";
var dest= new EndPoint();
dest.component = text_dest;
dest.property = "text";
new Binding(src, dest, {cls: mx.data.formatters.Custom, settings: {classname:
"com.meinecompany.SpecialFormatter"}});
Binding.execute()
Verfügbarkeit
Flash Player 6.
Edition
Flash MX Professional 2004.
Verwendung
meineBinding.execute([reverse])
Parameter
Ein Boolescher Wert, der angibt, ob die Bindung auch vom Ziel zur Quelle ausgeführt
werden soll (true) oder nur von der Quelle zum Ziel (false). Der Standardwert ist false.
reverse
Datenbindungsklassen (nur Flash Professional)
139
Rückgaben
Wert null, wenn die Bindung erfolgreich ausgeführt wurde. Andernfalls wird ein Array mit
Fehlermeldungen (Strings) zurückgegeben, die die Fehler beschreiben, die die Ausführung der
Bindung verhindert haben.
Beschreibung
Methode; fragt die Daten der Quellkomponente ab und weist sie der Zielkomponente zu. Wenn
bei der Bindung ein Formatierer verwendet wird, werden die Daten formatiert, bevor sie dem Ziel
zugewiesen werden.
Mit dieser Methode wird außerdem die Gültigkeit der Daten überprüft und entweder ein validoder invalid-Ereignis durch die Ziel- und Quellkomponenten ausgegeben. Die Daten werden
dem Ziel auch dann zugewiesen, wenn sie ungültig sind (ausgenommen, das Ziel ist
schreibgeschützt).
Wenn der Parameter reverse mit true belegt ist und die Bindung bidirektional ist, wird die
Bindung in umgekehrter Richtung ausgeführt (vom Ziel zur Quelle).
Beispiel
Wenn der folgende Code einer Instanz einer Button-Komponente hinzugefügt ist und auf die
Schaltfläche geklickt wird, wird die Bindung in umgekehrter Richtung ausgeführt (d. h., von der
Zielkomponente zur Quellkomponente).
on(click){
_root.meineBinding.execute(true);
}
CustomFormatter-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.data.binding.CustomFormatter
Die CustomFormatter-Klasse definiert die Methoden format() und unformat(), mit denen
Datenwerte eines bestimmten Datentyps in einen String umgewandelt werden können (und
umgekehrt). Standardmäßig haben diese Methoden keine Funktion, sie müssen in einer
Unterklasse von mx.data.binding.CustomFormatter implementiert werden.
Um einen benutzerdefinierten Formatierer zu erstellen, erzeugen Sie zuerst eine Unterklasse von
CustomFormatter, die die Methoden format() und unformat() implementiert. Sie können
diese Klasse dann einer Bindung zwischen Komponenten zuweisen, indem Sie entweder ein neues
Binding-Objekt mit ActionScript erstellen (siehe „Binding-Klasse (nur Flash Professional)“
auf Seite 137) oder die Registerkarte Bindungen im Bedienfeld Komponenten-Inspektor
verwenden. Informationen zum Zuweisen einer Formatter-Klasse mit dem KomponentenInspektor finden Sie unter „Schema-Formatierer (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Sie können eine Formatter-Klasse außerdem mit der Registerkarte Schema im Bedienfeld
Komponenten-Inspektor einer Komponenteneigenschaft zuweisen. In diesem Fall wird der
Formatierer jedoch nur dann verwendet, wenn die Daten als String benötigt werden. Hingegen
wird ein Formatierer, der mit der Registerkarte Bindungen zugewiesen oder mit ActionScript
erstellt wurde, immer verwendet, wenn die Bindung ausgeführt wird.
Ein Beispiel zum Erstellen und Zuweisen eines benutzerdefinierten Formatierers mit ActionScript
finden Sie unter „Beispiel für einen benutzerdefinierten Formatierer“ auf Seite 141.
140
Kapitel 4: Komponenten-Referenz
Hinweis: Damit diese Klasse zur Laufzeit verfügbar ist, müssen Sie die DataBindingClassesKomponente dem FLA-Dokument hinzufügen. Weitere Informationen dazu finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Eine Übersicht der Klassen im mx.data.binding-Paket finden Sie unter „Datenbindungsklassen
(nur Flash Professional)“ auf Seite 136.
Beispiel für einen benutzerdefinierten Formatierer
Das folgende Beispiel zeigt, wie Sie mit ActionScript eine benutzerdefinierte Formatter-Klasse
erstellen und anschließend auf eine Bindung zwischen zwei Komponenten anwenden. In diesem
Beispiel ist der aktuelle Wert einer NumericStepper-Komponente (die Eigenschaft value) mit
dem aktuellen Wert einer TextInput-Komponente (der Eigenschaft text) verknüpft. Die
benutzerdefinierte Formatter-Klasse formatiert den aktuellen numerischen Wert der
NumericStepper-Komponente (z. B. 1, 2 oder 3) als das entsprechende deutsche Wort (z. B.
„eins“, „zwei“ oder „drei“), bevor dieser Wert der TextInput-Komponente zugewiesen wird.
So erstellen und verwenden Sie einen benutzerdefinierten Formatierer:
1 Erzeugen Sie in Flash MX Professional 2004 eine neue ActionScript-Datei.
2 Fügen Sie der Datei den folgenden Code hinzu:
// NumberFormatter.as
class NumberFormatter extends mx.data.binding.CustomFormatter {
// Zahl formatieren, String zurückgeben
function format(rawValue) {
var returnValue;
var strArray = new Array('eins', 'zwei', 'drei');
var numArray = new Array(1, 2, 3);
returnValue = 0;
for (var i = 0; i<strArray.length; i++) {
if (rawValue == numArray[i]) {
returnValue = strArray[i];
break;
}
}
return returnValue;
} // formatierten Wert umwandeln, Rohdatenwert zurückgeben
function unformat(formattedValue) {
var returnValue;
var strArray = new Array('eins', 'zwei', 'drei');
var numArray = new Array(1, 2, 3);
returnValue = "invalid";
for (var i = 0; i<strArray.length; i++) {
if (formattedValue == strArray[i]) {
returnValue = numArray[i];
break;
}
}
return returnValue;
}
}
3 Speichern Sie die ActionScript-Datei als NumberFormatter.as.
4 Erstellen Sie ein neues Flash-Dokument (FLA).
5 Öffnen Sie über Fenster > Entwicklungs-Bedienfelder > Komponenten das Bedienfeld
Komponenten.
Datenbindungsklassen (nur Flash Professional)
141
6 Ziehen Sie eine TextInput-Komponente auf die Bühne, und geben Sie ihr den Namen
textInput.
7 Ziehen Sie eine NumericStepper-Komponente auf die Bühne, und geben Sie ihr den Namen
stepper.
8 Öffnen Sie die Zeitleiste (Fenster > Zeitleiste), und wählen Sie das erste Bild auf Ebene 1.
9 Öffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen).
10 Fügen Sie im Bedienfeld Aktionen folgenden Code hinzu:
import mx.data.binding.*;
var x:NumberFormatter;
var customBinding = new Binding({component:stepper, property:"value",
event:"change"}, {component:textInput, property:"text",
event:"enter,change"}, {cls:mx.data.formatters.Custom,
settings:{classname:"NumberFormatter"}});
Die zweite Codezeile (var x:NumberFormatter) stellt sicher, dass der Byte-Code für die
benutzerdefinierte Formatter-Klasse in der kompilierten SWF-Datei enthalten ist.
11 Wählen Sie Fenster > Andere Bedienfelder > Allgemeine Bibliotheken > Klassen, um die
Klassenbibliothek zu öffnen.
12 Öffnen Sie die Bibliothek des Dokuments. Wählen Sie dazu Fenster > Bibliothek.
13 Ziehen Sie die DataBindingClasses-Komponente aus der Klassenbibliothek in die Bibliothek
des Dokuments.
Dadurch machen Sie die Datenbindungs-Laufzeitklassen für das Dokument verfügbar. Weitere
Informationen finden Sie unter „Mit Datenbindung und Webdiensten zur Laufzeit arbeiten
(nur Flash Professional)“ in der Hilfe „Flash verwenden“.
14 Speichern Sie die FLA-Datei im selben Ordner, in dem NumberFormatter.as gespeichert ist.
15 Testen Sie die Datei (Steuerung > Film testen).
Klicken Sie auf die Schaltflächen der NumericStepper-Komponente. Die Inhalte der
TextInput-Komponente werden dann aktualisiert.
Übersicht: Methoden der CustomFormatter-Klasse
Methode
Beschreibung
CustomFormatter.format()
Wandelt Daten aus einem Rohdatentyp in einen Textstring
um.
CustomFormatter.unformat()
Wandelt einen Textstring in einen Rohdatentyp um.
CustomFormatter.format()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Diese Methode wird automatisch aufgerufen, d. h., Sie rufen sie nicht direkt auf.
142
Kapitel 4: Komponenten-Referenz
Parameter
rawData
Die zu formatierenden Daten.
Rückgaben
Ein formatierter Wert.
Beschreibung
Methode; wandelt Daten aus einem Rohdatentyp in ein neues Objekt um.
Diese Methode ist standardmäßig nicht implementiert. Sie müssen diese Methode in der
Unterklasse von mx.data.binding.CustomFormatter definieren.
Beispiel
Weitere Informationen hierzu finden Sie unter „Beispiel für einen benutzerdefinierten
Formatierer“ auf Seite 141.
CustomFormatter.unformat()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Diese Methode wird automatisch aufgerufen, d. h., Sie rufen sie nicht direkt auf.
Parameter
formattedData
Die formatierten Daten, die wieder in den Rohdatentyp umgewandelt werden
sollen.
Rückgaben
Ein unformatierter Wert.
Beschreibung
Methode; wandelt Daten aus dem Stringformat (oder einem anderen Datentyp) in den
Rohdatentyp um. Diese Umwandlung ist das genaue Gegenteil der Umwandlung, die mit
CustomFormatter.format() durchgeführt wird.
Diese Methode ist standardmäßig nicht implementiert. Sie müssen diese Methode in der
Unterklasse von mx.data.binding.CustomFormatter definieren.
Weitere Informationen finden Sie unter „Beispiel für einen benutzerdefinierten Formatierer“
auf Seite 141.
Datenbindungsklassen (nur Flash Professional)
143
CustomValidator-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.data.binding.CustomValidator
Mit der CustomValidator-Klasse können Sie benutzerdefinierte Überprüfungen für ein Datenfeld
in einer Komponente durchführen.
Um eine benutzerdefinierte Validator-Klasse zu erzeugen, erstellen Sie zuerst eine Unterklasse von
mx.data.binding.CustomValidator, die eine Methode namens validate() implementiert. Dieser
Methode wird automatisch ein zu überprüfender Wert übergeben. Weitere Informationen zum
Implementieren dieser Methode finden Sie unter CustomValidator.validate().
Weisen Sie anschließend die benutzerdefinierte Validator-Klasse einem Feld einer Komponente
zu. Verwenden Sie dazu die Registerkarte Schema im Bedienfeld Komponenten-Inspektor. Ein
Beispiel zum Erstellen und Verwenden einer benutzerdefinierten Validator-Klasse finden Sie im
Abschnitt Beispiel des Eintrags CustomValidator.validate().
So weisen Sie einen benutzerdefinierten Validierer zu:
1 Wählen Sie im Bedienfeld Komponenten-Inspektor (Fenster > Komponenten-Inspektor) die
Registerkarte Schema.
2 Wählen Sie das Feld aus, das Sie überprüfen möchten. Wählen Sie anschließend im
Popupmenü data type (Datentyp) die Option Custom (Benutzerdefiniert).
3 Wählen Sie das Feld validation options (Überprüfungseinstellungen) am unteren Rand der
Registerkarte Schema aus. Klicken Sie dann auf das Lupensymbol, um das Dialogfeld
Benutzerdefinierte Überprüfungseinstellungen zu öffnen.
4 Geben Sie im Textfeld der ActionScript-Klasse den Namen der von Ihnen erstellten
benutzerdefinierten Validator-Klasse ein.
Damit die angegebene Klasse in die veröffentlichte SWF-Datei aufgenommen wird, muss sie
sich im Klassenpfad befinden.
Hinweis: Damit diese Klasse zur Laufzeit verfügbar ist, müssen Sie die DataBindingClassesKomponente dem FLA-Dokument hinzufügen. Weitere Informationen dazu finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Eine Übersicht der Klassen im mx.data.binding-Paket finden Sie unter „Datenbindungsklassen
(nur Flash Professional)“ auf Seite 136.
Übersicht: Methoden der CustomValidator-Klasse
Methode
Beschreibung
CustomValidator.validate()
Führt eine Datenüberprüfung durch.
CustomValidator.validationError() Meldet Überprüfungsfehler.
144
Kapitel 4: Komponenten-Referenz
CustomValidator.validate()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Diese Methode wird automatisch aufgerufen, d. h., Sie rufen sie nicht direkt auf.
Parameter
value
Die zu überprüfenden Daten; können einem beliebigen Datentyp angehören.
Rückgaben
Keine.
Beschreibung
Methode; wird automatisch aufgerufen, um die Gültigkeit der im Parameter value enthaltenen
Daten zu überprüfen. Sie müssen diese Methode in der von Ihnen erzeugten Unterklasse von
CustomValidator implementieren; die standardmäßige Implementierung hat keine Wirkung.
Sie können die Daten mit Hilfe von beliebigem ActionScript-Code untersuchen und überprüfen.
Falls die Daten nicht gültig sind, sollte diese Methode this.validationError() mit einer
entsprechenden Meldung aufrufen. Sie können this.validationError() mehrmals aufrufen,
wenn mehrere Überprüfungsprobleme bei den Daten auftreten.
Da die Methode validate() wiederholt aufgerufen werden kann, sollten Sie ihr keinen Code
hinzufügen, dessen Verarbeitung lange andauert. Ihre Implementierung dieser Methode sollte nur
die Gültigkeit überprüfen und anschließend alle Fehler mit
CustomValidator.validationError() mitteilen. Ebenso sollte Ihre Implementierung keine
Aktionen als Folge des Überprüfungstests durchführen, z. B. eine Warnung des Endbenutzers.
Erstellen Sie stattdessen Ereignis-Listener für die Ereignisse valid und invalid, und alarmieren
Sie den Endbenutzer über diese Ereignis-Listener (siehe Beispiel unten).
Beispiel
Die folgende Vorgehensweise verdeutlicht, wie eine benutzerdefinierte Überprüfungsklasse erstellt
und verwendet wird. Die Methode validate() der CustomValidator-Klasse,
OddNumbersOnly.as, legt alle Werte als ungültig fest, die keine ungerade Zahl sind. Die
Überprüfung tritt immer dann ein, wenn sich eine NumericStepper-Komponente ändert, die an
die Eigenschaft text einer Label-Komponente gebunden ist.
Datenbindungsklassen (nur Flash Professional)
145
So erstellen und verwenden Sie eine benutzerdefinierte Überprüfungsklasse:
1 Erstellen Sie in Flash MX Professional 2004 eine neue ActionScript (AS)-Datei.
2 Fügen Sie der AS-Datei den folgenden Code hinzu:
class OddNumbersOnly extends mx.data.binding.CustomValidator
{
public function validate(value) {
// Bei dem Wert muss es sich um eine Zahl handeln
var n = Number(value);
if (String(n) == "NaN") {
this.validationError("'" + value + "' ist keine Zahl.");
return;
}
// Die Zahl muss ungerade sein
if (n % 2 == 0) {
this.validationError("'" + value + "' ist keine ungerade Zahl.");
return;
}
// Daten sind in Ordnung, kein Handlungsbedarf, nur zurückkehren
}
}
3 Speichern Sie die AS-Datei unter OddNumbersOnly.as.
Hinweis: Der Name der AS-Datei muss mit dem Namen der Klasse übereinstimmen.
4 Erstellen Sie ein neues Flash-Dokument (FLA).
5 Öffnen Sie über Fenster > Entwicklungs-Bedienfelder > Komponenten das Bedienfeld
Komponenten.
6 Ziehen Sie eine NumericStepper-Komponente aus dem Bedienfeld Komponenten auf die
Bühne, und nennen Sie sie stepper.
7 Ziehen Sie eine Label-Komponente auf die Bühne, und nennen Sie sie textLabel.
8 Ziehen Sie eine TextArea-Komponente auf die Bühne, und nennen Sie status.
9 Wählen Sie die NumericStepper-Komponente aus, und öffnen Sie den KomponentenInspektor (Fenster > Entwicklungs-Bedienfelder > Komponenten-Inspektor).
10 Wählen Sie im Komponenten-Inspektor die Registerkarte Bindungen aus, und klicken Sie auf
die Schaltfläche Bindung hinzufügen (+).
11 Wählen Sie im Dialogfeld Bindung hinzufügen die (einzig vorhandene) Eigenschaft Value,
und klicken Sie auf OK.
12 Doppelklicken Sie im Komponenten-Inspektor im Fenster Bindungsattribute der
Registerkarte Bindungen auf bound to (Gebunden an), um das Dialogfeld Gebunden an zu
öffnen.
13 Wählen Sie im Dialogfeld Gebunden an im Fenster Komponentenpfad die Label-Komponente
und im Fenster Schema-Standort die Eigenschaft text aus. Klicken Sie auf OK.
14 Wählen Sie die Label-Komponente auf der Bühne aus, und klicken Sie im Bedienfeld
Komponenten-Inspektor auf die Registerkarte Schema.
15 Wählen Sie im Fenster der Schema-Attribute im Popupmenü data type (Datentyp) die Option
Custom (Benutzerdefiniert) aus.
16 Doppelklicken Sie im Fenster der Schema-Attribute auf das Feld validation options
(Überprüfungseinstellungen), um das Dialogfeld Benutzerdefinierte
Überprüfungseinstellungen zu öffnen.
146
Kapitel 4: Komponenten-Referenz
17 Geben Sie OddNumbersOnly im Textfeld der ActionScript-Klasse ein, also den Namen der
ActionScript-Klasse, die Sie zuvor erstellt haben. Klicken Sie auf OK.
18 Öffnen Sie die Zeitleiste (Fenster > Zeitleiste), und wählen Sie das erste Bild auf Ebene 1.
19 Öffnen Sie das Bedienfeld Aktionen (Fenster > Aktionen).
20 Fügen Sie im Bedienfeld Aktionen folgenden Code hinzu:
function dataIsInvalid(evt) {
if (evt.property == "text") {
status.text = evt.messages;
}
}
function dataIsValid(evt) {
if (evt.property == "text") {
status.text = "OK";
}
}
textLabel.addEventListener("valid", dataIsValid);
textLabel.addEventListener("invalid", dataIsInvalid);
21 Speichern Sie die FLA-Datei unter OddOnly.fla in demselben Ordner, der die Datei
OddNumbersOnly.as enthält.
22 Testen Sie die SWF-Datei (Steuerung > Film testen).
Klicken Sie auf die Pfeile in der NumericStepper-Komponente, um deren Wert zu ändern.
Beachten Sie die Meldung, die in der TextArea-Komponente angezeigt wird, wenn Sie gerade
und ungerade Zahlen wählen.
CustomValidator.validationError()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
this.validationError(errorMessage)
Hinweis: Diese Methode kann nur von einer benutzerdefinierten Überprüfungsklasse aus
aufgerufen werden; das Schlüsselwort this bezieht sich auf das aktuelle CustomValidator-Objekt.
Parameter
errorMessage
Ein String, der die auszugebende Fehlermeldung enthält.
Rückgaben
Keine.
Datenbindungsklassen (nur Flash Professional)
147
Beschreibung
Methode; Sie können diese Methode von der validate()-Methode Ihrer Unterklasse von
CustomValidator aus aufrufen, um Überprüfungsfehler zu melden. Falls Sie diese Methode nicht
aufrufen, wird ein valid-Ereignis erzeugt, wenn validate() abgeschlossen ist. Falls Sie diese
Methode ein oder mehrere Male von der validate()-Methode aus aufrufen, wird ein invalidEreignis erzeugt, nachdem validate() zurückgegeben wird.
Alle Meldungen, die Sie an validationError() übergeben, sind in der „messages“-Eigenschaft
des Ereignisobjekts verfügbar, das an die invalid-Ereignisprozedur weitergeleitet wurde.
Beispiel
Siehe Abschnitt „Beispiel“ zu CustomValidator.validate().
EndPoint-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.data.binding.EndPoint
Die EndPoint-Klasse definiert die Quelle oder das Ziel einer Bindung. EndPoint-Objekte
definieren eine Konstante, eine Komponenteneigenschaft oder ein bestimmtes Feld einer
Komponenteneigenschaft, von dem Daten abgerufen bzw. dem Daten zugewiesen werden
können. Sie können auch ein Ereignis oder eine Liste von Ereignissen definieren, auf die ein
Binding-Objekt wartet; wenn das angegebene Ereignis eintritt, wird die Bindung ausgeführt.
Wenn Sie mit dem Binding-Klassenkonstruktor einen neue Bindung erstellen, übergeben Sie ihr
zwei EndPoint-Objekte: eines für die Quelle und eines für das Ziel.
new mx.data.binding.Binding(srcEndPoint, destEndPoint);
Die EndPoint-Objekte, srcEndPoint und destEndPoint, können wie folgt definiert werden:
var srcEndPoint = new mx.data.binding.EndPoint();
var destEndPoint = new mx.data.binding.EndPoint();
srcEndPoint.component = source_txt;
srcEndPoint.property = "text";
srcEndPoint.event = "focusOut";
destEndPoint.component = dest_txt;
destEndPoint.property = "text";
Dieser Code bedeutet Folgendes: „Wenn das Quelltextfeld den Fokus verliert, kopiere den Wert
seiner text-Eigenschaft in die text-Eigenschaft des Zieltextfelds“.
Sie können dem Binding-Konstruktor anstelle eigens erstellter EndPoint-Objekte auch generische
ActionScript-Objekte übergeben. Als einzige Bedingung müssen diese Objekte die erforderlichen
EndPoint-Eigenschaften definieren, nämlich component und property. Der folgende Code ist
gleichbedeutend mit dem oben aufgeführten.
var srcEndPoint = {component:source_txt, property:"text"};
var destEndPoint = {component:dest_txt, property:"text"};
new mx.data.binding.Binding(srcEndPoint, destEndPoint);
Hinweis: Damit diese Klasse zur Laufzeit verfügbar ist, müssen Sie die DataBindingClassesKomponente dem FLA-Dokument hinzufügen. Weitere Informationen dazu finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Eine Übersicht der Klassen im mx.data.binding-Paket finden Sie unter „Datenbindungsklassen
(nur Flash Professional)“ auf Seite 136.
148
Kapitel 4: Komponenten-Referenz
Übersicht: Eigenschaften der EndPoint-Klasse
Methode
Beschreibung
EndPoint.constant
Eine Konstante.
EndPoint.component
Ein Verweis auf eine Komponenteninstanz.
EndPoint.property
Der Name einer Eigenschaft der Komponenteninstanz, der durch
EndPoint.component festgelegt ist.
EndPoint.location
Die Position eines Datenfelds in der Eigenschaft der
Komponenteninstanz.
EndPoint.event
Der Name eines Ereignisses oder einer Liste von Ereignissen, die die
Komponenteninstanz erzeugt, wenn die Daten sich ändern.
Konstruktor für die EndPoint-Klasse
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
new EndPoint()
Rückgaben
Keine.
Beschreibung
Konstruktor; erstellt ein neues EndPoint-Objekt.
Beispiel
In diesem Beispiel wird das neue EndPoint-Objekt source_txt erstellt und dessen Eigenschaften
component und property Werte zugewiesen.
var source_obj = new mx.data.binding.EndPoint();
source_obj.component = meinTextField;
source_obj.property = "text";
EndPoint.constant
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
endPoint_src.constant
Datenbindungsklassen (nur Flash Professional)
149
Beschreibung
Eigenschaft; eine einem EndPoint-Objekt zugewiesene Konstante. Diese Eigenschaft kann nur
auf EndPoints-Objekte angewendet werden, die die Quelle und nicht das Ziel einer Bindung
zwischen Komponenten darstellen. Bei dem Wert kann es sich um jeden Datentyp handeln, der
mit dem Ziel der Bindung kompatibel ist. Falls angegeben, werden alle anderen EndPointEigenschaften des angegebenen EndPoint-Objekts ignoriert.
Beispiel
In diesem Beispiel wird der konstanten Eigenschaft eines EndPoint-Objekts die Stringkonstante
„Hallo“ zugewiesen.
var sourceEndPoint = new mx.data.binding.EndPoint();
sourceEndPoint.constant="Hallo";
EndPoint.component
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
endPointObj.component
Beschreibung
Eigenschaft; ein Verweis auf eine Komponenteninstanz.
Beispiel
In diesem Beispiel wird eine Instanz der List-Komponente (listBox1) als
Komponentenparameter eines EndPoint-Objekts zugewiesen.
var sourceEndPoint = new mx.data.binding.EndPoint();
sourceEndPoint.component=listBox1;
EndPoint.property
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
endPointObj.property
150
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; gibt einen Eigenschaftsnamen der Komponenteninstanz an, welche durch
EndPoint.component angegeben wird, das die bindbaren Daten enthält.
Hinweis: EndPoint.component und EndPoint.property müssen zusammen eine gültige Kombination
aus ActionScript-Objekt und -Eigenschaft darstellen.
Beispiel
In diesem Beispiel wird die text-Eigenschaft einer TextInput-Komponente (text_1) an die
gleiche Eigenschaft in einer anderen TextInput-Komponente (text_2) gebunden.
var sourceEndPoint = {component:text_1, property:"text"};
var destEndPoint = {component:text_2, property:"text"};
new Binding(sourceEndPoint, destEndPoint);
EndPoint.location
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
endPointObj.location
Beschreibung
Eigenschaft; gibt die Position eines Datenfelds in der Eigenschaft der Komponenteninstanz an.
Eine Position kann auf vier Arten angegeben werden: als String, der einen XPath-Ausdruck oder
einen ActionScript-Pfad enthält, als String-Array oder als Objekt.
XPath-Ausdrücke können nur dann verwendet werden, wenn es sich bei den Daten um ein XMLObjekt handelt. Eine Liste der unterstützten XPath-Ausdrücke finden Sie in der Hilfe „Flash
verwenden“ unter „Unterstützte XPath-Ausdrücke“. (Siehe Beispiel 1 unten.)
Bei XML- und ActionScript-Objekten können Sie auch einen String angeben, der einen
ActionScript-Pfad enthält. Ein ActionScript-Pfad enthält die Namen der Felder, getrennt durch
Punkte (z. B. "a.b.c").
Auch ein String-Array kann als Position angegeben werden. Jeder String im Array gibt eine
weitere Verschachtelungsebene an. Diese Technik lässt sich sowohl für XML- als auch
ActionScript-Daten anwenden. (Siehe Beispiel 2 unten.) Wird ein String-Array mit ActionScriptDaten verwendet, ist dies gleichbedeutend mit der Verwendung eines ActionScripts, d. h. das
Array ["a","b","c"] entspricht "a.b.c".
Wenn Sie ein Objekt als Position angeben, muss das Objekt zwei Eigenschaften angeben: path
und indices. Die path-Eigenschaft ist ein String-Array, wie oben behandelt, außer dass einer
oder mehrere der angegebenen Strings das Sonder-Token "[n]" sein können. Zu jedem Auftreten
dieses Tokens in path muss ein entsprechendes Indexelement in indices existieren. Bei der
Auswertung des Pfades werden die Indizes zur Indizierung in Arrays verwendet. Das
Indexelement kann ein beliebiger EndPoint sein. Dieser Positionstyp lässt sich nur auf
ActionScript- und nicht auf XML-Daten anwenden. (Siehe Beispiel 3 unten.)
Datenbindungsklassen (nur Flash Professional)
151
Beispiel
Beispiel 1: In diesem Beispiel wird mit einem XPath-Ausdruck die Position des Knotens zip in
einem XML-Objekt angegeben.
var sourceEndPoint = new mx.databinding.EndPoint();
var sourcObj=new Object();
sourceObj.xml=new XML("<zip>94103</zip>");
sourceEndPoint.component=sourceObj;
sourceEndPoint.property="xml";
sourceEndPoint.location="/zip";//
Beispiel 2: In diesem Beispiel wird mit einem String-Array eine verschachtelte
Movieclipeigenschaft angezeigt.
var sourceEndPoint = new mx.data.binding.EndPoint();
//vorausgesetzt, movieClip1.ball.position existiert
ssourceEndPoint.component=movieClip1;
sourceEndPoint.property="ball";
//auf movieClip1.ball.position.x zugreifen
sourceEndPoint.location=["position","x"];
Beispiel 3: Dieses Beispiel zeigt, wie mit einem Objekt die Position eines Datenfelds in einer
komplexen Datenstruktur angegeben wird.
var city=new Object();
city.theaters = [{theater: "t1", movies: [{name: "Good,Bad,Ugly"},
{name:"Matrix Reloaded"}]}, {theater: "t2", movies: [{name: "Gladiator"},
{name: "Catch me if you can"}]}];
var srcEndPoint = new EndPoint();
srcEndPoint.component=city;
srcEndPoint.property="theaters";
srcEndPoint.location = {path: ["[n]","movies","[n]","name"], indices:
[{constant:0},{constant:0}]};
EndPoint.event
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
endPointObj.event
Beschreibung
Eigenschaft; gibt den Namen eines Ereignisses oder ein Array von Ereignisnamen an, der bzw. das
von der Komponente erzeugt wird, wenn die der gebundenen Eigenschaft zugewiesenen Daten
sich ändern. Bei Eintritt des Ereignisses wird die Bindung ausgeführt.
Das angegebene Ereignis gilt nur für Komponenten, die als Quelle einer Bindung oder als Ziel
einer bidirektionalen Bindung verwendet werden. Weitere Informationen zum Erstellen von
bidirektionalen Bindungen finden Sie unter „Binding-Klasse (nur Flash Professional)“
auf Seite 137.
152
Kapitel 4: Komponenten-Referenz
Beispiel
In diesem Beispiel wird die text-Eigenschaft einer TextInput-Komponente (src_txt) an die
gleiche Eigenschaft einer anderen TextInput-Komponente (dest_txt) gebunden. Die
Ausführung der Bindung erfolgt, wenn die Ereignisse focusOut oder enter von der src_txtKomponente ausgelöst werden.
var source = {component:src_txt, property:"text", event:["focusOut",
"enter"]};
var dest = {component:meinTextArea, property:"text"};
var newBind = new mx.data.binding.Binding(source, dest);
ComponentMixins-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.data.binding.ComponentMixins
Die ComponentMixins-Klasse definiert Eigenschaften und Methoden, die jedem Objekt, das
Quelle oder Ziel einer Bindung ist, oder jeder Komponente, die Ziel eines Aufrufs der Methode
ComponentMixins.initComponent() ist, automatisch hinzugefügt werden. Diese Eigenschaften
und Methoden haben keinen Einfluss auf die Funktionalität normaler Komponenten. Vielmehr
fügen Sie bei der Datenbindung nützliche Funktionen hinzu.
Hinweis: Damit diese Klasse zur Laufzeit verfügbar ist, müssen Sie die DataBindingClassesKomponente dem FLA-Dokument hinzufügen. Weitere Informationen dazu finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Eine Übersicht der Klassen im mx.data.binding-Paket finden Sie unter „Datenbindungsklassen
(nur Flash Professional)“ auf Seite 136.
Übersicht: Methoden der ComponentMixins-Klasse
Methode
Beschreibung
ComponentMixins.getField()
Gibt ein Objekt zum Abrufen und Festlegen des Werts
eines Felds an einer bestimmten Position in einer
Komponenteneigenschaft zurück.
ComponentMixins.initComponent()
Fügt einer Komponente die ComponentMixinMethoden hinzu.
ComponentMixins.refreshFromSources()
Führt alle Bindungen aus, die diese Komponente als
Ziel-EndPoint besitzen.
ComponentMixins.refreshDestinations()
Führt alle Bindungen aus, die dieses Objekt als QuellEndPoint besitzen.
ComponentMixins.validateProperty()
Überprüft, ob die Daten in der angegebenen
Eigenschaft gültig sind.
Datenbindungsklassen (nur Flash Professional)
153
ComponentMixins.getField()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.getField(propertyName, [location])
Parameter
propertyName
Ein String, der den Namen einer Eigenschaft der angegebenen Komponente
enthält.
(Optional) Die Position eines Felds in der Komponenteneigenschaft. Dies ist
hilfreich, wenn es sich bei der in propertyName angegebenen Komponenteneigenschaft um eine
komplexe Datenstruktur handelt und Sie an einem bestimmten Feld dieser Struktur interessiert
sind. Diese Eigenschaft kann eine der folgenden drei Formen besitzen:
location
• Ein String, der einen XPath-Ausdruck enthält. Dies gilt nur für XML-Datenstrukturen. Eine
•
•
Liste der unterstützten XPath-Ausdrücke finden Sie in der Hilfe „Flash verwenden“ unter
„Unterstützte XPath-Ausdrücke“.
Ein String, der durch Punkte getrennte Feldnamen enthält, z. B. "a.b.c". Diese Form ist für alle
komplexen Daten zugelassen (ActionScript oder XML).
Ein String-Array, in dem jeder String ein Feldname ist, z. B. ["a", "b", "c"]. Diese Form ist für
alle komplexen Daten zugelassen (ActionScript oder XML).
Rückgaben
Ein DataType-Objekt.
Beschreibung
Methode; gibt ein DataType-Objekt zurück, mit dessen Methoden Sie den Datenwert in der
Komponenteneigenschaft an der angegebenen Feldposition abrufen oder festlegen können.
Weitere Informationen finden Sie unter „DataType-Klasse (nur Flash Professional)“
auf Seite 158.
Beispiel
In diesem Beispiel wird mit der Methode DataType.setAsString() der Wert eines Felds
festgelegt, das sich in der Eigenschaft einer Komponente befindet. In diesem Fall handelt es sich
bei der Eigenschaft (results) um eine komplexe Datenstruktur.
import mx.data.binding.*;
var field : DataType = meineComponent.getField("results", "po.address.name1");
field.setAsString("Teri Randall");
Siehe auch
DataType.setAsString()
154
Kapitel 4: Komponenten-Referenz
ComponentMixins.initComponent()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
mx.data.binding.ComponentMixins.initComponent(componentInstance)
Parameter
componentInstance
Ein Verweis auf eine Komponenteninstanz.
Rückgaben
Keine.
Beschreibung
Methode (statisch); fügt der durch componentInstance angegebenen Komponente alle
ComponentMixins-Methoden hinzu. Diese Methode wird für alle an einer Bindung beteiligten
Komponenten automatisch aufgerufen. Damit die ComponentMixins-Methoden für eine
Komponente verfügbar werden, die nicht an einer Datenbindung beteiligt ist, müssen Sie diese
Methode für die Komponente explizit aufrufen.
Beispiel
Der folgende Code macht die ComponentMixins-Methoden für eine DataSet-Komponente
verfügbar.
mx.data.binding.ComponentMixins.initComponent(_root.meinDataSet);
ComponentMixins.refreshFromSources()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.refreshFromSources()
Rückgaben
Keine.
Beschreibung
Methode; führt alle Bindungen aus, bei denen componentInstance das Ziel-EndPoint-Objekt
ist. Mit dieser Methode können Sie Bindungen ausführen, die konstante Quellen besitzen oder
Quellen, die kein „Geänderte Daten“-Ereignis auslösen.
Datenbindungsklassen (nur Flash Professional)
155
Beispiel
Im folgenden Beispiel werden alle Bindungen ausgeführt, bei denen die ListBoxKomponenteninstanz cityList das Ziel-EndPoint-Objekt ist.
cityList.refreshFromSources();
ComponentMixins.refreshDestinations()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.refreshDestinations()
Rückgaben
Keine.
Beschreibung
Methode; führt alle Bindungen aus, bei denen componentInstance der Quell-EndPoint ist. Mit
dieser Methode können Sie Bindungen ausführen, deren Quellen kein „Geänderte Daten“Ereignis auslösen.
Beispiel
Im folgenden Beispiel werden alle Bindungen ausgeführt, bei denen die DataSetKomponenteninstanz user_data das Quell-EndPoint-Objekt ist.
user_data.refreshDestinations();
ComponentMixins.validateProperty()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.validateProperty(propertyName)
Parameter
propertyName Ein String, der den Namen einer zu componentInstance gehörenden
Eigenschaft enthält.
Rückgaben
Ein Array oder null.
156
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; bestimmt, ob die Daten in propertyName gemäß den Schema-Einstellungen der
Eigenschaft gültig sind. Die Schema-Einstellungen der Eigenschaft werden im KomponentenInspektor auf der Registerkarte Schema festgelegt.
Die Methode gibt null zurück, wenn die Daten gültig sind; andernfalls gibt sie ein Array von
Fehlermeldungen als Strings zurück.
Die Überprüfung betrifft nur die Felder, für die Schema-Informationen verfügbar sind. Handelt
es sich bei einem Feld um ein Objekt, das weitere Felder enthält, wird jedes untergeordnete Feld
überprüft. Treten dabei erneut Felder mit weiteren Feldern auf, werden auch diese überprüft usw.
Jedes einzelne Feld führt je nach Bedarf ein valid- oder ein invalid-Ereignis aus. Für jedes in
propertyName enthaltene Datenfeld führt diese Funktion valid- bzw. invalid-Ereignisse wie
folgt aus:
• Ist der Wert des Felds null und nicht erforderlich, gibt die Methode null zurück. Es werden
keine Ereignisse erzeugt.
• Wenn der Wert des Felds null beträgt und erforderlich ist, wird ein Fehler zurückgegeben und
•
•
ein invalid-Ereignis erzeugt.
Wenn der Wert des Felds ungleich Null ist und das Schema des Felds keinen Validator besitzt,
gibt die Methode null zurück. Es werden keine Ereignisse erzeugt.
Wenn der Wert ungleich Null ist und das Schema des Felds einen Validator definiert, werden
die Daten von dem Validator-Objekt verarbeitet. Wenn die Daten gültig sind, wird ein validEreignis erzeugt und null zurückgegeben; andernfalls wird ein invalid-Ereignis erzeugt und
ein Array von Fehlerstrings zurückgegeben.
Beispiel
In den folgenden Beispielen wird gezeigt, wie mit validateProperty() sichergestellt wird, dass
vom Benutzer eingegebener Text eine gültige Länge besitzt. Die gültige Länge bestimmen Sie,
indem Sie die Überprüfungseinstellungen für den String-Datentyp im Komponenten-Inspektor
auf der Registerkarte Schema festlegen. Wenn der Benutzer im Textfeld einen String ungültiger
Länge eingibt, werden die von der validateProperty()-Methode zurückgegebenen
Fehlermeldungen im Bedienfeld Ausgabe angezeigt.
So überprüfen Sie vom Benutzer eingegebenen Text in einer TextInput-Komponente:
1 Ziehen Sie eine TextInput-Komponente aus dem Bedienfeld Komponenten (Fenster >
2
3
4
5
6
Entwicklungs-Bedienfelder > Komponenten) auf die Bühne, und nennen Sie sie zipCode_txt.
Wählen Sie die TextInput-Komponente aus, und klicken Sie im Komponenten-Inspektor
(Fenster > Entwicklungs-Bedienfelder > Komponenten) auf die Registerkarte Schema.
Wählen Sie im Schemabaum-Feld (das oberste Feld der Registerkarte Schema) die textEigenschaft aus.
Wählen Sie ZipCode (Postleitzahl) im Feld der Schema-Attribute (das unterste Feld der
Registerkarte Schema) aus dem Popupmenü data type (Datentyp) aus.
Öffnen Sie die Zeitleiste, falls sie noch nicht geöffnet ist, indem Sie Fenster > Zeitleiste wählen.
Klicken Sie in der Zeitleiste auf das erste Bild in Ebene 1, und öffnen Sie das Bedienfeld
Aktionen (Fenster > Aktionen).
Datenbindungsklassen (nur Flash Professional)
157
7 Fügen Sie im Bedienfeld Aktionen folgenden Code hinzu:
// ComponentMixin-Methoden zur TextInput-Komponente hinzufügen
// Beachten Sie, dass dieser Schritt nur dann erforderlich ist,
// wenn die Komponente weder als Quelle noch als Ziel
// bereits an einer Datenbindung beteiligt ist.
mx.data.binding.ComponentMixins.initComponent(zipCode_txt);
// Ereignis-Listener-Funktion für Komponente definieren:
validateResults = function (eventObj) {
var errors:Array = eventObj.target.validateProperty("text");
if (errors != null) {
trace(errors);
}
};
// Der Komponente die Listener-Funktion zuweisen:
zipCode_txt.addEventListener("enter", validateResults);
8 Wählen Sie Fenster > Andere Bedienfelder > Allgemeine Bibliotheken > Klassen aus, um die
Klassenbibliothek zu öffnen.
9 Öffnen Sie die Bibliothek, indem Sie Fenster > Bibliothek wählen.
10 Ziehen Sie die DataBindingClasses-Komponente aus der Klassenbibliothek in das Bedienfeld
Bibliothek des Dokuments.
Dieser Schritt ist erforderlich, damit der SWF-Datei die Laufzeitklassen für die Datenbindung
zur Laufzeit zur Verfügung stehen. Weitere Informationen finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe
„Flash verwenden“.
11 Testen Sie die SWF-Datei, indem Sie Steuerung > Film testen wählen.
Geben Sie auf der Bühne in der TextInput-Komponente eine ungültige Postleitzahl ein,
beispielsweise eine, die nur aus Buchstaben besteht oder aus weniger als fünf Ziffern besteht.
Beachten Sie die im Bedienfeld Ausgabe angezeigten Fehlermeldungen.
DataType-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.data.binding.DataType
Die DataType-Klasse bietet Schreib- und Lesezugriff auf Datenfelder einer
Komponenteneigenschaft. Um ein DataType-Objekt abzurufen, rufen Sie die Funktion
ComponentMixins.getField() zu einer Komponente auf. Danach können Sie Methoden des
DataType-Objekts aufrufen, um die Werte des Felds abzurufen und festzulegen.
Der Unterschied zwischen dem Abrufen und Festlegen von Feldwerten mit den DataTypeObjektmethoden und dem direkten Abrufen bzw. Festlegen derselben Werte auf einer
Komponenteninstanz besteht darin, dass die Daten im letzteren Fall in ihrer „rohen“ Form
geliefert werden. Im Gegensatz dazu werden diese Werte gemäß den Schema-Einstellungen des
Felds verarbeitet, wenn Sie Feldwerte mit Methoden der DataType-Klasse abrufen oder festlegen.
Beispielweise ruft der folgende Code den Wert einer Komponenteneigenschaft direkt ab und
weist ihn einer Variablen zu. Die Variable, propVar, enthält den aktuellen Wert der Eigenschaft
propName als „rohen“ Wert.
var propVar = meineComponent.propName;
158
Kapitel 4: Komponenten-Referenz
Im nächsten Beispiel wird der Wert derselben Eigenschaft mit der Methode
DataType.getAsString() abgerufen. In diesem Fall ist der stringVar zugewiesene Wert der
Wert von propName, nachdem dieser gemäß seiner Schema-Einstellungen verarbeitet und danach
als String zurückgegeben wurde.
var dataTypeObj:mx.data.binding.DataType =
meineComponent.getField("propName");
var stringVar: String = dataTypeObj.getAsString();
Weitere Informationen darüber, wie Sie die Schema-Einstellungen eines Felds festlegen, finden
Sie unter „Mit Schemata auf der Registerkarte ,Schema‘ arbeiten (nur Flash Professional)“ in der
Hilfe „Flash verwenden“.
Sie können mit den Methoden der DataType-Klasse auch Felder in verschiedenen Datentypen
abrufen und festlegen. Die DataType-Klasse wandelt die Rohdaten, falls möglich, automatisch in
den erforderlichen Typ um. Im oben aufgeführten Beispiel werden die abgerufenen Daten auch
dann in den Typ „String“ umgewandelt, wenn die Rohdaten einen anderen Typ aufweisen.
Die Methode ComponentMixins.getField() ist für Komponenten verfügbar, die in eine
Datenbindung (als Quelle, Ziel oder Index) einbezogen oder mit der Methode
ComponentMixins.initComponent() initialisiert wurden. Weitere Informationen finden Sie
unter „ComponentMixins-Klasse (nur Flash Professional)“ auf Seite 153.
Hinweis: Damit diese Klasse zur Laufzeit verfügbar ist, müssen Sie die DataBindingClassesKomponente dem FLA-Dokument hinzufügen. Weitere Informationen dazu finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Eine Übersicht der Klassen im mx.data.binding-Paket finden Sie unter „Datenbindungsklassen
(nur Flash Professional)“ auf Seite 136.
Übersicht: Methoden der DataType-Klasse
Methode
Beschreibung
DataType.getAsBoolean()
Ruft den aktuellen Wert des Felds als Booleschen Wert ab.
DataType.getAsNumber()
Ruft den aktuellen Wert des Felds als Zahl ab.
DataType.getAsString()
Ruft den aktuellen Wert des Felds als Stringwert ab.
DataType.getAnyTypedValue() Ruft den aktuellen Wert des Felds ab.
DataType.getTypedValue()
Ruft den aktuellen Wert des Felds in der Form des angeforderten
DataType ab.
DataType.setAnyTypedValue() Legt einen neuen Wert für das Feld fest.
DataType.setAsBoolean()
Legt für das Feld den neuen Wert fest, der als Boolescher Wert
angegeben ist.
DataType.setAsNumber()
Legt für das Feld den neuen Wert fest, der als Zahl angegeben ist.
DataType.setAsString()
Legt für das Feld den neuen Wert fest, der als String angegeben ist.
DataType.setTypedValue()
Legt einen neuen Wert für das Feld fest.
Datenbindungsklassen (nur Flash Professional)
159
Übersicht: Eigenschaften der DataType-Klasse
Eigenschaft
Beschreibung
DataType.encoder
Liefert einen Verweis auf das mit diesem Feld verknüpfte EncoderObjekt.
DataType.formatter
Liefert einen Verweis auf das mit diesem Feld verknüpfte
Formatter-Objekt.
DataType.kind
Liefert einen Verweis auf das mit diesem Feld verknüpfte KindObjekt.
DataType.encoder
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.encoder
Beschreibung
Eigenschaft; liefert einen Verweis auf das mit diesem Feld verknüpfte Encoder-Objekt, falls eines
existiert. Mit dieser Eigenschaft können Sie auf alle Eigenschaften und Methoden zugreifen, die
mit dem Encoder definiert wurden, der dem Feld auf der Registerkarte Schema des
Komponenten-Inspektors zugewiesen wurde.
Wurde dem betreffenden Feld kein Encoder zugewiesen, gibt diese Eigenschaft undefined
zurück.
Weitere Informationen zu den mit Flash MX Professional 2004 gelieferten Encodern finden Sie
unter „Schema-Encoder (nur Flash Professional)“ in der Hilfe „Flash verwenden“.
Beispiel
Im folgenden Beispiel wird davon ausgegangen, dass das Feld, auf das zugegriffen wird (isValid)
den Booleschen Encoder (mx.data.encoders.Bool) verwendet. Dieser Encoder wird mit
Flash MX Professional 2004 geliefert und enthält die Eigenschaft trueStrings, die festlegt,
welche Strings als Boolesche Werte mit dem Wert true interpretiert werden sollen. Der folgende
Code legt für die trueStrings-Eigenschaft für den Encoder eines Felds die Strings „yes“ und
„oui“ fest.
var meinField:mx.data.binding.DataType = dataSet.getField("isValid");
meinField.encoder.trueStrings = "Yes,Oui";
160
Kapitel 4: Komponenten-Referenz
DataType.formatter
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.formatter
Beschreibung
Eigenschaft; liefert einen Verweis auf das mit diesem Feld verknüpfte Formatter-Objekt, falls
eines existiert. Mit dieser Eigenschaft können Sie auf alle Eigenschaften und Methoden des
Formatter-Objekts zugreifen, das dem Feld auf der Registerkarte Schema des KomponentenInspektors zugewiesen wurde.
Wurde dem betreffenden Feld kein Formatierer zugewiesen, gibt diese Eigenschaft undefined
zurück.
Weitere Informationen zu den mit Flash MX Professional 2004 gelieferten Formatierern finden
Sie unter „Schema-Formatierer (nur Flash Professional)“ in der Hilfe „Flash verwenden“.
Beispiel
In diesem Beispiel wird davon ausgegangen, dass das Feld, auf das zugegriffen wird, den mit
Flash MX Professional 2004 gelieferten Zahlenformatierer
(mx.data.formatters.NumberFormatter) verwendet. Dieser Formatierer enthält die Eigenschaft
precision, die festlegt, wie viele Stellen nach dem Dezimalzeichen angezeigt werden. Dieser
Code legt für die precision-Eigenschaft bei einem Feld, das diesen Formatierer verwendet, zwei
Dezimalstellen fest.
var meinField:DataType = dataGrid.getField("currentBalance");
meinField.formatter.precision = 2;
DataType.getAsBoolean()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.getAsBoolean()
Rückgaben
Ein Boolescher Wert.
Beschreibung
Methode; ruft den aktuellen Wert des Felds als Booleschen Wert ab. Der Wert wird
gegebenenfalls in Boolesches Format umgewandelt.
Datenbindungsklassen (nur Flash Professional)
161
Beispiel
In diesem Beispiel wird das Feld propName, das zu der Komponente meineComponent gehört, als
Boolescher Wert abgerufen und einer Variablen zugewiesen.
var dataTypeObj:mx.data.binding.DataType =
meineComponent.getField("propName");
var propValue:Boolean = dataTypeObj.getAsBoolean();
DataType.getAsNumber()
Verfügbarkeit
Flash Player 6.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.getAsNumber()
Rückgaben
Eine Zahl.
Beschreibung
Methode; ruft den aktuellen Wert des Felds als Zahl ab. Der Wert wird gegebenenfalls in
Zahlenformat umgewandelt.
Beispiel
In diesem Beispiel wird das Feld propName, das zu der Komponente meineComponent gehört, als
Zahl abgerufen und einer Variablen zugewiesen.
var dataTypeObj:mx.data.binding.DataType =
meineComponent.getField("propName");
var propValue:Number = dataTypeObj.getAsNumber();
Siehe auch
DataType.getAnyTypedValue()
DataType.getAsString()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.getAsString()
Rückgaben
Ein String.
162
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; ruft den aktuellen Wert des Felds als String ab. Der Wert wird gegebenenfalls in das
Stringformat umgewandelt.
Beispiel
In diesem Beispiel wird die Komponenteneigenschaft propName, die zu der Komponente
meineComponent gehört, als String abgerufen und einer Variablen zugewiesen.
var dataTypeObj:mx.data.binding.DataType =
meineComponent.getField("propName");
var propValue:String = dataTypeObj.getAsString();
Siehe auch
DataType.getAnyTypedValue()
DataType.getAnyTypedValue()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.getAnyTypedValue(suggestedTypes)
Parameter
Ein Array von Strings, die absteigend nach Priorität geordnet die für das Feld
suggestedTypes
gewünschten Datentypen festlegen. Weitere Informationen finden Sie unten im Abschnitt
„Beschreibung“.
Rückgaben
Aktueller Wert des Felds in der Form eines der im Array suggestedTypes angegebenen
Datentypen.
Beschreibung
Methode; ruft den aktuellen Wert des Felds ab und verarbeitet ihn dabei gemäß den
Informationen im Schema des Felds. Falls das Feld einen Wert liefert, der dem ersten in
suggestedTypes angegebenen Datentyp entspricht, gibt die Methode den Wert des Felds als
diesen Datentyp zurück. Andernfalls versucht die Methode, den Wert des Felds als den zweiten
im Array suggestedTypes angegebenen Datentyp zu extrahieren usw.
Wenn Sie null als ein Element im Array suggestedTypes angeben, gibt die Methode den Wert
des Felds als den Datentyp zurück, der im Bedienfeld Schema festgelegt ist. Die Angabe von null
führt immer zu einer Rückgabe eines Werts. Verwenden Sie null deshalb nur am Ende des
Arrays.
Kann ein Wert nicht in der Form eines der vorgeschlagenen Typen zurückgegeben werden, wird
er als der Typ zurückgegeben, der im Bedienfeld Schema festgelegt ist.
Datenbindungsklassen (nur Flash Professional)
163
Beispiel
In diesem Beispiel wird versucht, den Wert eines Felds (productInfo.available) in der
results-Eigenschaft einer XMLConnector-Komponente zuerst als Zahl oder, falls dies
fehlschlägt, als String abzurufen.
import mx.data.binding.DataType;
import mx.data.binding.TypedValue;
var f: DataType = meinXmlConnector.getField("results",
"productInfo.available");
var b: TypedValue = f.getAnyTypedValue(["Number", "String"]);
Siehe auch
ComponentMixins.getField()
DataType.getTypedValue()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.getTypedValue(requestedType)
Parameter
requestedType
Ein String, der den Namen eines Datentyps enthält, oder null.
Rückgaben
Ein TypedValue-Objekt (siehe „TypedValue-Klasse (nur Flash Professional)“ auf Seite 169)
Beschreibung
Methode; gibt den Wert des Felds in der durch requestedType festgelegten Form zurück, falls
„requestedType“ festgelegt ist und das Feld seinen Wert in dieser Form liefern kann. Kann das
Feld seinen Wert nicht in der angeforderten Form liefern, gibt die Methode null zurück.
Falls null als requestedType festgelegt ist, gibt die Methode den Wert des Felds als Standardtyp
zurück.
Beispiel
var bool:TypedValue = field.getTypedValue("Boolean");
164
Kapitel 4: Komponenten-Referenz
DataType.kind
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.kind
Beschreibung
Eigenschaft; liefert einen Verweis auf das mit diesem Feld verknüpfte Kind-Objekt. Damit
können Sie auf Eigenschaften und Methoden des Kind-Objekts zugreifen.
DataType.setAnyTypedValue()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.setAnyTypedValue(newTypedValue)
Parameter
newValue
Ein TypedValue-Objektwert, der in diesem Feld festgelegt werden soll.
Weitere Informationen zu TypedValue-Objekten finden Sie unter „TypedValue-Klasse (nur Flash
Professional)“ auf Seite 169.
Rückgaben
Ein Array von Strings, die alle beim Versuch der Festlegung des neuen Werts aufgetretenen Fehler
beschreiben. Fehler können unter folgenden Bedingungen auftreten:
• Die gelieferten Daten lassen sich nicht in den Datentyp dieses Felds umwandeln. Beispiel:
"abc" kann nicht in eine Zahl umgewandelt werden.
• Die Daten besitzen einen zulässigen Typ, erfüllen jedoch nicht die Überprüfungskriterien des
Felds.
• Das Feld ist schreibgeschützt.
Hinweis: Der eigentliche Text der Meldung(en) variiert je nach Datentyp, Formatierer und Encoder,
die im Schema des Felds festgelegt sind.
Beschreibung
Methode; legt einen neuen Wert für das Feld fest und verarbeitet es dabei gemäß den
Informationen im Schema des Felds.
Datenbindungsklassen (nur Flash Professional)
165
Bei dieser Methode wird zuerst DataType.setTypedValue() aufgerufen, um den Wert
festzulegen. Wenn dies fehlschlägt, prüft die Methode, ob das Zielobjekt String-Daten, Boolesche
Daten oder Zahlendaten annimmt. Ist dies der Fall, wird versucht, die entsprechenden
ActionScript-Umwandlungsfunktionen zu verwenden.
Beispiel
In diesem Beispiel wird ein neues TypedValue-Objekt (ein Boolesches Objekt) erstellt und dieser
Wert anschließend dem DataType-Objekt field zugewiesen. Alle auftretenden Fehler werden
dem Array errors zugewiesen.
import mx.data.binding.*;
var t:TypedValue = new TypedValue (true, "Boolean");
var errors: Array = field.setAnyTypedValue (t);
Siehe auch
DataType.setTypedValue()
DataType.setAsBoolean()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.setAsBoolean(newBooleanValue)
Parameter
newBooleanValue
Ein Boolescher Wert.
Rückgaben
Keine.
Beschreibung
Methode; legt für das Feld den neuen Wert fest, der als Boolescher Wert angegeben ist. Der Wert
wird in den für dieses Feld richtigen Datentyp umgewandelt und als solcher gespeichert.
Beispiel
var bool: Boolean = true;
field.setAsBoolean (bool);
166
Kapitel 4: Komponenten-Referenz
DataType.setAsNumber()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.setAsNumber(newNumberValue)
Parameter
newNumberValue
Eine Zahl.
Rückgaben
Keine.
Beschreibung
Methode; legt für das Feld den neuen Wert fest, der als Zahl angegeben ist. Der Wert wird in den
für dieses Feld richtigen Datentyp umgewandelt und als solcher gespeichert.
Beispiel
var num: Number = 32;
field.setAsNumber (num);
DataType.setAsString()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.setAsString(newStringValue)
Parameter
newStringValue
Ein String.
Rückgaben
Keine.
Beschreibung
Methode; legt für das Feld den neuen Wert fest, der als String angegeben ist. Der Wert wird in
den für dieses Feld richtigen Datentyp umgewandelt und als solcher gespeichert.
Beispiel
var stringVal: String = "Der neue Wert";
field.setAsString (stringVal);
Datenbindungsklassen (nur Flash Professional)
167
DataType.setTypedValue()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataTypeObject.setTypedValue(newTypedValue)
Parameter
newValue
Ein TypedValue-Objektwert, der in diesem Feld festgelegt werden soll.
Weitere Informationen zu TypedValue-Objekten finden Sie unter „TypedValue-Klasse (nur Flash
Professional)“ auf Seite 169.
Rückgaben
Ein Array von Strings, die alle beim Versuch der Festlegung des neuen Werts aufgetretenen Fehler
beschreiben. Fehler können unter folgenden Bedingungen auftreten:
• Der Typ der gelieferten Daten ist nicht zulässig.
• Die gelieferten Daten lassen sich nicht in den Datentyp dieses Felds umwandeln. Beispiel:
"abc" kann nicht in eine Zahl umgewandelt werden.
• Die Daten besitzen einen zulässigen Typ, erfüllen jedoch nicht die Überprüfungskriterien des
•
Felds.
Das Feld ist schreibgeschützt.
Hinweis: Der eigentliche Text der Meldung(en) variiert je nach Datentyp, Formatierer und Encoder,
die im Schema des Felds festgelegt sind.
Beschreibung
Methode; legt einen neuen Wert für das Feld fest und verarbeitet es dabei gemäß den
Informationen im Schema des Felds. Diese Methode verhält sich ähnlich wie
DataType.setAnyTypedValue(), versucht jedoch weniger stark, die Daten in einen zulässigen
Typ umzuwandeln. Weitere Informationen finden Sie unter DataType.setAnyTypedValue().
Beispiel
In diesem Beispiel wird ein neues TypedValue-Objekt (ein Boolesches Objekt) erstellt und dieser
Wert anschließend dem DataType-Objekt field zugewiesen. Alle auftretenden Fehler werden
dem Array errors zugewiesen.
import mx.data.binding.*;
var bool:TypedValue = new TypedValue (true, "Boolean");
var errors: Array = field.setTypedValue (bool);
Siehe auch
DataType.setTypedValue()
168
Kapitel 4: Komponenten-Referenz
TypedValue-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.data.binding.TypedValue
Ein TypedValue ist ein Objekt, das einen Datenwert und Informationen zu dessen Datentyp
enthält. TypedValue-Objekte werden als Parameter für verschiedene Methoden der DataTypeKlasse geliefert und von diesen zurückgegeben. Die Datentypinformationen in den TypedValueObjekten helfen DataType-Objekten bei der Entscheidung, wann und wie Typumwandlungen
durchgeführt werden müssen.
Hinweis: Damit diese Klasse zur Laufzeit verfügbar ist, müssen Sie die DataBindingClassesKomponente dem FLA-Dokument hinzufügen. Weitere Informationen dazu finden Sie unter „Mit
Datenbindung und Webdiensten zur Laufzeit arbeiten (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Eine Übersicht der Klassen im mx.data.binding-Paket finden Sie unter „Datenbindungsklassen
(nur Flash Professional)“ auf Seite 136.
Übersicht: Eigenschaften der TypedValue-Klasse
Eigenschaft
Beschreibung
TypedValue.type
Enthält das mit dem Wert des TypedValue-Objekts verknüpfte Schema.
TypedValue.typeName
Enthält den Datentypnamen des TypedValue-Objektwerts.
TypedValue.value
Enthält den Datenwert des TypedValue-Objekts.
Konstruktor für die TypedValue-Klasse
Verfügbarkeit
Flash Player 6 Version 79.
Verwendung
new mx.data.binding.TypedValue(value, typeName, [type])
Parameter
value
Ein Datenwert. Der Typ kann beliebig sein.
typeName
Ein String, der den Datentypnamen des Werts enthält.
(Optional) Ein Schema-Objekt, das das Schema der Daten genauer beschreibt. Dieses
Feld ist nur unter bestimmten Umständen erforderlich, beispielsweise beim Festlegen von Daten
in der dataProvider-Eigenschaft einer DataSet-Komponente.
type
Beschreibung
Konstruktor; erstellt ein neues TypedValue-Objekt.
Datenbindungsklassen (nur Flash Professional)
169
TypedValue.type
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
typedValueObject.type
Beschreibung
Eigenschaft; enthält das mit dem Wert des TypedValue-Objekts verknüpfte Schema. Diese
Eigenschaft wird nur unter bestimmten Umständen verwendet.
Beispiel
In diesem Beispiel wird „null“ im Bedienfeld Ausgabe angezeigt.
var t: TypedValue = new TypedValue (true, "Boolean", null);
trace(t.type);
TypedValue.typeName
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
typedValueObject.typeName
Beschreibung
Eigenschaft; enthält den Datentypnamen des TypedValue-Objektwerts.
Beispiel
In diesem Beispiel wird „Boolean“ im Bedienfeld Ausgabe angezeigt.
var t: TypedValue = new TypedValue (true, "Boolean", null);
trace(t.typeName);
TypedValue.value
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
typedValueObject.value
170
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; enthält den Datenwert des TypedValue-Objekts.
Beispiel
In diesem Beispiel wird „true“ im Bedienfeld Ausgabe angezeigt.
var t: TypedValue = new TypedValue (true, "Boolean", null);
trace(t.value);
DataGrid-Komponente (nur Flash Professional)
Die DataGrid-Komponente lässt sich zur Erstellung von leistungsstarken datenbetriebenen
Darstellungen und Anwendungen einsetzen. Sie können die DataGrid-Komponente verwenden,
um ein (aus einer Datenbankabfrage in ColdFusion, Java oder .Net abgerufenes) Recordset mit
Macromedia Flash Remoting zu instanziieren und in Spalten anzuzeigen. Außerdem lassen sich
Daten aus einem Datensatz oder einem Array zum Füllen einer DataGrid-Komponente
verwenden. Die V2-DataGrid-Komponente wurde verbessert und umfasst nun horizontales
Scrollen, verstärkte Ereignisunterstützung (z. B. für bearbeitbare Zellen), erweiterte
Sortiermöglichkeiten und Leistungsoptimierungen.
Eigenschaften wie Schriftart, Farbe und Ränder von Spalten in einem Raster können angepasst
und in der Größe geändert werden. Ein benutzerdefinierter Movieclip lässt sich als
„CellRenderer“ für alle Spalten eines Rasters verwenden. (Ein CellRenderer zeigt den Inhalt einer
Zelle an.) Sie können mit Hilfe von Bildlaufleisten in den Daten eines Rasters navigieren,
Bildlaufleisten ausschalten und mit den DataGrid-Methoden einen Seitenansichtsstil erstellen.
Wenn Sie einer Anwendung die DataGrid-Komponente hinzufügen, können Sie die
Komponente mit Hilfe des Bedienfelds Eingabehilfen für Bildschirmleseprogramme zugänglich
machen. Dazu brauchen Sie lediglich die folgende Zeile in den Code einzufügen:
mx.accessibility.DataGridAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie in der Hilfe „Flash verwenden“ unter
„Barrierefreie Inhalte erstellen“.
Mit der DataGrid-Komponente interagieren (nur Flash Professional)
Die Interaktion mit einer DataGrid-Komponente kann über die Maus oder die Tastatur erfolgen.
Wenn DataGrid.sortableColumns true und DataGridColumn.sortOnHeaderRelease
ebenfalls true ist, wird durch Klicken in der Spaltenüberschrift das Raster nach den Zellwerten
der Spalte sortiert.
Wenn DataGrid.resizableColumns true ist, können Sie durch Klicken zwischen den Spalten
die Spaltengröße ändern.
Klicken innerhalb einer bearbeitbaren Zelle verschiebt den Fokus auf diese Zelle. Das Klicken auf
eine nicht bearbeitbare Zelle hat keine Auswirkungen. Eine einzelne Zelle ist dann bearbeitbar,
wenn die Eigenschaften DataGrid.editable und DataGridColumn.editable der Zelle true
sind.
DataGrid-Komponente (nur Flash Professional)
171
Besitzt eine DataGrid-Instanz durch Klicken oder durch Drücken der Tabulatortaste den Fokus,
können Sie sie mit folgenden Tasten steuern:
Taste
Beschreibung
Nach-unten-Taste
Wenn eine Zelle bearbeitet wird, verschiebt sich die Einfügemarke an das
Textende der Zelle. Ist die Zelle nicht bearbeitbar, erfolgt die Auswahl mit
der Nach-unten-Taste wie mit der List-Komponente.
Nach-oben-Taste
Wenn eine Zelle bearbeitet wird, verschiebt sich die Einfügemarke an
den Textanfang der Zelle. Ist die Zelle nicht bearbeitbar, erfolgt die
Auswahl mit der Nach-oben-Taste wie mit der List-Komponente.
Nach-rechts-Taste
Wenn eine Zelle bearbeitet wird, verschiebt sich die Einfügemarke ein
Zeichen nach rechts. Ist die Zelle nicht bearbeitbar, hat die Nach-rechtsTaste keine Wirkung.
Nach-links-Taste
Wenn eine Zelle bearbeitet wird, verschiebt sich die Einfügemarke ein
Zeichen nach links. Ist die Zelle nicht bearbeitbar, hat die Nach-linksTaste keine Wirkung.
Eingabetaste/
Umschalt+Eingabetaste
Ist eine Zelle bearbeitbar, wird die Änderung übernommen und die
Einfügemarke an die Zelle in derselben Spalte der nächsten Zeile
verschoben (je nach Verwendung der Umschalttaste nach oben bzw.
unten).
Umschalt+Tab/Tab
Verschiebt den Fokus auf das vorherige Element. Wird die
Tabulatortaste gedrückt, erstreckt sich der Fokus von der letzten Spalte
des Rasters bis zur ersten Spalte in der nächsten Zeile. Werden die
Tasten <Umschalt>+<Tab> gedrückt, wird die Fokusrichtung umgekehrt.
DataGrid-Komponente verwenden (nur Flash Professional)
Die DataGrid-Komponente lässt sich als Grundlage für zahlreiche Typen datenbetriebener
Anwendungen einsetzen. Sie können auf einfache Weise eine formatierte Tabellenansicht einer
Datenbankabfrage (oder anderer Daten) anzeigen oder mit den CellRenderer-Möglichkeiten
komplexere und bearbeitbare Teilbereiche von Benutzeroberflächen erstellen. Die DataGridKomponente kann beispielsweise für folgende Einsatzzwecke verwendet werden:
• Webmail-Client
• Suchergebnisseiten
• Tabellenkalkulationsanwendungen, z. B. Darlehensberechnungen und
Steuerformularanwendungen
Die DataGrid-Komponente besteht aus folgenden beiden APIs: DataGrid-Klasse und
DataGridColumn-Klasse.
172
Kapitel 4: Komponenten-Referenz
Mit der DataGrid-Komponente arbeiten: Datenmodell und Ansicht
Vom Konzept besteht die DataGrid-Komponente aus einem Datenmodell und einer Ansicht, in
der die Daten dargestellt werden. Das Datenmodell setzt sich aus drei Hauptteilen zusammen:
• DataProvider
Hierbei handelt es sich um eine Liste von Elementen, mit denen das Datenraster gefüllt
werden soll. Arrays, die sich im selben Bild wie eine DataGrid-Komponente befinden, erhalten
automatisch Methoden (von der DataProvider-API), mit denen Sie Daten manipulieren und
Änderungen an mehrere Ansichten senden können. Alle Objekte, die die DataProviderSchnittstelle implementieren, können der Eigenschaft DataGrid.dataProvider zugewiesen
werden (einschließlich Recordsets, Datensätze usw.). Der folgende Code erstellt den
Datenprovider meinDP:
meinDP = new Array({name:"Chris", price:"Unbezahlbar"}, {name:"Nigel",
price:"Billig"});
• Item (Element)
Hierbei handelt es sich um ein ActionScript-Objekt, das zum Speichern von Informationen in
den Zellen einer Spalte verwendet wird. Ein Datenraster ist eigentlich eine Liste, die mehrere
Datenspalten anzeigen kann. Eine Liste kann als ein Array aufgefasst werden; jede indizierte
Position der Liste entspricht einem Element. Bei der DataGrid-Komponente besteht jedes
Element aus Feldern. Im folgenden Code ist der Inhalt in geschweiften Klammern ({}) ein
Element:
meinDP = new Array({name:"Chris", price:"Unbezahlbar"}, {name:"Nigel",
price:"Billig"});
• Field (Feld)
Bezeichner, die den Namen der Spalten in den Elementen angeben. Dies entspricht der
Eigenschaft columnNames in der Spaltenliste. In der List-Komponente lauten die Felder
normalerweise label und data, doch in der DataGrid-Komponente können die Felder alle
Bezeichner sein. Im folgenden Code lauten die Felder name und price:
meinDP = new Array({name:"Chris", price:"Unbezahlbar"}, {name:"Nigel",
price:"Billig"});
Die Ansicht besteht aus drei Hauptteilen:
• Row (Zeile)
•
Hierbei handelt es sich um ein Ansichtsobjekt, um die Rasterelemente durch Anordnung von
Zellen darzustellen. Jede Zeile wird horizontal unter der vorherigen angeordnet.
Column (Spalte)
Sie besteht aus Ansichtsobjekten (Instanzen der DataGridColumn-Klasse), die für die Anzeige
der einzelnen Spalten verantworlich sind, z. B. Breite, Farbe, Größe usw.
Spalten können einem Datenraster auf drei Arten hinzugefügt werden: Weisen Sie
DataGrid.dataProvider ein DataProvider-Objekt zu (dadurch wird für jedes Feld im ersten
Element automatisch eine Spalte erzeugt); geben Sie an, dass DataGrid.columnNames festlegt,
welche Felder angezeigt werden; oder erzeugen Sie Spalten mit dem Konstruktor für die
DataGridColumn-Klasse, und rufen Sie DataGrid.addColumn() auf, um sie dem Raster
hinzuzufügen.
Zum Formatieren von Spalten richten Sie Stileigenschaften für das gesamte Datenraster ein
oder definieren DataGridColumn-Objekte, richten deren Stilformate einzeln ein und fügen sie
dem Datenraster hinzu.
DataGrid-Komponente (nur Flash Professional)
173
• Cell (Zelle)
Hierbei handelt es sich um ein Objekt, das für die Darstellung der einzelnen Felder jedes
Elements verantwortlich ist. Um mit dem Datenraster zu kommunizieren, müssen diese
Komponenten die CellRenderer-Schnittstelle implementieren (siehe „CellRenderer-API“
auf Seite 91). Bei einem einfachen Datenraster ist eine Zelle ein integriertes ActionScriptTextField-Objekt.
DataGrid-Parameter
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder KomponentenInspektor für jede DataGrid-Komponenteninstanz festlegen:
multipleSelection
können (true) oder
Ein Boolescher Wert, der angibt, ob mehrere Elemente ausgewählt werden
nicht (false). Der Standardwert lautet false.
Die Höhe jeder Zeile in Pixel. Ein Ändern der Schriftgröße hat keinen Einfluss auf
die Zeilenhöhe. Der Standardwert ist 20.
rowHeight
editable Ein Boolescher Wert, der angibt, ob
nicht (false). Der Standardwert lautet false.
das Raster bearbeitet werden kann (true) oder
Mit Hilfe von ActionScript können Sie diese und weitere Optionen für die DataGridKomponente über die Eigenschaften, Methoden und Ereignisse steuern. Weitere Informationen
finden Sie unter „DataGrid-Klasse (nur Flash Professional)“ auf Seite 176.
Anwendungen mit der DataGrid-Komponente erstellen
Um eine Anwendung mit der DataGrid-Komponenten zu erstellen, müssen Sie zuerst
bestimmen, woher die Daten stammen. Die Daten können aus einem Recordset stammen, der
aus einer Datenbankabfrage in Macromedia ColdFusion, Java oder .Net mit Flash Remoting
geliefert wird. Die Datenquelle kann auch ein Datensatz oder ein Array sein. Um die Daten in ein
Raster zu übertragen, legen Sie für die Eigenschaft DataGrid.dataProvider das Recordset, den
Datensatz oder das Array fest. Sie können die Daten mit Hilfe der Methoden der DataGrid- und
DataGridColumn-Klassen auch lokal erstellen. Alle Array-Objekte im selben Bild wie eine
DataGrid-Komponente kopieren die Methoden, Eigenschaften und Ereignisse der DataProviderKlasse.
So fügen Sie einer Anwendung eine DataGrid-Komponente mit Flash Remoting hinzu:
1 Wählen Sie in Flash Datei > Neu und Flash-Dokument aus.
2 Doppelklicken Sie im Bedienfeld Komponenten auf die DataGrid-Komponente, um sie der
Bühne hinzuzufügen.
3 Geben Sie im Eigenschafteninspektor den Instanznamen meinDataGrid ein.
4 Geben Sie im Bedienfeld Aktionen in Bild 1 den folgenden Code ein:
meinDataGrid.dataProvider = recordSetInstance;
Der Flash Remoting-Recordset recordSetInstance wird der Eigenschaft dataProvider von
meinDataGrid zugewiesen.
5 Wählen Sie Steuerung > Film testen.
174
Kapitel 4: Komponenten-Referenz
So fügen Sie einer Anwendung eine DataGrid-Komponente mit Hilfe eines lokalen
Datenproviders zu:
1 Wählen Sie in Flash Datei > Neu und Flash-Dokument aus.
2 Doppelklicken Sie im Bedienfeld Komponenten auf die DataGrid-Komponente, um sie der
Bühne hinzuzufügen.
3 Geben Sie im Eigenschafteninspektor den Instanznamen meinDataGrid ein.
4 Geben Sie im Bedienfeld Aktionen in Bild 1 den folgenden Code ein:
meinDP = new Array({name:"Chris", price:"Unbezahlbar"}, {name:"Nigel",
price:"Billig"});
meinDataGrid.dataProvider = meinDP;
Die Felder name und price werden als Spaltenüberschrift verwendet. Mit ihren Werten
werden die Zellen in allen Zeilen gefüllt.
5 Wählen Sie Steuerung > Film testen.
Die DataGrid-Komponente anpassen (nur Flash Professional)
Sie können eine DataGrid-Komponente beim Authoring oder zur Laufzeit horizontal und
vertikal transformieren. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne aus
und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode setSize() (siehe
UIObject.setSize()). Ist keine horizontale Bildlaufleiste vorhanden, werden die Spaltenbreiten
proportional angepasst. Falls eine Größenanpassung der Spalte (und damit der Zellen) eintritt,
wird der Text in den Zellen möglicherweise abgeschnitten.
Stile mit der DataGrid-Komponente verwenden
Sie können Stileigenschaften festlegen, um die Darstellung der DataGrid-Komponente zu
ändern. Die DataGrid-Komponente erbt die Kranz-Stile von der List-Komponente. (Weitere
Informationen hierzu finden Sie unter „Stile mit der List-Komponente verwenden“
auf Seite 322.) Außerdem unterstützt die DataGrid-Komponente die folgenden Kranz-Stile:
Stil
Beschreibung
backgroundColor
Die Hintergrundfarbe lässt sich für das gesamte Raster oder für
einzelne Spalten festlegen.
labelStyle
Der Schriftstil lässt sich für das gesamte Raster oder für einzelne
Spalten festlegen.
headerStyle
Eine CSS-Stil-Deklaration für die Spaltenüberschrift, die auf ein
Raster oder eine Spalte angewendet werden kann.
vGridLines
Ein Boolescher Wert, der angibt, ob vertikale Rasterlinien
angezeigt werden (true) oder nicht (false).
hGridLines
Ein Boolescher Wert, der angibt, ob horizontale Rasterlinien
angezeigt werden sollen (true) oder nicht (false).
vGridLineColor
Die Farbe der vertikalen Rasterlinien.
hGridLineColor
Die Farbe der horizontalen Rasterlinien.
headerColor
Die Farbe der Spaltenüberschriften.
DataGrid-Komponente (nur Flash Professional)
175
Verwenden Sie folgende Syntax, um einen der in der obigen Tabelle genannten Stile für eine
Spalte festzulegen:
grid.getColumnAt(3).setStyle("backgroundColor", 0xff00aa)
Skins mit der DataGrid-Komponente verwenden
Die Skins zur Darstellung der visuellen Zustände der DataGrid-Komponente gehören zu den
Unterkomponenten, aus denen das Datenraster gebildet wird (ScrollPane und RectBorder).
Weitere Informationen finden Sie unter „Skins mit der ScrollPane-Komponente verwenden“
auf Seite 516 und „Skins mit der List-Komponente verwenden“ auf Seite 323.
Für Rollover- und Auswahl-Elemente wird jedoch die ActionScript-API zum Zeichnen
verwendet. Um beim Authoring für diese Teile des Datenrasters Skins zu verwenden, muss der
ActionScript-Code für die Skinsymbole im Ordner Flash UI Components 2/Themes/
MMDefault/datagrid/skins states in der Bibliothek einer der als Themen bezeichneten FLADateien geändert werden. Weitere Informationen finden Sie unter „Skinning-Komponenten“
auf Seite 42.
DataGrid-Klasse (nur Flash Professional)
Vererbung mx.core.UIObject > mx.core.UIComponent > mx.core.View >
mx.core.ScrollView > mx.controls.listclasses.ScrollSelectList > mx.controls.List
ActionScript-Klassenname
mx.controls.DataGrid
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.DataGrid.version);
Hinweis: Der folgende Code gibt undefined zurück: trace(meineDataGridInstance.version);.
Übersicht: Methoden der DataGrid-Klasse
176
Methode
Beschreibung
DataGrid.addColumn()
Fügt dem Datenraster eine Spalte hinzu.
DataGrid.addColumnAt()
Fügt dem Datenraster an einer bestimmten Position eine Spalte
hinzu.
DataGrid.addItem()
Fügt dem Datenraster ein Element hinzu.
DataGrid.addItemAt()
Fügt dem Datenraster an einer bestimmten Position ein Element
hinzu.
DataGrid.editField()
Ersetzt die Zellendaten an einer bestimmten Position.
DataGrid.getColumnAt()
Ruft einen Verweis auf eine Spalte an einer bestimmten Position
ab.
DataGrid.getColumnIndex()
Ruft den Index der Spalte ab.
DataGrid.removeAllColumns()
Entfernt alle Spalten aus einem Datenraster.
Kapitel 4: Komponenten-Referenz
Methode
Beschreibung
DataGrid.removeColumnAt()
Entfernt eine Spalte an einer bestimmten Position aus dem
Datenraster.
DataGrid.replaceItemAt()
Ersetzt ein Element an einer bestimmten Position durch ein
anderes Element.
DataGrid.spaceColumnsEqually() Legt für alle Spalten dieselbe Breite fest.
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Eigenschaften der DataGrid-Klasse
Eigenschaft
Beschreibung
DataGrid.columnCount
Schreibgeschützte Eigenschaft. Die Anzahl der angezeigten
Spalten.
DataGrid.columnNames
Ein Array mit den Feldnamen innerhalb jedes Elements, die als
Spalten angezeigt werden.
DataGrid.dataProvider
Das Datenmodell für das Datenraster.
DataGrid.editable
Ein Boolescher Wert, der angibt, ob das Datenraster bearbeitet
werden kann (true) oder nicht (false).
DataGrid.focusedCell
Definiert die Zelle mit dem Fokus.
DataGrid.headerHeight
Die Höhe der Spaltenüberschriften in Pixel.
DataGrid.hScrollPolicy
Gibt an, ob eine horizontale Bildlaufleiste angezeigt wird ("on"),
nicht angezeigt wird ("off") oder nur bei Bedarf angezeigt wird
("auto").
DataGrid.resizableColumns
Ein Boolescher Wert, der angibt, ob die Breite der Spalten
geändert werden kann (true) oder nicht (false).
DataGrid.selectable
Ein Boolescher Wert, der angibt, ob das Datenraster ausgewählt
werden kann (true) oder nicht (false).
DataGrid.showHeaders
Ein Boolescher Wert, der angibt, ob die Spaltenüberschriften
angezeigt werden (true) oder nicht (false).
DataGrid.sortableColumns
Ein Boolescher Wert, der angibt, ob die Spalten sortiert werden
können (true) oder nicht (false).
DataGrid-Komponente (nur Flash Professional)
177
Übersicht: Ereignisse der DataGrid-Klasse
Ereignis
Beschreibung
DataGrid.cellEdit
Broadcastübertragung, wenn der Zellenwert sich geändert hat.
DataGrid.cellFocusIn
Broadcastübertragung, wenn eine Zelle den Fokus erhält.
DataGrid.cellFocusOut
Broadcastübertragung, wenn eine Zelle den Fokus verliert.
DataGrid.cellPress
Broadcastübertragung, wenn in eine Zelle geklickt wird.
DataGrid.change
Broadcastübertragung, wenn ein Element ausgewählt wurde.
DataGrid.columnStretch
Broadcastübertragung, wenn ein Benutzer die Größe einer
Spalte geändert hat.
DataGrid.headerRelease
Broadcastübertragung, wenn ein Benutzer auf eine Überschrift
klickt und die Maustaste wieder loslässt.
DataGrid.addColumn()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.addColumn(dataGridColumn)
meinDataGrid.addColumn(name)
Parameter
dataGridColumn
name
Eine Instanz der DataGridColumn-Klasse.
Ein String, der den Namen eines neu einzufügenden DataGridColumn-Objekts angibt.
Rückgaben
Ein Verweis auf das DataGridColumn-Objekt, das hinzugefügt wurde.
Beschreibung
Methode; fügt eine neue Spalte am Ende des Datenrasters hinzu. Weitere Informationen finden
Sie unter „DataGridColumn-Klasse (nur Flash Professional)“ auf Seite 197.
Beispiel
Mit dem folgendem Code wird ein neues DataGridColumn-Objekt mit dem Namen Violett
hinzugefügt:
import mx.controls.gridclasses.DataGridColumn;
meinGrid.addColumn(new DataGridColumn("Violett"));
178
Kapitel 4: Komponenten-Referenz
DataGrid.addColumnAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
meinDataGrid.addColumnAt(index, name)
Verwendung 2:
meinDataGrid.addColumnAt(index, dataGridColumn)
Parameter
index Die Indexposition, an der das DataGridColumn-Objekt hinzugefügt wird. Die erste
Position ist 0.
Ein String, der den Namen des DataGridColumn-Objekts angibt. Es muss entweder der
Parameter index oder der Parameter dataGridColumn angegeben werden.
name
dataGridColumn
Eine Instanz der DataGridColumn-Klasse.
Rückgaben
Ein Verweis auf das DataGridColumn-Objekt, das hinzugefügt wurde.
Beschreibung
Methode; fügt eine neue Spalte an der angegebenen Position hinzu. Die Spalten werden nach
rechts verschoben und deren Indizes entsprechend erhöht. Weitere Informationen finden Sie
unter „DataGridColumn-Klasse (nur Flash Professional)“ auf Seite 197.
Beispiel
Im folgenden Beispiel wird ein neues DataGridColumn-Objekt mit dem Namen "Gruen" in der
zweiten und vierten Spalte hinzugefügt:
import mx.controls.gridclasses.DataGridColumn;
meinGrid.addColumnAt(1, "Gruen");
meinGrid.addColumnAt(3, new DataGridColumn("Violett"));
DataGrid.addItem()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.addItem(item)
DataGrid-Komponente (nur Flash Professional)
179
Parameter
item
Eine Instanz des Objekts, das dem Raster hinzugefügt wird.
Rückgaben
Ein Verweis auf die Instanz, die hinzugefügt wurde.
Beschreibung
Methode; fügt ein Element am Ende des Rasters (nach dem letzten Element) hinzu.
Hinweis: Der Unterschied zur Methode List.addItem() besteht darin, dass ein Objekt und kein
String übergeben wird.
Beispiel
Im folgenden Beispiel wird dem Raster meinGrid ein neues Objekt hinzugefügt:
var anObject= {name:"Jim!!", age:30};
var addedObject = meinGrid.addItem(anObject);
DataGrid.addItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.addItemAt(index, item)
Parameter
index Die Reihenfolge (unter den Child-Knoten), in der der Knoten hinzugefügt werden soll.
Die erste Position ist 0.
item
Ein String, der den Knoten angibt.
Rückgaben
Ein Verweis auf die Objektinstanz, die hinzugefügt wurde.
Beschreibung
Methode; fügt dem Raster ein Element an der angegebenen Position hinzu.
Beispiel
Im folgenden Beispiel wird dem Raster eine Objektinstanz an der Indexposition 4 hinzugefügt:
var anObject= {name:"Jim!!", age:30};
var addedObject = meinGrid.addItemAt(4, anObject);
180
Kapitel 4: Komponenten-Referenz
DataGrid.cellEdit
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.cellEdit = function(eventObject){
// Hier Code eingeben
}
meineDataGridInstance.addEventListener("cellEdit", listenerObject)
Beschreibung
Ereignis; sendet Broadcastübertragung an alle registrierten Listener, wenn der Zellenwert geändert
wurde.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Die DataGridKomponente setzt ein cellEdit-Ereignis ab, wenn der Wert einer Zelle geändert wurde, und
dieses Ereignis wird durch eine Funktion (auch als Prozedur bezeichnet) des von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Rufen Sie die Methode addEventListener()
auf, und übergeben Sie ihr den Namen der Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Ereignisses DataGrid.cellEdit hat vier weitere
Eigenschaften:
columnIndex
itemIndex
oldValue
type
Eine Zahl, die den Index der Zielspalte angibt.
Eine Zahl, die den Index der Zielzeile angibt.
Der vorherige Wert der Zelle.
Der String "cellEdit".
Weitere Informationen finden Sie unter „Ereignisobjekte“ auf Seite 619.
Beispiel
Im folgenden Beispiel wird die Prozedur meinDataGridListener definiert und als zweiter
Parameter an die Methode meinDataGrid.addEventListener() übergeben. Das Ereignisobjekt
wird von der Prozedur cellEdit im Parameter eventObject wiedergegeben. Bei der
Broadcastübertragung des Ereignisses cellEdit wird folgende trace-Anweisung an das
Bedienfeld Ausgabe gesendet:
meinDataGridListener = new Object();
meinDataGridListener.cellEdit = function(event){
var cell = "(" + event.columnIndex + ", " + event.itemIndex + ")";
trace("Der Wert der Zelle " + cell + " wurde geändert");
}
meinDataGrid.addEventListener("cellEdit", meinDataGridListener);
Hinweis: Das Raster muss bearbeitet werden können, damit dieser Code funktioniert.
DataGrid-Komponente (nur Flash Professional)
181
DataGrid.cellFocusIn
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.cellFocusIn = function(eventObject){
// Hier Code eingeben
}
meineDataGridInstance.addEventListener("cellFocusIn", listenerObject)
Beschreibung
Ereignis; sendet Broadcastübertragung an alle registrierten Listener, wenn eine bestimmte Zelle
den Fokus erhält. Dieses Ereignis wird erst dann in einer Broadcastübertragung gesendet,
nachdem das editCell- und cellFocusOut-Ereignis einer zuvor geänderten Zelle in einer
Broadcastübertragung gesendet wurden.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Wenn eine DataGridKomponente ein cellFocusIn-Ereignis absetzt, wird das Ereignis durch eine Funktion (auch als
Prozedur bezeichnet) des von Ihnen erstellten Listener-Objekts (listenerObject) verarbeitet.
Rufen Sie die Methode addEventListener() auf, und übergeben Sie ihr den Namen der
Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Ereignisses DataGrid.cellFocusIn hat drei weitere
Eigenschaften:
columnIndex
itemIndex
type
Eine Zahl, die den Index der Zielspalte angibt.
Eine Zahl, die den Index der Zielzeile angibt.
Der String "cellFocusIn".
Weitere Informationen finden Sie unter „Ereignisobjekte“ auf Seite 619.
Beispiel
Im folgenden Beispiel wird die Prozedur meinListener definiert und als zweiter Parameter an die
Methode grid.addEventListener() übergeben. Das Ereignisobjekt wird von der Prozedur
cellFocusIn im Parameter eventObject wiedergegeben. Bei der Broadcastübertragung des
Ereignisses cellFocusIn wird folgende trace-Anweisung an das Bedienfeld Ausgabe gesendet:
var meinListener = new Object();
meinListener.cellFocusIn = function(event) {
var cell = "(" + event.columnIndex + ", " + event.itemIndex + ")";
trace("Die Zelle " + cell + " hat den Fokus erhalten");
};
grid.addEventListener("cellFocusIn", meinListener);
Hinweis: Das Raster muss bearbeitet werden können, damit dieser Code funktioniert.
182
Kapitel 4: Komponenten-Referenz
DataGrid.cellFocusOut
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.cellFocusOut = function(eventObject){
// Hier Code eingeben
}
meineDataGridInstance.addEventListener("cellFocusOut", listenerObject)
Beschreibung
Ereignis; sendet Broadcastübertragung an alle registrierten Listener, wenn der Benutzer eine Zelle
mit Fokus verlässt. Mit Hilfe der Eigenschaften des Ereignisobjekts können Sie feststellen, welche
Zelle verlassen wurde. Dieses Ereignis wird in einer Broadcastübertragung gesendet, nachdem das
cellEdit-Ereignis und bevor ein eventuell nachfolgendes cellFocusIn-Ereignis von der
nächsten Zelle in einer Broadcastübertragung gesendet wird.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Wenn eine DataGridKomponente ein cellFocusOut-Ereignis absetzt, wird das Ereignis durch eine Funktion (auch als
Prozedur bezeichnet) des von Ihnen erstellten Listener-Objekts verarbeitet. Rufen Sie die
Methode addEventListener() auf, und übergeben Sie ihr den Namen der Prozedur als
Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Ereignisses DataGrid.cellFocusOut hat drei
weitere Eigenschaften:
columnIndex
itemIndex
type
Eine Zahl, die den Index der Zielspalte angibt. Die erste Position ist 0.
Eine Zahl, die den Index der Zielzeile angibt. Die erste Position ist 0.
Der String "cellFocusOut".
Weitere Informationen finden Sie unter „Ereignisobjekte“ auf Seite 619.
Beispiel
Im folgenden Beispiel wird die Prozedur meinListener definiert und als zweiter Parameter an die
Methode grid.addEventListener() übergeben. Das Ereignisobjekt wird von der Prozedur
cellFocusOut im Parameter eventObject wiedergegeben. Bei der Broadcastübertragung des
Ereignisses cellFocusOut wird folgende trace-Anweisung an das Bedienfeld Ausgabe gesendet:
var meinListener = new Object();
meinListener.cellFocusOut = function(event) {
var cell = "(" + event.columnIndex + ", " + event.itemIndex + ")";
trace("Die Zelle " + cell + " hat den Fokus verloren");
};
grid.addEventListener("cellFocusOut", meinListener);
Hinweis: Das Raster muss bearbeitet werden können, damit dieser Code funktioniert.
DataGrid-Komponente (nur Flash Professional)
183
DataGrid.cellPress
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.cellPress = function(eventObject){
// Hier Code eingeben
}
meineDataGridInstance.addEventListener("cellPress", listenerObject)
Beschreibung
Ereignis; sendet Broadcastübertragung an alle registrierten Listener, wenn ein Benutzer die
Maustaste über einer Zelle drückt.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Wenn eine DataGridKomponente ein cellPress-Ereignis in einer Broadcastübertragung sendet, wird das Ereignis
durch eine Funktion (auch als Prozedur bezeichnet) des von Ihnen erstellten Listener-Objekts
(listenerObject) verarbeitet. Rufen Sie die Methode addEventListener() auf, und
übergeben Sie ihr den Namen der Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Ereignisses DataGrid.cellPress hat drei weitere
Eigenschaften:
columnIndex
itemIndex
type
Eine Zahl, die den Index der Zielspalte angibt. Die erste Position ist 0.
Eine Zahl, die den Index der Zielzeile angibt. Die erste Position ist 0.
Der String "cellPress".
Weitere Informationen finden Sie unter „Ereignisobjekte“ auf Seite 619.
Beispiel
Im folgenden Beispiel wird die Prozedur meinListener definiert und als zweiter Parameter an die
Methode grid.addEventListener() übergeben. Das Ereignisobjekt wird von der Prozedur
cellPress im Parameter eventObject wiedergegeben. Bei der Broadcastübertragung des
Ereignisses cellPress wird folgende trace-Anweisung an das Bedienfeld Ausgabe gesendet:
var meinListener = new Object();
meinListener.cellPress = function(event) {
var cell = "(" + event.columnIndex + ", " + event.itemIndex + ")";
trace("Es wurde in die Zelle " + cell + " geklickt");
};
grid.addEventListener("cellPress", meinListener);
184
Kapitel 4: Komponenten-Referenz
DataGrid.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.change = function(eventObject){
// Hier Code eingeben
}
meineDataGridInstance.addEventListener("change", listenerObject)
Beschreibung
Ereignis; sendet Broadcastübertragung an alle registrierten Listener, wenn ein Element ausgewählt
wurde.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Wenn eine DataGridKomponente ein change-Ereignis absetzt, wird das Ereignis durch eine Funktion (auch als
Prozedur bezeichnet) des von Ihnen erstellten Listener-Objekts (listenerObject) verarbeitet.
Rufen Sie die Methode addEventListener() auf, und übergeben Sie ihr den Namen der
Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Ereignisses DataGrid.change hat eine weitere
Eigenschaft, type, mit dem Wert "change". Weitere Informationen finden Sie unter
„Ereignisobjekte“ auf Seite 619.
Beispiel
Im folgenden Beispiel wird die Prozedur meinListener definiert und als zweiter Parameter an die
Methode grid.addEventListener() übergeben. Das Ereignisobjekt wird von der Prozedur
change im Parameter eventObject wiedergegeben. Wenn das change-Ereignis als
Broadcastübertragung verteilt wird, wird eine trace-Anweisung an das Bedienfeld Ausgabe
gesendet.
var meinListener = new Object();
meinListener.change = function(event) {
trace("Die Auswahl wurde geändert auf " + event.target.selectedIndex);
};
grid.addEventListener("change", meinListener);
DataGrid-Komponente (nur Flash Professional)
185
DataGrid.columnCount
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.columnCount
Beschreibung
Eigenschaft (schreibgeschützt); die Anzahl der angezeigten Spalten.
Beispiel
Im folgenden Beispiel wird die Anzahl der angezeigten Spalten in der DataGrid-Instanz grid
abgerufen:
var c = grid.columnCount;
DataGrid.columnNames
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.columnNames
Beschreibung
Eigenschaft; ein Array mit Feldnamen von jedem Element, die als Spalten angezeigt werden.
Beispiel
In folgendem Beispiel wird festgelegt, dass in der Instanz grid nur die angegebenen drei Felder als
Spalten angezeigt werden sollen:
grid.columnNames = ["Name", "Beschreibung", "Preis"];
DataGrid.columnStretch
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
186
Kapitel 4: Komponenten-Referenz
Verwendung
listenerObject = new Object();
listenerObject.columnStretch = function(eventObject){
// Hier Code eingeben
}
meineDataGridInstance.addEventListener("columnStretch", listenerObject)
Beschreibung
Ereignis; sendet Broadcastübertragung an alle registrierten Listener, wenn ein Benutzer die Breite
einer Spalte ändert.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Wenn eine DataGridKomponente ein columnStretch-Ereignis absetzt, wird das Ereignis durch eine Funktion (auch
als Prozedur bezeichnet) des von Ihnen erstellten Listener-Objekts (listenerObject) verarbeitet.
Rufen Sie die Methode addEventListener() auf, und übergeben Sie ihr den Namen der
Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Ereignisses DataGrid.columnStretch hat zwei
weitere Eigenschaften:
columnIndex
type
Eine Zahl, die den Index der Zielspalte angibt. Die erste Position ist 0.
Der String "columnStretch".
Weitere Informationen finden Sie unter „Ereignisobjekte“ auf Seite 619.
Beispiel
Im folgenden Beispiel wird die Prozedur meinListener definiert und als zweiter Parameter an die
Methode grid.addEventListener() übergeben. Das Ereignisobjekt wird von der Prozedur
columnStretch im Parameter eventObject wiedergegeben. Bei der Broadcastübertragung des
Ereignisses columnStretch wird folgende trace-Anweisung an das Bedienfeld Ausgabe
gesendet:
var meinListener = new Object();
meinListener.columnStretch = function(event) {
trace("Die Größe der Spalte " + event.columnIndex + " wurde geändert");
};
grid.addEventListener("columnStretch", meinListener);
DataGrid-Komponente (nur Flash Professional)
187
DataGrid.dataProvider
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.dataProvider
Beschreibung
Eigenschaft; das Datenmodell der in der DataGrid-Komponente angezeigten Elemente.
Das Datenraster fügt dem Prototypen der Array-Klasse Methoden hinzu, damit jedes ArrayObjekt der DataProvider-Schnittstelle entspricht (siehe Datei DataProvider.as im Ordner
Classes/mx/controls/listclasses). Ein Array, das sich in demselben Bild oder Bildschirm wie ein
Datenraster befindet, verfügt automatisch über alle erforderlichen Methoden (addItem(),
getItemAt() usw.), um als Datenmodell des Datenrasters zu funktionieren und Änderungen des
Datenmodells in einer Broadcastübertragung an mehrere Komponenten zu senden.
In einer DataGrid-Komponente können Sie die Felder angeben, die in der Eigenschaft
angezeigt werden soll.
DataGrid.columnNames
Wenn Sie die Spaltengruppe für das Datenraster nicht definieren (indem Sie die Eigenschaft
DataGrid.columnNames festlegen oder die Methode DataGrid.addColumn() aufrufen), bevor
die Eigenschaft DataGrid.dataProvider festgelegt wird, generiert das Datenraster Spalten für
jedes Feld im ersten Element des Datenproviders, sobald das Element empfangen wird.
Jedes Objekt, das die DataProvider-Schnittstelle implementiert, kann als Datenprovider für ein
Datenraster verwendet werden (einschließlich Flash Remoting RecordSets, Datensätze und
Arrays).
Beispiel
Im folgenden Beispiel wird ein Array zur Verwendung als Datenprovider erstellt und direkt der
Eigenschaft dataProvider zugeordnet:
grid.dataProvider = [{name:"Chris", price:"OhnePreis"}, {name:"Nigel",
Price:"Billig"}];
Im folgenden Beispiel wird ein neues Array-Objekt mit einer Zuordnung zur DataProvider-Klasse
erstellt. Mit Hilfe einer for-Schleife werden dem Raster 20 Elemente hinzugefügt:
meinDP = new Array();
for (var i=0; i<20; i++)
meinDP.addItem({name:"Nivesh", price:"OhnePreis"});
list.dataProvider = meinDP
188
Kapitel 4: Komponenten-Referenz
DataGrid.editable
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.editable
Beschreibung
Eigenschaft; gibt an, ob das Datenraster von einem Benutzer geändert werden kann (true) oder
nicht (false). Für diese Eigenschaft muss der Wert true festgelegt werden, damit einzelne
Spalten geändert werden können und eine Zelle den Fokus erhalten kann. Der Standardwert
lautet false.
Beispiel
Im folgenden Beispiel wird als Bildlaufposition der obere Rand der Anzeige festgelegt:
meinDataGrid.editable = true;
DataGrid.editField()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.editField(index, colName, data)
Parameter
index
Der Index der Zielzelle. Die Bezugsbasis für diese Zahl ist 0.
colName
Ein String, der den Namen der Spalte (bzw. des Feldes) angibt, in der sich die Zielzelle
befindet.
Der Wert, der in der Zielzelle gespeichert werden soll. Dieser Parameter kann einen
beliebigen Datentyp haben.
data
Rückgaben
Die Daten der Zelle.
Beschreibung
Methode; ersetzt die Zellendaten an der angegebenen Position.
Beispiel
In folgendem Beispiel wird ein Wert im Raster platziert:
var prevValue = meinGrid.editField(5, "Name", "Neo");
DataGrid-Komponente (nur Flash Professional)
189
DataGrid.focusedCell
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.focusedCell
Beschreibung
Eigenschaft; eine Objektinstanz, mit der die Zelle, die den Fokus hat, definiert wird (nur im
Bearbeitungsmodus). Das Objekt muss die Felder columnIndex und itemIndex haben, in denen
jeweils mit Ganzzahlen der Index der Spalte und des Elements der Zelle angegeben wird. Der
Ursprungswert ist (0,0). Der Standardwert ist undefined.
Beispiel
In folgendem Beispiel wird als Zelle mit dem Fokus die Zelle in Spalte 3 und Reihe 4 festgelegt:
grid.focusedCell = {columnIndex:2, itemIndex:3};
DataGrid.getColumnAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index)
Parameter
index Der Index des DataGridColumn-Objekts, das zurückgegeben werden soll. Die
Bezugsbasis für diese Zahl ist 0.
Rückgaben
Ein DataGridColumn-Objekt.
Beschreibung
Methode; ruft einen Verweis auf das DataGridColumn-Objekt am angegebenen Index ab.
Beispiel
Im folgenden Beispiel wird das DataGridColumn-Objekt am Index 4 abgerufen:
var aColumn = meinGrid.getColumnAt(4);
190
Kapitel 4: Komponenten-Referenz
DataGrid.getColumnIndex()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnIndex(index)
Parameter
index
Der Index des DataGridColumn-Objekts, das zurückgegeben werden soll.
Rückgaben
Ein DataGridColumn-Objekt.
Beschreibung
Methode; ruft einen Verweis auf das DataGridColumn-Objekt am angegebenen Index ab.
DataGrid.headerHeight
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.headerHeight
Beschreibung
Eigenschaft; die Höhe der Titelleiste des Datenrasters. Der Standardwert ist 20.
Beispiel
Im folgenden Beispiel wird als Bildlaufposition der obere Rand der Anzeige festgelegt:
meinDataGrid.headerHeight = 30;
DataGrid-Komponente (nur Flash Professional)
191
DataGrid.headerRelease
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.headerRelease = function(eventObject){
// Hier Code eingeben
}
meineDataGridInstance.addEventListener("headerRelease", listenerObject)
Beschreibung
Ereignis; sendet Broadcastübertragung an alle registrierten Listener, wenn auf eine
Spaltenüberschrift geklickt wurde. Sie können dieses Ereignis zusammen mit der Eigenschaft
DataGridColumn.sortOnHeaderRelease verwenden, um festzulegen, dass keine automatische
Sortierung ausgeführt wird, sondern nur bei Bedarf sortiert wird.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Wenn die DataGridKomponente ein headerRelease-Ereignis absetzt, wird das Ereignis durch eine Funktion (auch
als Prozedur bezeichnet) des von Ihnen erstellten Listener-Objekts (listenerObject) verarbeitet.
Rufen Sie die Methode addEventListener() auf, und übergeben Sie ihr den Namen der
Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Ereignisses DataGrid.headerRelease hat zwei
weitere Eigenschaften:
columnIndex
type
Eine Zahl, die den Index der Zielspalte angibt.
Der String "headerRelease".
Weitere Informationen finden Sie unter „Ereignisobjekte“ auf Seite 619.
Beispiel
Im folgenden Beispiel wird die Prozedur meinListener definiert und als zweiter Parameter an die
Methode grid.addEventListener() übergeben. Das Ereignisobjekt wird von der Prozedur
headerRelease im Parameter eventObject wiedergegeben. Bei der Broadcastübertragung des
Ereignisses headerRelease wird folgende trace-Anweisung an das Bedienfeld Ausgabe
gesendet:
var meinListener = new Object();
meinListener.headerRelease = function(event) {
trace("Es wurde auf die Überschrift der Spalte " + event.columnIndex + "
geklickt");
};
grid.addEventListener("headerRelease", meinListener);
192
Kapitel 4: Komponenten-Referenz
DataGrid.hScrollPolicy
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.hScrollPolicy
Beschreibung
Eigenschaft; gibt an, ob das Datenraster eine horizontale Bildlaufleiste hat. Diese Eigenschaft
kann einen der folgenden drei Werte haben: "on", "off" und "auto". Der Standardwert lautet
off.
Wenn Sie für hScrollPolicy den Wert "off" festlegen, wird die Breite der Spalten
entsprechend der unveränderlichen Gesamtbreite proportional angepasst.
Beispiel
Im folgenden Beispiel wird für die Eigenschaft der horizontalen Bildlaufleiste der Wert für die
automatische Anzeige festgelegt:
meinDataGrid.hScrollPolicy = "auto";
DataGrid.removeAllColumns()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.removeAllColumns()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; entfernt alle DataGridColumn-Objekte aus dem Datenraster. Das Aufrufen dieser
Methode wirkt sich nicht auf den Datenprovider aus.
Beispiel
Im folgenden Beispiel werden alle DataGridColumn-Objekte aus meinDataGrid entfernt:
meinDataGrid.removeAllColumns();
DataGrid-Komponente (nur Flash Professional)
193
DataGrid.removeColumnAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.removeColumnAt(index)
Parameter
Der Index der Spalte, die entfernt werden soll.
index
Rückgaben
Ein Verweis auf das DataGridColumn-Objekt, das entfernt wurde.
Beschreibung
Methode; entfernt das DataGridColumn-Objekt an der angegebenen Indexposition.
Beispiel
Im folgenden Beispiel wird das DataGridColumn-Objekt an der Indexposition 2 aus
meinDataGrid entfernt:
meinDataGrid.removeColumnAt(2);
DataGrid.replaceItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.replaceItemAt(index, item)
Parameter
index
item
Der Index des Elements, das ersetzt werden soll.
Ein Objekt, durch das der Elementwert ersetzt werden soll.
Rückgaben
Der vorherige Wert.
Beschreibung
Methode; ersetzt das Element an der angegebenen Indexposition.
194
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird das Element an der Indexposition 4 durch das in aNewValue
definierte Element ersetzt:
var aNewValue = {name:"Jim", value:"muede"};
var prevValue = meinGrid.replaceItemAt(4, aNewValue);
DataGrid.resizableColumns
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.resizableColumns
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob die Spalten des Rasters von einem Betrachter
geändert werden können (true) oder nicht (false). Für diese Eigenschaft muss der Wert true
festgelegt werden, damit die Größe einzelner Spalten geändert werden kann. Der Standardwert
lautet true.
Beispiel
Im folgenden Beispiel wird festgelegt, dass Benutzer die Größe von Spalten nicht ändern können:
meinDataGrid.resizableColumns = false;
DataGrid.selectable
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.selectable
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob ein Benutzer das Datenraster auswählen kann
(true) oder nicht (false). Der Standardwert lautet true.
Beispiel
Im folgenden Beispiel wird festgelegt, dass das Raster nicht ausgewählt werden kann:
meinDataGrid.selectable = false;
DataGrid-Komponente (nur Flash Professional)
195
DataGrid.showHeaders
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.showHeaders
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob im Datenraster die Spaltenüberschriften
angezeigt werden (true) oder nicht (false). Spaltenüberschriften sind farblich unterlegt, damit
sie von anderen Zeilen im Raster unterschieden werden können. Benutzer können auf eine
Spaltenüberschrift klicken, um den Inhalt der jeweiligen Spalte zu sortieren, sofern für
DataGrid.sortableColumns der Wert true festgelegt ist. Der Standardwert lautet true.
Beispiel
Im folgenden Beispiel werden die Spaltenüberschriften ausgeblendet:
meinDataGrid.showHeaders = false;
Siehe auch
DataGrid.sortableColumns
DataGrid.sortableColumns
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.sortableColumns
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob der Inhalt der Spalten im Datenraster sortiert
werden kann (true), indem ein Benutzer auf die Spaltenüberschrift klickt, oder nicht (false).
Für diese Eigenschaft muss der Wert true festgelegt werden, damit der Inhalt einzelner Spalten
sortiert werden kann. Für diese Eigenschaft muss der Wert true festgelegt werden, damit das
Ereignis headerRelease in einer Broadcastübertragung gesendet wird. Der Standardwert lautet
true.
196
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird das Sortieren deaktiviert:
meinDataGrid.sortableColumns = false;
Siehe auch
DataGrid.headerRelease
DataGrid.spaceColumnsEqually()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.spaceColumnsEqually()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; weist allen Spalten dieselbe Breite zu.
Beispiel
Im folgenden Beispiel wird den Spalten von meinGrid dieselbe Breite zugewiesen, wenn auf eine
der Spaltenüberschriften geklickt und die Maustaste wieder losgelassen wird:
meinGrid.showHeaders = true
meinGrid.dataProvider = [{guitar:"Flying V", name:"maggot"}, {guitar:"SG",
name:"dreschie"}, {guitar:"jagstang", name:"vitapup"}];
gridLO = new Object();
gridLO.headerRelease = function(){
meinGrid.spaceColumnsEqually();
}
meinGrid.addEventListener("headerRelease", gridLO);
DataGridColumn-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.controls.gridclassesDataGridColumn
Sie können DataGridColumn-Objekte erstellen und als Spalten eines Datenrasters konfigurieren.
Viele Methoden der DataGrid-Klasse dienen zur Verwaltung von DataGridColumn-Objekten.
DataGridColumn-Objekte werden im Datenraster in einem Array mit der Bezugsbasis 0
gespeichert, wobei 0 der Spalte ganz links entspricht. Nachdem Spalten hinzugefügt oder erstellt
wurden, können Sie DataGrid.getColumnAt(index) aufrufen, um darauf zuzugreifen.
DataGrid-Komponente (nur Flash Professional)
197
Es gibt drei verschiedene Möglichkeiten, um in einem Raster Spalten hinzuzufügen oder zu
erstellen. Wenn Sie Ihre Spalten konfigurieren möchten, sollten Sie die zweite oder dritte
Möglichkeit wählen, bevor Sie dem Datenraster Daten hinzufügen, damit Sie keine Spalten
zweimal erstellen müssen.
• Wenn Sie einem Raster ohne konfigurierte DataGridColumn-Objekte ein DataProvider•
•
Objekt oder ein Element mit mehreren Feldern hinzufügen, wird automatisch für jedes Feld
eine Spalte generiert, und zwar in umgekehrter Reihenfolge der for..in-Schleife.
DataGrid.columnNames nimmt die Feldnamen der gewünschten Elementfelder auf und
generiert für jedes der aufgelisteten Felder ein DataGridColumn-Objekt in der entsprechenden
Reihenfolge. Auf diese Weise können Sie Spalten bei minimalem Konfigurationsaufwand
schnell auswählen und sortieren. Dabei werden alle zuvor vorhandenen Spalteninformationen
entfernt.
Die flexibelste Art, Spalten hinzuzufügen, ist es, sie vorab als DataGridColumn-Objekte zu
erstellen und dann mit der Methode DataGrid.addColumn() dem Datenraster hinzuzufügen.
Der Vorteil dieser Vorgehensweise ist, dass Sie die Größe und Formatierung der Spalten
optimal festlegen können, bevor sie dem Datenraster hinzugefügt werden (dadurch wird die
erforderliche Prozessorleistung reduziert). Weitere Informationen finden Sie unter
„Konstruktor für die DataGridColumn-Klasse“ auf Seite 199.
Übersicht: Eigenschaften der DataGridColumn-Klasse
Eigenschaft
Beschreibung
DataGridColumn.cellRenderer
Der Verknüpfungsbezeichner eines Symbols, mit dem die
Zellen in dieser Spalte angezeigt werden.
DataGridColumn.columnName
Schreibgeschützte Eigenschaft. Der Name des Feldes, das
dieser Spalte zugeordnet ist.
DataGridColumn.editable
Ein Boolescher Wert, der angibt, ob die Spalte bearbeitet
werden kann (true) oder nicht (false).
DataGridColumn.headerRenderer
Der Name einer Klasse, mit der die Überschrift der Spalte
angezeigt werden kann.
DataGridColumn.headerText
Der Text der Überschrift für diese Spalte.
DataGridColumn.labelFunction
Eine Funktion, die angibt, welches Feld eines Elements
angezeigt werden soll.
DataGridColumn.resizable
Ein Boolescher Wert, der angibt, ob die Breite der Spalte
geändert werden kann (true) oder nicht (false).
DataGridColumn.sortable
Ein Boolescher Wert, der angibt, ob die Spalte sortiert
werden kann (true) oder nicht (false).
DataGridColumn.sortOnHeaderRelease Ein Boolescher Wert, der angibt, ob eine Spalte sortiert wird
(true), wenn ein Benutzer auf die Spaltenüberschrift klickt,
oder nicht (false).
DataGridColumn.width
198
Kapitel 4: Komponenten-Referenz
Die Breite einer Spalte in Pixel.
Konstruktor für die DataGridColumn-Klasse
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
new DataGridColumn(name)
Parameter
Ein String, der den Namen des DataGridColumn-Objekts angibt. Dieser Parameter gibt
das Feld jedes angezeigten Elements an.
name
Rückgaben
Keine.
Beschreibung
Konstruktor; erstellt ein DataGridColumn-Objekt. Mit diesem Konstruktor können Sie Spalten
erstellen, um sie einer DataGrid-Komponente hinzuzufügen. Nachdem Sie DataGridColumnObjekte erstellt haben, können Sie sie dem Datenraster hinzufügen, indem Sie die Methode
DataGrid.addColumn() aufrufen.
Beispiel
Im folgenden Beispiel wird das DataGridColumn-Objekt Position erstellt:
import mx.controls.gridclasses.DataGridColumn;
var column = new DataGridColumn("Position");
DataGridColumn.cellRenderer
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).cellRenderer
Beschreibung
Eigenschaft; der Verknüpfungsbezeichner für ein Symbol, mit dem Zellen in dieser Spalte
angezeigt werden. Alle Klassen, die für diese Eigenschaft verwendet werden, müssen die
CellRenderer-Schnittstelle implementieren. (Weitere Informationen finden Sie unter
„CellRenderer-API“ auf Seite 91.) Der Standardwert ist undefined.
DataGrid-Komponente (nur Flash Professional)
199
Beispiel
Das folgende Beispiel richtet einen neuen CellRenderer mit Hilfe eines Verknüpfungsbezeichners
ein:
meinGrid.getColumnAt(3).cellRenderer = "MeinCellRenderer";
DataGridColumn.columnName
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).columnName
Beschreibung
Eigenschaft (schreibgeschützt); der Name des Feldes, das dieser Spalte zugeordnet ist. Der
Standardwert ist der Name, der im DataGridColumn-Konstruktor aufgerufen wird.
Beispiel
Im folgenden Beispiel wird der Name der Spalte an der dritten Indexposition der Variablen name
zugeordnet.
var name = meinGrid.getColumnAt(3).columnName;
Siehe auch
Konstruktor für die DataGridColumn-Klasse
DataGridColumn.editable
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).editable
Beschreibung
Eigenschaft; gibt an, ob die Spalte von einem Benutzer geändert werden kann (true) oder nicht
(false). Für die Eigenschaft DataGrid.editable muss der Wert true festgelegt werden, damit
einzelne Spalten geändert werden können, selbst wenn für DataGridColumn.editable der Wert
true festgelegt ist. Der Standardwert lautet true.
200
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird festgelegt, dass die erste Spalte in dem Raster nicht geändert werden
kann:
meinDataGrid.getColumnAt(0).editable = false;
Siehe auch
DataGrid.editable
DataGridColumn.headerRenderer
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).headerRenderer
Beschreibung
Eigenschaft; ein String, der einen Klassennamen angibt, der zum Anzeigen der Überschrift für
diese Spalte verwendet werden soll. Alle Klassen, die für diese Eigenschaft verwendet werden,
müssen die CellRenderer-Schnittstelle implementieren. (Weitere Informationen finden Sie unter
„CellRenderer-API“ auf Seite 91.) Der Standardwert ist undefined.
Beispiel
Im folgenden Beispiel wird ein neuer HeaderRenderer mit Hilfe eines Verknüpfungsbezeichners
eingerichtet:
meinGrid.getColumnAt(3).headerRenderer = "MeinHeaderRenderer";
DataGridColumn.headerText
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).headerText
Beschreibung
Eigenschaft; der Text der Spaltenüberschrift. Der Standardwert ist der Spaltenname.
Beispiel
Im folgenden Beispiel wird als Spaltenüberschrift „Der Preis“ festgelegt:
var meineColumn = new DataGridColumn("Preis");
meineColumn.headerText = "Der Preis";
DataGrid-Komponente (nur Flash Professional)
201
DataGridColumn.labelFunction
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).labelFunction
Beschreibung
Eigenschaft; gibt eine Funktion an, mit der festgelegt wird, welches Feld bzw. welche
Feldkombination für jedes Element angezeigt werden soll. Diese Funktion erhält genau einen
Parameter, nämlich item, bei dem es sich um das gerenderte Element handelt, und muss einen
String zurückgeben, der den anzuzeigenden Text darstellt. Mit dieser Eigenschaft können virtuelle
Spalten erstellt werden, die kein übereinstimmendes Feld in diesem Element haben.
Beispiel
Im folgenden Beispiel wird eine virtuelle Spalte erstellt:
var meineCol = meinGrid.addColumn("Teilsumme");
meineCol.labelFunction = function(item) {
return "$" + (item.price + (item.price * salesTax));
};
DataGridColumn.resizable
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).resizable
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob die Größe einer Spalte von einem Benutzer
geändert werden kann (true) oder nicht (false). Für die Eigenschaft
DataGrid.resizableColumns muss der Wert true festgelegt sein, damit diese Eigenschaft
wirksam wird. Der Standardwert lautet true.
Beispiel
Im folgenden Beispiel wird festgelegt, dass die Größe der Spalte an der Indexposition 1 nicht
geändert werden kann:
meinGrid.getColumnAt(1).resizable = false;
202
Kapitel 4: Komponenten-Referenz
DataGridColumn.sortable
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).sortable
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob der Inhalt einer Spalte von einem Benutzer
sortiert werden kann (true) oder nicht (false). Für die Eigenschaft
DataGrid.sortableColumns muss der Wert true festgelegt sein, damit diese Eigenschaft
wirksam wird. Der Standardwert lautet true.
Beispiel
Im folgenden Beispiel wird festgelegt, dass der Inhalt der Spalte an der Indexposition 1 nicht
sortiert werden kann:
meinGrid.getColumnAt(1).sortable = false;
DataGrid-Komponente (nur Flash Professional)
203
DataGridColumn.sortOnHeaderRelease
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).sortOnHeaderRelease
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob der Inhalt einer Spalte automatisch sortiert wird
(true), wenn ein Benutzer auf die Spaltenüberschrift klickt, oder nicht (false). Für diese
Eigenschaft kann der Wert true nur festgelegt werden, wenn auch für
DataGridColumn.sortable der Wert true festgelegt ist. Wenn für
DataGridColumn.sortOnHeaderRelease der Wert false festgelegt ist, können Sie das Ereignis
headerRelease auslösen, um den Inhalt bei Bedarf zu sortieren.
Der Standardwert lautet true.
Beispiel
Im folgenden Beispiel wird festgelegt, dass Sie das Ereignis headerRelease auslösen können, um
den Inhalt bei Bedarf zu sortieren:
meinGrid.getColumnAt(7).sortOnHeaderRelease = false;
DataGridColumn.width
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDataGrid.getColumnAt(index).width
Beschreibung
Eigenschaft; eine Zahl, mit der die Breite der Spalte in Pixel angegeben wird. Der Standardwert
ist 50.
Beispiel
Im folgenden Beispiel wird die Breite einer Spalte auf die Hälfte des Standardwerts verringert:
meinGrid.getColumnAt(4).width = 25;
204
Kapitel 4: Komponenten-Referenz
DataHolder-Komponente (nur Flash Professional)
Die DataHolder-Komponente ist ein Repository für Daten und dient zum Generieren von
Ereignissen, wenn diese Daten geändert werden. Die Hauptfunktion dieser Komponente ist die
Speicherung von Daten und die Verbindung zwischen anderen Komponenten mit Hilfe von
Datenbindung.
Zunächst besitzt die DataHolder-Komponente nur eine bindbare Eigenschaft mit dem Namen
data. Im Bedienfeld Komponenten-Inspektor (Fenster > Entwicklungs-Bedienfelder >
Komponenten-Inspektor) auf der Registerkarte Schema können Sie weitere Eigenschaften
hinzufügen. Weitere Informationen zur Registerkarte Schema finden Sie in der Hilfe „Flash
verwenden“ unter „Mit Schemata auf der Registerkarte ,Schema‘ arbeiten (nur Flash
Professional)“.
Sie können einer DataHolder-Eigenschaft einen beliebigen Datentyp zuordnen, indem Sie
entweder eine Bindung zwischen den Daten und einer anderen Eigenschaft erstellen, oder indem
Sie Ihren eigenen ActionScript-Code verwenden. Wenn sich der Wert dieser Daten ändert, gibt
die DataHolder-Komponente ein Ereignis aus, dessen Name dem der Eigenschaft entspricht, und
alle Bindungen, die der Eigenschaft zugeordnet sind, werden ausgeführt.
Die DataHolder-Komponente ist nützlich, wenn Sie keine direkte Bindung zwischen
Komponenten erstellen können (z. B. bei Verbindungen, Komponenten der Benutzerschnittstelle
oder DataSet-Komponenten). In den folgenden Abschnitten werden einige Fälle erläutert, in
denen die Verwendung einer DataHolder-Komponente sinnvoll ist:
• Wenn ein Datenwert von ActionScript generiert wird, kann es sinnvoll sein, ihn mit einigen
•
anderen Komponenten zu verbinden. In diesem Fall können Sie eine DataHolderKomponente einrichten, die Eigenschaften mit den gewünschten Bindungen enthält. Wenn
diesen Eigenschaften neue Werte zugeordnet werden (z. B. mit Hilfe von ActionScript),
werden diese Werte an die Datenbindungsobjekte verteilt.
Möglicherweise haben Sie einen Datenwert, der aus einer komplexen indizierten
Datenbindung stammt, wie im folgenden Diagramm gezeigt.
Web Service-Methode
getMovies
Ergebnisse
Ergebnisse[movieList.selectedIndex]
DataModel
meinDataModel
UI ListBox
movieList
data.movieTitle
UI TextField
Titel
data.movieRating
UI TextField
Bewertung
data.movieTimes
UI ListBox
Wiederholungen
In diesem Fall ist es nützlich, den Datenwert an eine DataHolder-Komponente (in der
Abbildung mit DataModel bezeichnet) zu binden und diese dann für Bindungen zur
Benutzerschnittstelle zu verwenden.
DataHolder-Komponente (nur Flash Professional)
205
Anwendungen mit der DataHolder-Komponente erstellen (nur Flash
Professional )
In diesem Beispiel wird dem Schema (Array) einer DataHolder-Komponente eine ArrayEigenschaft hinzugefügt, deren Wert durch den von Ihnen erstellten ActionScript-Code bestimmt
wird. Anschließend wird diese Array-Eigenschaft im Bedienfeld Komponenten-Inspektor auf der
Registerkarte Bindungen an die Eigenschaft dataProvider einer DataGrid-Komponente
gebunden.
So verwenden Sie die DataHolder-Komponente in einer einfachen Anwendung:
1 Erstellen Sie in Flash MX Professional 2004 eine neue Datei.
2 Öffnen Sie das Bedienfeld Komponenten (Fenster > Entwicklungs-Bedienfelder >
Komponenten), ziehen Sie eine DataHolder-Komponente auf die Bühne, und geben Sie ihr
den Namen dataHolder.
3 Ziehen Sie eine DataGrid-Komponente auf die Bühne, und geben Sie ihr den Namen
namesGrid.
4 Wählen Sie die DataHolder-Komponente aus, und öffnen Sie das Bedienfeld KomponentenInspektor (Fenster > Entwicklungs-Bedienfelder > Komponenten-Inspektor).
5 Klicken Sie im Bedienfeld Komponenten-Inspektor auf die Registerkarte Schema.
6 Klicken Sie im oberen Feld der Registerkarte Schema auf die Schaltfläche zum Hinzufügen von
Komponenteneigenschaften (+).
7 Geben Sie im unteren Feld der Registerkarte Schema als Feldname namesArray ein, und wählen
Sie im Popupmenü data type (Datentyp) den Eintrag Array aus.
8 Klicken Sie im Bedienfeld Komponenten-Inspektor auf die Registerkarte Bindungen, und
fügen Sie eine Bindung zwischen der Eigenschaft namesArray der DataHolder-Komponente
und der Eigenschaft dataProvider der DataGrid-Komponente hinzu.
Weitere Informationen zum Erstellen von Bindungen auf der Registerkarte Bindungen finden
Sie in der Hilfe „Flash verwenden“ unter „Mit Bindungen auf der Registerkarte ,Bindungen‘
arbeiten (nur Flash Professional)“.
9 Wählen Sie in der Zeitleiste (Fenster > Zeitleiste) das erste Bild in Ebene 1 aus, und öffnen Sie
das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen).
10 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
dataHolder.namesArray= [{name:"Tim"},{name:"Paul"},{name:"Jason"}];
Mit diesem Code werden mehrere Objekte an das Array namesArray übergeben. Bei der
Ausführung dieser Variablenzuordnung wird auch die zuvor von Ihnen eingerichtete Bindung
zwischen der DataHolder-Komponente und der DataGrid-Komponente ausgeführt.
11 Testen Sie die Datei mit Steuerung > Film testen.
Übersicht: Eigenschaften der DataHolder-Klasse
206
Eigenschaft
Beschreibung
DataHolder.data
Bindbare Standardeigenschaft für die DataHolder-Komponente.
Kapitel 4: Komponenten-Referenz
DataHolder.data
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
dataHolder.data
Beschreibung
Eigenschaft; das Standardelement im Schema eines DataHolder-Objekts. Diese Eigenschaft ist
kein „permanentes“ Element der DataHolder-Komponente. Stattdessen handelt es sich um die
bindbare Standardeigenschaft für jede Instanz der Komponente. Im Bedienfeld KomponentenInspektor auf der Registerkarte Schema können Sie eigene bindbare Eigenschaften hinzufügen
oder die Standardeigenschaft data löschen.
Weitere Informationen zur Registerkarte Schema finden Sie in der Hilfe „Flash verwenden“ unter
„Mit Schemata auf der Registerkarte ,Schema‘ arbeiten (nur Flash Professional)“.
Beispiel
Ein Beispiel für die Verwendung dieser Komponente finden Sie unter „Anwendungen mit der
DataHolder-Komponente erstellen (nur Flash Professional )“ auf Seite 206.
DataProvider-API
ActionScript-Klassenname
mx.controls.listclasses.DataProvider
Die DataProvider-API umfasst eine Reihe von Methoden und Eigenschaften, die für die
Kommunikation zwischen einer Datenquelle und einer List-basierten Klasse erforderlich sind.
Arrays, RecordSets und DataSet implementieren diese API. Sie können eine DataProviderkompatible Klasse erstellen, indem Sie alle in diesem Dokument beschriebenen Methoden und
Eigenschaften implementieren. Eine List-basierte Komponente kann dann diese Klasse als
Datenprovider verwenden.
Mit den Methoden der DataProvider-API können Sie die Daten in einer beliebigen Komponente
zur Anzeige von Daten (auch Ansicht genannt) abrufen und ändern. Die DataProvider-API sendet
auch change-Ereignisse als Broadcastübertragungen, wenn die Daten geändert werden. Mehrere
Ansichten können denselben Datenprovider verwenden, und alle Ansichten empfangen die
change-Ereignisse.
Ein Datenprovider ist (wie ein Array) eine lineare Sammlung von Elementen. Jedes Element ist
ein Objekt, das aus vielen Datenfeldern besteht. Wie bei einem Array können Sie mit Hilfe von
DataProvider.getItemAt() über die jeweilige Indexposition auf die Elemente zugreifen.
Datenprovider werden meistens in Verbindung mit Arrays verwendet. Datenorientierte
Komponenten wenden alle Methoden der DataProvider-API auf Array.prototype an, wenn
sich ein Array-Objekt in demselben Bild oder Bildschirm wie die datenorientierte Komponente
befindet. Auf diese Weise können Sie die Daten jedes vorhandenen Arrays für Ansichten mit der
Eigenschaft dataProvider verwenden.
DataProvider-API
207
Mit Hilfe der DataProvider-API können mit Komponenten der Version 2, die Ansichten für
Daten liefern (z. B. DataGrid-, List- und Tree-Komponente) auch Flash Remoting RecordSets
und Daten aus der DataSet-Komponente angezeigt werden. Die DataProvider-API ermöglicht
den datenorientierten Komponenten die Kommunikation mit ihren Datenprovidern.
In der Dokumentation zu Macromedia Flash ist „DataProvider“ der Name der API,
ist eine Eigenschaft jeder Komponente, die eine Ansicht für Daten darstellt, und
„Datenprovider“ ist der generische Begriff für eine Datenquelle.
dataProvider
Methoden der DataProvider-API
Name
Beschreibung
DataProvider.addItem()
Fügt ein Element am Ende des Datenproviders hinzu.
DataProvider.addItemAt()
Fügt dem Datenprovider ein Element an der angegebenen
Position hinzu.
DataProvider.editField()
Ändert ein Feld des Datenproviders.
DataProvider.getEditingData() Ruft die Daten für die Bearbeitung vom Datenprovider ab.
DataProvider.getItemAt()
Ruft einen Verweis auf das Element an der angegebenen Position
ab.
DataProvider.getItemID()
Gibt die eindeutige ID des Elements zurück.
DataProvider.removeAll()
Entfernt alle Elemente aus einem Datenprovider.
DataProvider.removeItemAt()
Entfernt ein Element an der angegebenen Position aus einem
Datenprovider.
DataProvider.replaceItemAt()
Ersetzt das Element an der angegebenen Position durch ein
anderes Element.
DataProvider.sortItems()
Sortiert die Elemente in einem Datenprovider.
DataProvider.sortItemsBy()
Sortiert die Elemente in einem Datenprovider gemäß einer
angegebenen Vergleichsfunktion.
Eigenschaften der DataProvider-API
Name
Beschreibung
DataProvider.length
Die Anzahl der Elemente in einem Datenprovider.
Ereignisse der DataProvider-API
208
Name
Beschreibung
DataProvider.modelChanged
Broadcastübertragung, wenn der Datenprovider geändert wird.
Kapitel 4: Komponenten-Referenz
DataProvider.addItem()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.addItem(item)
Parameter
item
Ein Objekt, das Daten enthält. Dazu gehört auch ein Element in einem Datenprovider.
Rückgaben
Keine.
Beschreibung
Methode; fügt ein Element am Ende des Datenproviders hinzu.
Mit dieser Methode wird das Ereignis modelChanged mit dem Ereignisnamen addItems
ausgelöst.
Beispiel
Im folgenden Beispiel wird ein Element am Ende des Datenproviders meinDP hinzugefügt:
meinDP.addItem({ label: "Dies ist ein Element"});
DataProvider.addItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.addItemAt(index, item)
Parameter
Eine Zahl größer oder gleich 0, die die Position angibt, an der das Element eingefügt
werden soll, d. h. die Indexposition des neuen Elements.
index
item
Ein Objekt, das die Daten für das Element enthält.
Rückgaben
Keine.
DataProvider-API
209
Beschreibung
Methode; fügt dem Datenprovider an der angegebenen Indexposition ein neues Element hinzu.
Indizes, die zu groß sind, werden ignoriert.
Mit dieser Methode wird das Ereignis modelChanged mit dem Ereignisnamen addItems
ausgelöst.
Beispiel
Im folgenden Beispiel wird dem Datenprovider meinDP an vierter Position ein Element
hinzugefügt.
meinDP.addItemAt(3, {label : "Dies ist das vierte Element"});
DataProvider.editField()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.editField(index, fieldName, newData)
Parameter
index
Eine Zahl größer oder gleich 0, mit der die Indexposition des Elements angegeben wird.
Ein String, der den Namen des Feldes in dem zu ändernden Element angibt.
fieldName
newData
Die neuen Daten, die an den Datenprovider übergeben werden.
Rückgaben
Keine.
Beschreibung
Methode; ändert ein Feld des Datenproviders.
Mit dieser Methode wird das Ereignis modelChanged mit dem Ereignisnamen updateField
ausgelöst.
Beispiel
Mit folgendem Code wird das Feld Bezeichnung des dritten Elements geändert:
meinDP.editField(2, "Bezeichnung", "meineNeuenDaten");
210
Kapitel 4: Komponenten-Referenz
DataProvider.getEditingData()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.getEditingData(index, fieldName)
Parameter
index Eine Zahl größer oder gleich 0 und kleiner als der Wert von DataProvider.length.
Der Index des abzurufenden Elements.
fieldName
Ein String, der den Namen des zu bearbeitenden Feldes angibt.
Rückgaben
Die bearbeitbaren, formatierten Daten, die verwendet werden sollen.
Beschreibung
Methode; ruft die zu bearbeitenden Daten vom Datenprovider ab. Auf diese Weise kann das
Datenmodell unterschiedliche Datenformate zum Bearbeiten und Anzeigen bereitstellen.
Beispiel
Mit dem folgenden Code wird ein bearbeitbarer String für das Feld „Preis“ abgerufen:
trace(meinDP.getEditingData(4, "Preis");
DataProvider.getItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.getItemAt(index)
Parameter
Eine Zahl größer oder gleich 0 und kleiner als der Wert von DataProvider.length.
Der Index des abzurufenden Elements.
index
Rückgaben
Ein Verweis auf das abgerufene Element; der Wert ist undefined, wenn sich die angegebene
Indexposition außerhalb des zulässigen Bereichs befindet.
DataProvider-API
211
Beschreibung
Methode; ruft einen Verweis auf das Element an der angegebenen Position ab.
Beispiel
Mit dem folgenden Code wird die Bezeichnung des fünften Elements angezeigt:
trace(meinDP.getItemAt(4).label);
DataProvider.getItemID()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 Professional.
Verwendung
meinDP.getItemID(index)
Parameter
index
Eine Zahl größer oder gleich 0.
Rückgaben
Eine Zahl als eindeutige ID des Elements.
Beschreibung
Methode; gibt eine eindeutige ID für das Element zurück. Diese Methode wird hauptsächlich
zum Verfolgen einer Auswahl verwendet. Diese ID wird in datenorientierten Komponenten dazu
verwendet, eine Liste der ausgewählten Elemente zu erstellen.
Beispiel
In diesem Beispiel wird die ID des vierten Elements abgerufen:
var ID = meinDP.getItemID(3);
DataProvider.modelChanged
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.modelChanged = function(eventObject){
// Hier Code eingeben
}
meinMenu.addEventListener("modelChanged", listenerObject
212
Kapitel 4: Komponenten-Referenz
Beschreibung
Ereignis; sendet Broadcastübertragung an alle Ansichts-Listener, wenn der Datenprovider
geändert wird. Ein Listener wird einem Modell normalerweise hinzugefügt, indem die
Eigenschaft dataProvider zugeordnet wird.
V2-Komponenten basieren auf einem Dispatcher/Listener-Ereignismodell. Wenn ein
Datenprovider auf irgendeine Weise geändert wird, sendet er das Ereignis modelChanged als
Broadcastübertragung; das Ereignis wird von datenorientierten Komponenten empfangen, und
diese aktualisieren die Anzeigen mit den geänderten Daten.
Das Ereignisobjekt des Ereignisses Menu.modelChanged hat fünf weitere Eigenschaften:
•
•
•
•
•
Mit der Eigenschaft eventName werden die modelChanged-Ereignisse in
Unterkategorien unterteilt. Anhand dieser Informationen brauchen datenorientierte
Komponenten die Ansicht der Komponenteninstanz, die den Datenprovider verwendet, nicht
vollständig zu aktualisieren. Folgende Werte der Eigenschaft eventName werden unterstützt:
■ updateAll
Die gesamte Ansicht muss aktualisiert werden, abgesehen von der
Bildlaufposition.
■ addItems
Eine Reihe von Elementen wurden hinzugefügt.
■ removeItems
Eine Reihe von Elementen wurden gelöscht.
■ updateItems
Eine Reihe von Elementen müssen aktualisiert werden.
■ sort
Die Daten wurden sortiert.
■ updateField
Ein Feld innerhalb eines Elements muss geändert und aktualisiert werden.
■ updateColumn
Die Definition eines gesamten Feldes innerhalb des dataProvider muss
aktualisiert werden.
■ filterModel
Das Modell wurde gefiltert, und die Ansicht muss aktualisiert werden
(Bildlaufposition zurücksetzen).
■ schemaLoaded
Die Felddefinition des dataProvider wurde deklariert.
firstItem Die Indexposition des ersten betroffenen Elements.
lastItem Die Indexposition des letzten betroffenen Elements. Dieser Wert stimmt mit dem
Wert für firstItem überein, wenn nur ein Element betroffen ist.
removedIDs Ein Array der Element-IDs, die entfernt wurden.
fieldName Ein String, der den Namen des betroffenen Feldes angibt.
eventName
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird die Prozedur listener definiert und als zweiter Parameter an die
Methode addEventListener() übergeben. Das Ereignisobjekt wird von der Prozedur
modelChanged im Parameter evt wiedergegeben. Bei der Broadcastübertragung des Ereignisses
modelChanged wird folgende trace-Anweisung an das Bedienfeld Ausgabe gesendet:
listener = new Object();
listener.modelChanged = function(evt){
trace(evt.eventName);
}
meineList.addEventListener("modelChanged", listener);
DataProvider-API
213
DataProvider.length
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.length
Beschreibung
Eigenschaft (schreibgeschützt); die Anzahl der Elemente im Datenprovider.
Beispiel
In diesem Beispiel wird die Anzahl der Elemente im Datenprovider meinArray an das Bedienfeld
Ausgabe gesendet:
trace(meinArray.length);
DataProvider.removeAll()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.removeAll()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; entfernt alle Elemente im Datenprovider.
Mit dieser Methode wird das Ereignis modelChanged mit dem Ereignisnamen removeItems
ausgelöst.
Beispiel
In diesem Beispiel werden alle Elemente aus dem Datenprovider entfernt:
meinDP.removeAll();
214
Kapitel 4: Komponenten-Referenz
DataProvider.removeItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.removeItemAt(index)
Parameter
Eine Zahl größer oder gleich 0, mit der die Indexposition des zu entfernenden Elements
angegeben wird.
index
Rückgaben
Keine.
Beschreibung
Methode; entfernt das Element an der angegebenen Indexposition. Die Indizes nach der
entfernten Indexposition werden jeweils um 1 reduziert.
Mit dieser Methode wird das Ereignis modelChanged mit dem Ereignisnamen removeItems
ausgelöst.
Beispiel
In diesem Beispiel wird das Element an vierter Position entfernt:
meinDP.removeItemAt(3);
DataProvider.replaceItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.replaceItemAt(index, item)
Parameter
index
item
Eine Zahl, die größer als bzw. gleich 0 ist. Die Indexposition des zu ändernden Elements.
Ein Objekt, das das neue Element darstellt.
Rückgaben
Keine.
DataProvider-API
215
Beschreibung
Methode; ersetzt den Inhalt des Elements an der angegebenen Indexposition.
Mit dieser Methode wird das Ereignis modelChanged mit dem Ereignisnamen removeItems
ausgelöst.
Beispiel
Im folgenden Beispiel wird das Element an Indexposition 3 durch das Element mit der
Bezeichnung „new label“ (neue Bezeichnung) ersetzt.
meinDP.replaceItemAt(3, {label : "new label"});
DataProvider.sortItems()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.sortItems([compareFunc], [optionsFlag])
Parameter
Ein Verweis auf eine Funktion, die zwei Elemente miteinander vergleicht, um
deren Sortierfolge zu bestimmen. Weitere Informationen finden Sie unter Array.sort() im
ActionScript-Lexikon. Dieser Parameter ist optional.
compareFunc
Ermöglicht die Durchführung mehrerer unterschiedlicher Sortieroperationen in
einem einzelnen Array, ohne dass dabei das gesamte Array repliziert bzw. wiederholt neu sortiert
werden muss. Dieser Parameter ist optional.
optionsFlag
optionsFlag
•
•
•
•
•
kann die folgenden Werte haben:
Array.DESCENDING:
Die Sortierung erfolgt vom höchsten zum niedrigsten Wert.
Array.CASEINSENSITIVE: Bei der Sortierung wird die Groß-/Kleinschreibung ignoriert.
Array.NUMERIC: Die Sortierung erfolgt in numerischer Reihenfolge, sofern es sich bei den
beiden verglichenen Elementen um Zahlen handelt. Führen Sie andernfalls einen StringVergleich durch (dabei wird je nach Einstellung die Groß-/Kleinschreibung ignoriert).
Array.UNIQUESORT: Wenn zwei Objekte in dem Array identisch sind oder identische
Sortierfelder haben, gibt diese Methode anstelle eines sortierten Arrays einen Fehlercode (0)
zurück.
Array.RETURNINDEXEDARRAY: Gibt das Ergebnis der Sortieroperation in Form eines
ganzzahligen, indizierten Arrays zurück. Wenn z. B. das folgende Array anhand des Parameters
optionsFlag mit dem Wert Array.RETURNINDEXEDARRAY sortiert wird, wird die zweite
Codezeile zurückgegeben, und das Array bleibt unverändert:
["a", "d", "c", "b"]
[0, 3, 2, 1]
216
Kapitel 4: Komponenten-Referenz
Sie können diese Optionen zu einem Wert zusammenfassen. Im folgenden Code werden z. B.
Option 3 und Option 1 miteinander kombiniert:
array.sort (Array.NUMERIC | Array.DESCENDING)
Rückgaben
Keine.
Beschreibung
Methode; sortiert die Elemente im Datenprovider gemäß der mit dem Parameter compareFunc
festgelegten Vergleichsfunktion bzw. gemäß einer oder mehrerer Sortieroptionen, die mit dem
Parameter optionsFlag definiert wurden.
Diese Methode löst das Ereignis modelChanged mit dem Ereignisnamen sort aus.
Beispiel
Im folgenden Beispiel werden die Elemente basierend auf den mit Großbuchstaben beginnenden
Bezeichnungen sortiert. Die Elemente a und b werden an die Funktion übergeben und enthalten
die Felder label und data:
meineList.sortItems(upperCaseFunc);
function upperCaseFunc(a,b){
return a.label.toUpperCase() > b.label.toUpperCase();
}
DataProvider.sortItemsBy()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinDP.sortItemsBy(fieldName, order, [optionsFlag])
Parameter
fieldName Ein String mit dem Namen des Felds, nach dem sortiert werden soll.
Normalerweise ist dieser Wert "label" oder "data".
Ein String, der angibt, ob die Elemente in aufsteigender ("ASC") oder absteigender
Reihenfolge ("DESC") sortiert werden sollen.
order
Ermöglicht die Durchführung mehrerer unterschiedlicher Sortieroperationen in
einem einzelnen Array, ohne dass dabei das gesamte Array repliziert bzw. wiederholt neu sortiert
werden muss. Dieser Parameter ist optional.
optionsFlag
optionsFlag
•
•
kann die folgenden Werte haben:
Array.DESCENDING:
Die Sortierung erfolgt vom höchsten zum niedrigsten Wert.
Array.CASEINSENSITIVE: Bei der Sortierung wird die Groß-/Kleinschreibung ignoriert.
DataProvider-API
217
•
•
•
Array.NUMERIC: Die Sortierung erfolgt in numerischer Reihenfolge, sofern es sich bei den
beiden verglichenen Elementen um Zahlen handelt. Führen Sie andernfalls einen StringVergleich durch (dabei wird je nach Einstellung die Groß-/Kleinschreibung ignoriert).
Array.UNIQUESORT: Wenn zwei Objekte in dem Array identisch sind oder identische
Sortierfelder haben, gibt diese Methode anstelle eines sortierten Arrays einen Fehlercode (0)
zurück.
Array.RETURNINDEXEDARRAY: Gibt das Ergebnis der Sortieroperation in Form eines
ganzzahligen, indizierten Arrays zurück. Wenn z. B. das folgende Array anhand des Parameters
optionsFlag mit dem Wert Array.RETURNINDEXEDARRAY sortiert wird, wird die zweite
Codezeile zurückgegeben, und das Array bleibt unverändert:
["a", "d", "c", "b"]
[0, 3, 2, 1]
Sie können diese Optionen zu einem Wert zusammenfassen. Im folgenden Code werden z. B.
Option 3 und Option 1 miteinander kombiniert:
array.sort (Array.NUMERIC | Array.DESCENDING)
Rückgaben
Keine.
Beschreibung
Methode; sortiert die Elemente im Datenprovider alphabetisch oder numerisch in der
angegebenen Reihenfolge nach dem angegebenen Feldnamen. Wenn die durch fieldName
bezeichneten Elemente Textstrings und Ganzzahlen enthalten, werden die Elemente mit den
Ganzzahlen zuerst aufgelistet. Der Parameter fieldName ist normalerweise „label“ oder „data“,
erfahrene Programmierer können jedoch einen beliebigen Grundwert angeben. Sie können mit
dem Parameter optionsFlag nach Wunsch einen Sortierungstyp angeben.
Diese Methode löst das Ereignis modelChanged mit dem Ereignisnamen sort aus.
Beispiel
Im folgenden Code werden die Elemente in einer Liste in aufsteigender Reihenfolge nach den
Bezeichnungen der Listenelemente sortiert:
meinDP.sortItemsBy("label", "ASC");
DataSet-Komponente (nur Flash Professional)
Mit der DataSet-Komponente können Sie Daten als Objektsammlungen bearbeiten, die indiziert,
sortiert, durchsucht, gefiltert und geändert werden können.
Zum Funktionsumfang der DataSet-Komponente gehören DataSetIterator, ein Methodensatz
zum Durchlaufen und Manipulieren einer Datensammlung, sowie DeltaPacket, ein Satz
Benutzeroberflächen und Klassen, der die Aktualisierung von Datensammlungen erleichtert. In
der Regel arbeiten Sie mit diesen Klassen und Benutzeroberflächen nicht direkt, sondern nur
indirekt über die von der DataSet-Klasse bereitgestellten Methoden.
218
Kapitel 4: Komponenten-Referenz
Die von der DataSet-Komponente verwalteten Elemente werden auch als Übertragungsobjekte
bezeichnet. Übertragungsobjekte stellen Geschäftsdaten, die sich auf einem Server befinden,
mittels öffentlicher Attribute oder Zugriffsmethoden zum Lesen oder Schreiben von Daten
bereit. Mit der DataSet-Komponente können Entwickler mit hoch entwickelten clientseitigen
Objekten arbeiten, die ihre serverseitigen Gegenstücke widerspiegeln, oder (im einfachsten Fall)
mit einer Sammlung von anonymen Objekten mit öffentlichen Attributen, die den Feldern in
einem Datensatz entsprechen. Weitere Informationen zu Übertragungsobjekten finden Sie in
„Core J2EE Patterns Transfer Object“ unter java.sun.com/blueprints/corej2eepatterns/Patterns/
TransferObject.html.
Hinweis: Für die DataSet-Komponente benötigen Sie mindestens Flash Player 7.
DataSet-Komponente verwenden (nur Flash Professional)
Die DataSet-Komponente wird normalerweise in einer Anwendung mit anderen Komponenten
kombiniert, um eine Datenquelle zu manipulieren und zu aktualisieren. Dabei wird mit einer
Connector-Komponente eine Verbindung zu einer externen Datenquelle hergestellt, mit UIKomponenten werden Daten aus der Datenquelle angezeigt, und mit einer ResolverKomponente werden Aktualisierungen des Datensatzes in ein Format übersetzt, das an die
externe Datenquelle übermittelt werden kann. Mit Hilfe der so genannten Datenbindung lassen
sich die Eigenschaften dieser unterschiedlichen Komponenten dann aneinander binden.
Allgemeine Informationen zur DataSet-Komponente und zu ihrem Einsatz mit anderen
Komponenten finden Sie unter „Datenverwaltung (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Parameter der DataSet-Komponente
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder im Bedienfeld
Komponenten-Inspektor für jede DataSet-Komponenteninstanz festlegen:
itemClassName Der Name der Übertragungsobjektklasse, die jedes Mal instanziiert wird,
wenn ein neues Element erforderlich ist.
Hinweis: Damit die angegebene Klasse zur Laufzeit verfügbar ist, müssen Sie außerdem im Code
der SWF-Datei einen vollständig qualifizierten Verweis auf diese Klasse erstellen (Beispiel: var
meinItem:mein.package.meinItem;).
Lautet der Wert dieses Parameters true, wird auf den Datensatz ein Filter angewendet,
sodass der Satz nur Objekte enthält, die den Filterkriterien entsprechen.
filtered
logChanges Lautet der Wert dieses Parameters true, werden von dem Datensatz alle
Veränderungen (Datenänderungen oder Methoden-Aufrufe) in der Eigenschaft deltaPacket
aufgezeichnet.
readOnly
Lautet der Wert dieses Parameters true, kann der Datensatz nicht modifiziert
werden.
Mit Hilfe von ActionScript-Anweisungen können Sie diese und weitere Optionen für die
DataSet-Komponente über deren Eigenschaften, Methoden und Ereignisse steuern. Weitere
Informationen finden Sie unter „DataSet-Klasse (nur Flash Professional)“ auf Seite 221.
DataSet-Komponente (nur Flash Professional)
219
Anwendungen mit der DataSet-Komponente erstellen
Normalerweise wird die DataSet-Komponente mit anderen UI-Komponenten und häufig auch
mit einer Connector-Komponente (z. B. XMLConnector- oder WebServiceConnectorKomponente) kombiniert. Die Elemente in dem Datensatz werden mit Hilfe der ConnectorKomponente bzw. mit unformatierten ActionScript-Daten gefüllt und dann an UI-Steuerungen
gebunden (z. B. List- oder DataGrid-Komponenten).
So erstellen Sie mit der DataSet-Komponente eine Anwendung:
1 Wählen Sie in Flash MX Professional 2004 Datei > Neu. Wählen Sie in der Spalte Typ die
2
3
4
5
6
7
8
Option Flash-Dokument aus, und klicken Sie auf OK.
Öffnen Sie das Bedienfeld Komponenten (Fenster > Entwicklungs-Bedienfelder >
Komponenten), sofern es nicht bereits geöffnet ist.
Ziehen Sie eine DataSet-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
Geben Sie für die Komponente im Eigenschafteninspektor den Namen userData ein.
Ziehen Sie eine DataGrid-Komponente auf die Bühne, und geben Sie ihr den Namen userGrid.
Stellen Sie die Größe der DataGrid-Komponente auf ca. 300 x 100 Pixel (Breite x Höhe) ein.
Ziehen Sie eine Button-Komponente auf die Bühne, und geben Sie ihr den Namen nextBtn.
Wählen Sie in der Zeitleiste das erste Bild in Ebene 1 aus, und öffnen Sie das Bedienfeld
Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen).
Fügen Sie im Bedienfeld Aktionen folgenden Code hinzu:
var recData = [{id:0, firstName:"Mick", lastName:"Jones"},
{id:1, firstName:"Joe", lastName:"Strummer"},
{id:2, firstName:"Paul", lastName:"Simonon"}];
userData.items = recData;
Dadurch wird die Eigenschaft items des DataSet-Objekts mit einem Array von Objekten
gefüllt, die jeweils die drei Eigenschaften firstName, lastName und id aufweisen.
9 Um die Inhalte der DataSet-Komponente an die Inhalte der DataGrid-Komponente zu binden,
öffnen Sie das Bedienfeld Komponenten-Inspektor (Fenster > Entwicklungs-Bedienfelder >
Komponenten-Inspektor), und klicken Sie auf die Registerkarte Bindungen.
10 Wählen Sie die DataGrid-Komponente (userGrid) auf der Bühne aus, und klicken Sie im
Bedienfeld Komponenten-Inspektor auf die Schaltfläche Bindung hinzufügen (+).
11 Wählen Sie im Dialogfeld Bindung hinzufügen den Eintrag „dataProvider : Array“ aus, und
klicken Sie auf OK.
12 Doppelklicken Sie im Bedienfeld Komponenten-Inspektor auf das Feld bound to.
13 Wählen Sie im Dialogfeld Gebunden an in der Spalte Komponentenpfad den Eintrag „DataSet
<userData>“ aus und dann in der Spalte Schema-Standort den Eintrag „dataProvider : Array“.
14 Um den ausgewählten Index der DataSet-Komponente an den ausgewählten Index der
DataGrid-Komponente zu binden, klicken Sie im Bedienfeld Komponenten-Inspektor erneut
auf die Schaltfläche Bindung hinzufügen (+).
15 Wählen Sie in dem daraufhin angezeigten Dialogfeld den Eintrag „selectedIndex : Number“
aus. Klicken Sie auf OK.
16 Doppelklicken Sie im Bedienfeld Komponenten-Inspektor auf das Feld bound to, um das
Dialogfeld Gebunden an zu öffnen.
17 Wählen Sie in der Spalte Komponentenpfad den Eintrag „DataSet <userData>“ aus und dann
in der Spalte Schema-Standort den Eintrag „selectedIndex : Number“.
220
Kapitel 4: Komponenten-Referenz
18 Wählen Sie die Button-Komponente (nextBtn) aus, und öffnen Sie das Bedienfeld Aktionen
(Fenster > Entwicklungs-Bedienfelder > Aktionen), sofern es nicht bereits geöffnet ist.
19 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
on(click){
_parent.userData.next();
}
Dieser Code navigiert mit Hilfe der Methode DataSet.next() zum nächsten Element in der
Elementsammlung des DataSet-Objekts. Da Sie die Eigenschaft selectedIndex des
DataGrid-Objekts an die gleichnamige Eigenschaft des DataSet-Objekts gebunden haben,
ändert sich das aktuelle (ausgewählte) Element im DataGrid-Objekt, wenn das aktuelle
Element im DataSet-Objekt modifiziert wird.
20 Speichern Sie die Datei, und wählen Sie Steuerung > Film testen, um die SWF-Datei zu testen.
Das DataGrid-Objekt wird mit den angegebenen Elementen gefüllt. Wenn Sie auf die
Schaltfläche klicken, ändert sich das ausgewählte Element im DataGrid-Objekt.
DataSet-Klasse (nur Flash Professional)
ActionScript-Klassenname
mx.data.components.DataSet
Übersicht: Methoden der DataSet-Klasse
Methode
Beschreibung
DataSet.addItem()
Fügt das angegebene Element der Sammlung hinzu.
DataSet.addSort()
Erstellt eine neue, sortierte Ansicht der Elemente in der Sammlung.
DataSet.applyUpdates()
Teilt Listenern mit, dass an dem DataSet-Objekt durchgeführte
Änderungen bereit sind.
DataSet.changesPending()
Gibt an, ob das DeltaPacket-Objekt Elemente enthält.
DataSet.clear()
Löscht alle Elemente aus der aktuellen Ansicht der Sammlung.
DataSet.createItem()
Gibt ein neu initialisiertes Sammlungselement zurück.
DataSet.disableEvents()
Stoppt das Senden von DataSet-Ereignissen an Listener.
DataSet.enableEvents()
Setzt das Senden von DataSet-Ereignissen an Listener fort.
DataSet.find()
Durchsucht die aktuelle Ansicht der Sammlung nach einem
Element.
DataSet.findFirst()
Durchsucht die aktuelle Ansicht der Sammlung nach der ersten
Fundstelle eines Elements.
DataSet.findLast()
Durchsucht die aktuelle Ansicht der Sammlung nach der letzten
Fundstelle eines Elements.
DataSet.first()
Geht in der aktuellen Ansicht der Sammlung zum ersten Element.
DataSet.getItemId()
Gibt die eindeutige ID des angegebenen Elements zurück.
DataSet.getIterator()
Gibt einen Klon des aktuellen Iterators zurück.
DataSet.hasNext()
Gibt an, ob der aktuelle Iterator sich am Ende seiner Ansicht der
Sammlung befindet.
DataSet-Komponente (nur Flash Professional)
221
Methode
Beschreibung
DataSet.hasPrevious()
Gibt an, ob der aktuelle Iterator sich am Anfang seiner Ansicht der
Sammlung befindet.
DataSet.hasSort()
Gibt an, ob die angegebene Sortierung vorhanden ist.
DataSet.isEmpty()
Gibt an, ob die Sammlung Elemente enthält.
DataSet.last()
Geht in der aktuellen Ansicht der Sammlung zum letzten Element.
DataSet.loadFromSharedObj() Ruft die Inhalte eines DataSet-Objekts von einem gemeinsamen
Objekt ab.
DataSet.locateById()
Verschiebt den aktuellen Iterator zu dem Element mit der
angegebenen ID.
DataSet.next()
Geht in der aktuellen Ansicht der Sammlung zum nächsten
Element.
DataSet.previous()
Geht in der aktuellen Ansicht der Sammlung zum vorherigen
Element.
DataSet.removeAll()
Entfernt alle Elemente aus der Sammlung.
DataSet.removeItem()
Entfernt das angegebene Element aus der Sammlung.
DataSet.removeRange()
Entfernt die Bereichseinstellungen des aktuellen Iterators.
DataSet.removeSort()
Entfernt die angegebene Sortierung aus dem DataSet-Objekt.
DataSet.saveToSharedObj()
Speichert die Daten in dem DataSet-Objekt in einem gemeinsamen
Objekt.
DataSet.setIterator()
Legt den aktuellen Iterator für das DataSet-Objekt fest.
DataSet.setRange()
Legt die Bereichseinstellungen des aktuellen Iterators fest.
DataSet.skip()
Geht in der aktuellen Ansicht der Sammlung um eine bestimmte
Anzahl von Elementen vorwärts oder zurück.
DataSet.useSort()
Legt die angegebene Sortierung als aktive Sortierung fest.
Übersicht: Eigenschaften der DataSet-Klasse
222
Eigenschaft
Beschreibung
DataSet.currentItem
Gibt das aktuelle Element der Sammlung zurück.
DataSet.dataProvider
Gibt die DataProvider-Schnittstelle zurück.
DataSet.deltaPacket
Gibt Änderungen zurück, die an der Sammlung durchgeführt
wurden, oder weist der Sammlung Änderungen zu.
DataSet.filtered
Gibt an, ob Elemente gefiltert werden.
DataSet.filterFunc
Benutzerdefinierte Funktion zum Filtern von Elementen in der
Sammlung.
DataSet.items
Elemente in der Sammlung.
DataSet.itemClassName
Objekt, das beim Zuweisen von Elementen erstellt werden soll.
Kapitel 4: Komponenten-Referenz
Eigenschaft
Beschreibung
DataSet.length
Gibt an, wie viele Elemente sich in der aktuellen Ansicht der
Sammlung befinden.
DataSet.logChanges
Gibt an, ob Änderungen an der Sammlung oder an Elementen der
Sammlung aufgezeichnet werden.
DataSet.properties
Enthält die Eigenschaften (Felder) für alle Übertragungsobjekte in
dieser Sammlung.
DataSet.readOnly
Gibt an, ob die Sammlung geändert werden kann.
DataSet.schema
Legt das Schema der Sammlung im XML-Format fest.
DataSet.selectedIndex
Enthält die Indexposition des aktuellen Elements innerhalb der
Sammlung.
Übersicht: Ereignisse der DataSet-Klasse
Ereignis
Beschreibung
DataSet.addItem
Broadcastübertragung, bevor ein Element der Sammlung
hinzugefügt wird.
DataSet.afterLoaded
Broadcastübertragung, nachdem die Eigenschaft items
zugewiesen wurde.
DataSet.deltaPacketChanged
Broadcastübertragung, wenn das DeltaPacket des DataSetObjekts verändert wurde und einsatzbereit ist.
DataSet.calcFields
Broadcastübertragung, wenn berechnete Felder aktualisiert werden
müssen.
DataSet.iteratorScrolled
Broadcastübertragung, wenn die Position des Iterators geändert
wird.
DataSet.modelChanged
Broadcastübertragung, wenn Elemente in der Sammlung auf
irgendeine Weise geändert wurden.
DataSet.newItem
Broadcastübertragung, wenn das DataSet-Objekt ein neues
Element erstellt, aber bevor das Element der Sammlung
hinzugefügt wird.
DataSet.removeItem
Broadcastübertragung, bevor ein Element entfernt wird.
DataSet.resolveDelta
Broadcastübertragung, wenn ein DeltaPacket-Objekt dem
DataSet-Objekt zugewiesen wird, das Meldungen enthält.
DataSet.addItem
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
DataSet-Komponente (nur Flash Professional)
223
Verwendung
on(addItem) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.addItem = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("addItem", listenerObject)
Beschreibung
Ereignis; wird generiert, kurz bevor dieser Sammlung ein neues Übertragungsobjekt hinzugefügt
wird.
Wenn Sie der Eigenschaft result des Ereignisobjekts den Wert false zuweisen, wird der
Hinzufügen-Vorgang abgebrochen; bei dem Wert true hingegen ist der Vorgang zulässig.
Das Ereignisobjekt (eventObj) enthält folgende Eigenschaften:
Das DataSet-Objekt, das das Ereignis generiert hat.
target
type
Der String "addItem".
item
Ein Verweis zu dem hinzuzufügenden Element in der Sammlung.
result Ein Boolescher Wert, der angibt, ob das angegebene Element hinzugefügt werden soll.
Der Standardwert ist true.
Beispiel
Die folgende Ereignisprozedur on(addItem) (einem DataSet-Objekt zugewiesen) bricht das
Hinzufügen des neuen Elements ab, wenn eine benutzerdefinierte Funktion namens
userHasAdminPrivs() den Wert false zurückgibt; andernfalls ist das Hinzufügen des Elements
zulässig.
on(addItem) {
if(globalObj.userHasAdminPrivs()) {
// Hinzufügen von Elementen ist zulässig.
eventObj.result = true;
} else {
// Hinzufügen von Elementen ist nicht zulässig; Benutzer hat keine
// Administratorrechte.
eventObj.result = false;
}
}
Siehe auch
DataSet.removeItem
224
Kapitel 4: Komponenten-Referenz
DataSet.addItem()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.addItem([obj])
Parameter
obj
Ein Objekt, das dieser Sammlung hinzugefügt werden soll. Dieser Parameter ist optional.
Rückgaben
Gibt true zurück, wenn das Element der Sammlung hinzugefügt wurde. Andernfalls wird false
zurückgegeben.
Beschreibung
Methode; fügt das angegebene Übertragungsobjekt der Sammlung hinzu, damit es dort verwaltet
werden kann. Das neu hinzugefügte Element wird zum aktuellen Element des Datensatzes. Wenn
kein Parameter des Typs obj festgelegt wurde, wird ein neues Objekt automatisch mit Hilfe von
DataSet.createItem() erstellt.
Die Position des neuen Elements innerhalb der Sammlung hängt davon ab, ob für den aktuellen
Iterator eine Sortierung angegeben wurde. Wenn keine Sortierung verwendet wird, wird das
angegebene Element am Ende der Sammlung eingefügt. Wenn eine Sortierung verwendet wird,
wird das Element in der Sammlung an der Position eingefügt, die sich aus der aktuellen
Sortierung ergibt.
Weitere Informationen zur Initialisierung und zum Erstellen des Übertragungsobjekts finden Sie
unter DataSet.createItem().
Beispiel
meinDataSet.addItem(meinDataSet.createItem());
Siehe auch
DataSet.createItem()
DataSet.addSort()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.addSort(name, fieldList, sortOptions)
DataSet-Komponente (nur Flash Professional)
225
Parameter
name
Ein String, der den Namen der Sortierung angibt.
fieldList
Ein Array von Strings mit den Feldnamen, nach denen sortiert werden soll.
Mindestens einer der folgenden ganzzahligen Werte (Konstanten), die die bei der
Sortierung verwendeten Optionen angeben. Wenn Sie mehrere Werte einsetzen, fügen Sie
zwischen den einzelnen Werten den bitweisen OR-Operator (|) ein. Sie müssen einen der
folgenden Werte verwenden:
sortOptions
•
•
•
•
DataSetIterator.Ascending Sortiert Elemente in aufsteigender Reihenfolge. Dies ist die
Standardoption, sofern keine andere Option gewählt wurde.
DataSetIterator.Descending Sortiert Elemente in absteigender Reihenfolge nach den
angegebenen Elementeigenschaften.
DataSetIterator.Unique Verhindert die Sortierung, wenn Felder identische Werte
aufweisen.
DataSetIterator.CaseInsensitive Ignoriert die Groß-/Kleinschreibung, wenn im
Rahmen der Sortieroperation zwei Strings miteinander verglichen werden. Wenn es sich bei
der Eigenschaft, nach der sortiert werden soll, um einen String handelt, wird die Groß-/
Kleinschreibung standardmäßig beachtet.
Es wird eine DataSetError-Ausnahme ausgegeben, wenn die Sortieroption
DataSetIterator.Unique festgelegt wurde und die zu sortierenden Daten nicht eindeutig sind,
wenn der angegebene Sortierungsname bereits hinzugefügt wurde oder wenn eine im fieldListArray angegebene Eigenschaft in diesem Datensatz nicht existiert.
Rückgaben
Keine.
Beschreibung
Methode; erstellt für den aktuellen Iterator anhand der von dem Parameter fieldList
festgelegten Eigenschaften eine neue Sortierung in aufsteigender oder absteigender Reihenfolge.
Die neue Sortierung wird dem aktuellen Iterator automatisch zugewiesen, nachdem sie erstellt
und zum späteren Gebrauch in der Sortierungssammlung gespeichert wurde.
Beispiel
Mit dem folgenden Code wird eine neue Sortierung namens "rank" erstellt. Die Sortierung wird
nach dem Feld "classRank" des DataSet-Objekts in absteigender Reihenfolge für eindeutige
Daten durchgeführt, wobei die Groß-/Kleinschreibung beachtet wird.
meinDataSet.addSort("rank", ["classRank"], DataSetIterator.Descending |
DataSetIterator.Unique | DataSetIterator.CaseInsensitive);
Siehe auch
DataSet.removeSort()
226
Kapitel 4: Komponenten-Referenz
DataSet.afterLoaded
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
on(afterLoaded) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.afterLoaded = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("afterLoaded", listenerObject)
Beschreibung
Ereignis; sofortige Broadcastübertragung, nachdem die Eigenschaft DataSet.items zugewiesen
wurde.
Das Ereignisobjekt (eventObj) enthält folgende Eigenschaften:
Das DataSet-Objekt, das das Ereignis generiert hat.
target
type
Der String "afterLoaded".
Beispiel
Im folgenden Beispiel wird ein Formular namens contactForm (nicht angezeigt) eingeblendet,
sobald die Elemente in dem DataSet contact_ds zugewiesen worden sind.
contact_ds.addEventListener("afterLoaded", loadListener);
loadListener = new Object();
loadListener.afterLoaded = function (eventObj) {
if(eventObj.target == "contact_ds") {
contactForm.visible = true;
}
}
DataSet.applyUpdates()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.applyUpdates()
Rückgaben
Keine.
DataSet-Komponente (nur Flash Professional)
227
Beschreibung
Methode; signalisiert, dass die Eigenschaft DataSet.deltaPacket einen Wert hat, auf den Sie
entweder über Datenbindung oder direkt mit ActionScript zugreifen können. Bevor diese
Methode aufgerufen wird, hat die Eigenschaft DataSet.deltaPacket den Wert null. Diese
Methode ist wirkungslos, wenn Ereignisse mit der Methode DataSet.disableEvents()
deaktiviert wurden.
Beim Aufruf dieser Methode wird außerdem eine Transaktions-ID für die aktuelle Eigenschaft
DataSet.deltaPacket erstellt, und es wird ein Ereignis des Typs deltaPacketChanged
ausgegeben. Weitere Informationen finden Sie unter DataSet.deltaPacket.
Beispiel
Mit dem folgenden Code wird die Methode applyUpdates() für meinDataSet aufgerufen.
meinDataSet.applyUpdates();
Siehe auch
DataSet.deltaPacket
DataSet.calcFields
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
on(calcFields) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.calcFields = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("calcFields", listenerObject)
Beschreibung
Ereignis; wird generiert, wenn die Werte von berechneten Feldern für das aktuelle Element der
Sammlung ermittelt werden müssen. Ein berechnetes Feld ist ein Feld, für dessen Eigenschaft
kind (Typ) im Bedienfeld Komponenten-Inspektor auf der Registerkarte Schema die Option
Calculated (Berechnet) gewählt wurde. Der von Ihnen erstellte Ereignis-Listener calcFields
sollte die erforderliche Berechnung durchführen und den Wert des berechneten Feldes festlegen.
Dieses Ereignis wird auch aufgerufen, wenn der Wert eines nicht berechneten Feldes (ein Feld, für
dessen Eigenschaft kind (Typ) im Bedienfeld Komponenten-Inspektor auf der Registerkarte
Schema die Option Data (Daten) gewählt wurde) aktualisiert wird.
Weitere Informationen zur Eigenschaft kind finden Sie unter „Schema-Typen (nur Flash
Professional)“ in der Hilfe „Flash verwenden“.
Vorsicht: Ändern Sie nicht die Werte der nicht berechneten Felder dieses Ereignisses, da dies zu
einer Endlosschleife führt. Stellen Sie in dem Ereignis calcFields nur die Werte der berechneten
Felder ein.
228
Kapitel 4: Komponenten-Referenz
DataSet.changesPending()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.changesPending()
Rückgaben
Ein Boolescher Wert.
Beschreibung
Methode; gibt true zurück, wenn für die Sammlung bzw. ein Element in der Sammlung
Änderungen anstehen, die noch nicht in einem DeltaPacket-Objekt weitergegeben wurden.
Andernfalls wird false zurückgegeben.
Beispiel
Mit dem folgenden Code wird eine Schaltfläche zum Speichern von Änderungen (nicht
angezeigt) aktiviert, wenn an der DataSet-Sammlung bzw. an einem Element in der Sammlung
Änderungen durchgeführt wurden, die noch nicht in einem DeltaPacket-Objekt erfasst worden
sind.
if( data_ds.changesPending() ) {
saveChanges_btn.enabled = true;
}
DataSet.clear()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.clear()
Rückgaben
Keine.
Beschreibung
Methode; entfernt die Elemente aus der aktuellen Ansicht der Sammlung. Welche Elemente als
„anzeigbar“ betrachtet werden, hängt von den gegenwärtigen Filter- und Bereichseinstellungen
des aktuellen Iterators ab. Daher werden möglicherweise nicht alle Elemente aus der Sammlung
entfernt, wenn Sie diese Methode aufrufen. Wenn Sie alle Elemente unabhängig von der Ansicht
des aktuellen Iterators aus der Sammlung löschen möchten, setzen Sie DataSet.removeAll()
ein.
DataSet-Komponente (nur Flash Professional)
229
Wenn DataSet.logChanges auf true eingestellt ist und Sie diese Methode aufrufen, wird in
DataSet.deltaPacket für jedes einzelne Element in der Sammlung der Eintrag „remove“
eingefügt.
Beispiel
Im folgenden Beispiel werden alle Elemente aus der aktuellen Ansicht der DataSet-Sammlung
entfernt. Da die Eigenschaft logChanges auf true eingestellt ist, wird der Vorgang protokolliert.
meinDataSet.logChanges= true;
meinDataSet.clear();
Siehe auch
DataSet.deltaPacket, DataSet.logChanges
DataSet.createItem()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.createItem([itemData])
Parameter
itemData
Mit dem Element verknüpfte Daten. Dieser Parameter ist optional.
Rückgaben
Das neu erstellte Element.
Beschreibung
Methode; erstellt ein Element, das nicht mit der Sammlung verknüpft ist. Sie können die erstellte
Objektklasse mit der Eigenschaft DataSet.itemClassName angeben. Wenn Sie keinen Wert für
DataSet.itemClassName festlegen und den Parameter itemData auslassen, wird ein anonymes
Objekt erstellt. Die Eigenschaften dieses anonymen Objekts werden anhand des zurzeit von
DataSet.schema angegebenen Schemas auf die Standardwerte eingestellt.
Wenn diese Methode aufgerufen wird, werden alle Listener für das Ereignis DataSet.newItem
benachrichtigt; die Listener können dann das Element manipulieren, bevor es von dieser
Methode zurückgegeben wird. Die angegebenen optionalen Elementdaten dienen zur
Initialisierung der Klasse, die mit der Eigenschaft DataSet.itemClassName festgelegt wurde,
oder aber sie werden als das Element selbst betrachtet, falls DataSet.itemClassName leer ist.
Es wird eine Ausnahme des Typs DataSetError ausgegeben, wenn die mit der Eigenschaft
angegebene Klasse nicht geladen werden kann.
DataSet.itemClassName
230
Kapitel 4: Komponenten-Referenz
Beispiel
contact.itemClassName = "Contact";
var itemData = new XML("<contact_info><name>John Smith</
name><phone>555.555.4567</phone><zip><pre>94025</pre><post>0556</post></
zip></contact_info>");
contact.addItem(contact.createItem(itemData));
Siehe auch
DataSet.itemClassName, DataSet.newItem, DataSet.schema
DataSet.currentItem
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.currentItem
Beschreibung
Eigenschaft (schreibgeschützt); gibt das aktuelle Element der DataSet-Sammlung zurück oder,
falls die Sammlung leer ist bzw. die Ansicht der Sammlung des aktuellen Iterators keine Elemente
enthält, den Wert null.
Mit dieser Eigenschaft können Sie direkt auf das Element innerhalb der Sammlung zugreifen.
Wenn Sie direkt auf das Objekt zugreifen und es verändern, werden diese Änderungen (in der
Eigenschaft DataSet.deltaPacket) nicht protokolliert, und den Eigenschaften dieses Objekts
werden keine der Schema-Einstellungen zugewiesen.
Beispiel
Im folgenden Beispiel wird der Wert der Eigenschaft customerName angezeigt, die in dem
aktuellen Element des Datensatzes customerData definiert ist.
trace(customerData.currentItem.customerName);
DataSet.dataProvider
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.dataProvider
Beschreibung
Eigenschaft; die DataProvider-Schnittstelle für diesen Datensatz. Diese Eigenschaft liefert Daten
an UI-Steuerungen wie die List- und DataGrid-Komponenten.
DataSet-Komponente (nur Flash Professional)
231
Beispiel
Mit dem folgenden Code wird die Eigenschaft dataProvider eines DataSet-Objekts der
entsprechenden Eigenschaft einer DataGrid-Komponente zugewiesen.
meinGrid.dataProvider = meinDataSet.dataProvider;
DataSet.deltaPacket
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.deltaPacket
Beschreibung
Eigenschaft; gibt ein DeltaPacket-Objekt zurück, das alle Änderungsoperationen enthält, die an
der dataSet-Sammlung und deren Elementen vorgenommen wurden. Diese Eigenschaft ist
null, bis DataSet.applyUpdates() für dataSet aufgerufen wird.
Wenn DataSet.applyUpdates() aufgerufen wird, wird dem DeltaPacket-Objekt eine
Transaktions-ID zugewiesen. Diese Transaktions-ID ermöglicht die Identifizierung des
DeltaPacket-Objekts auf seinem Weg vom Server und zurück zum Client. Alle nachfolgenden
Zuweisungen eines DeltaPacket-Objekts mit einer entsprechenden Transaktions-ID zur
Eigenschaft deltaPacket werden als Reaktion des Servers auf die zuvor gesendeten Änderungen
interpretiert. Wenn ein DeltaPacket-Objekt mit einer entsprechenden ID vorliegt, wird die
Sammlung aktualisiert, und die in dem Paket angegebenen Fehler werden gemeldet.
Fehler- oder Servermeldungen werden an die Listener des Ereignisses DataSet.resolveDelta
weitergeleitet. Beachten Sie, dass die DataSet.logChanges-Einstellungen ignoriert werden,
wenn DataSet.deltaPacket ein DeltaPacket-Objekt mit einer entsprechenden ID zugewiesen
wird. Liegt ein DeltaPacket-Objekt ohne entsprechende Transaktions-ID vor, wird die Sammlung
aktualisiert, als würde die DataSet-API direkt verwendet. Je nach der aktuellen
DataSet.logChanges -Einstellung für dataSet und das DeltaPacket-Objekt können hierdurch
zusätzliche Delta-Einträge entstehen.
Es wird eine Ausnahme des Typs DataSetError ausgegeben, wenn einem DeltaPacket-Objekt
eine entsprechende Transaktions-ID zugewiesen wird und eines der Elemente in dem neu
zugewiesenen DeltaPacket-Objekt in dem ursprünglichen DeltaPacket-Objekt nicht gefunden
werden kann.
Siehe auch
DataSet.applyUpdates(), DataSet.logChanges, DataSet.resolveDelta
232
Kapitel 4: Komponenten-Referenz
DataSet.deltaPacketChanged
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
on(deltaPacketChanged) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.deltaPacketChanged = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("deltaPacketChanged", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn die Eigenschaft deltaPacket des angegebenen DataSetObjekts geändert wurde und einsatzbereit ist.
Siehe auch
DataSet.deltaPacket
DataSet.disableEvents()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.disableEvents()
Rückgaben
Keine.
Beschreibung
Methode; deaktiviert Ereignisse für das DataSet-Objekt. Sind Ereignisse deaktiviert, werden keine
UI-Steuerungen (wie etwa eine DataGrid-Komponente) aktualisiert, wenn Elemente in der
Sammlung geändert werden oder wenn mit dem DataSet-Objekt ein anderes Element in der
Sammlung angesteuert wird.
DataSet.enableEvents() dient zum erneuten Aktivieren der Ereignisse. Die Methode
disableEvents() kann mehrmals aufgerufen werden; enableEvents() muss dann genauso
oft
aufgerufen werden, um die Weitergabe von Ereignissen zu reaktivieren.
DataSet-Komponente (nur Flash Professional)
233
Beispiel
Im folgenden Beispiel werden zuerst Ereignisse deaktiviert und dann erst Elemente in der
Sammlung verändert. Dadurch wird verhindert, dass das DataSet-Objekt die Steuerungen
aktualisiert und somit die Leistung beeinträchtigt.
// Ereignisse für den Datensatz deaktivieren.
meinDataSet.disableEvents();
meinDataSet.last();
while(meinDataSet.hasPrevious()) {
var price = meinDataSet.price;
price = price * 0,5; // Alles zum halben Preis!
meinDataSet.price = price;
meinDataSet.previous();
}
// Datensatz zur Aktualisierung der Steuerungen auffordern.
meinDataSet.enableEvents();
Siehe auch
DataSet.enableEvents()
DataSet.enableEvents()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.enableEvents()
Rückgaben
Keine.
Beschreibung
Methode; reaktiviert Ereignisse für das DataSet-Objekt, nachdem sie durch einen Aufruf an
DataSet.disableEvents() deaktiviert wurden. Wenn Sie Ereignisse für das DataSet-Objekt
reaktivieren möchten, müssen Sie die Methode enableEvents() mindestens genau so oft
aufrufen, wie disableEvents() zuvor aufgerufen wurde.
Beispiel
Im folgenden Beispiel werden zuerst Ereignisse deaktiviert und dann erst Elemente in der
Sammlung verändert. Dadurch wird verhindert, dass das DataSet-Objekt die Steuerungen
aktualisiert und somit die Leistung beeinträchtigt.
234
Kapitel 4: Komponenten-Referenz
// Ereignisse für den Datensatz deaktivieren.
meinDataSet.disableEvents();
meinDataSet.last();
while(meinDataSet.hasPrevious()) {
var price = meinDataSet.price;
price = price * 0,5; // Alles zum halben Preis!
meinDataSet.price = price;
meinDataSet.previous();
}
// Datensatz zur Aktualisierung der Steuerungen auffordern.
meinDataSet.enableEvents();
Siehe auch
DataSet.disableEvents()
DataSet.filtered
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.filtered
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob die Daten in dem aktuellen Iterator gefiltert
sind. Der Wert true bedeutet, dass die von DataSet.filterFunc angegebene Filterfunktion für
jedes Element der Sammlung aufgerufen wird.
Beispiel
Im folgenden Beispiel ist die Filterung für das DataSet-Objekt employee_ds aktiviert.
Angenommen, jeder Eintrag in der DataSet-Sammlung enthält ein Feld namens empType. Die
folgende Filterfunktion gibt true zurück, wenn das Feld empType im aktuellen Element auf
"management" eingestellt wurde; andernfalls gibt sie den Wert false zurück.
employee_ds.filtered = true;
employee_ds.filterFunc = function(item:Object) {
// Angestellte herausfiltern, die dem Management angehören.
return(item.empType != "management");
}
Siehe auch
DataSet.filterFunc
DataSet-Komponente (nur Flash Professional)
235
DataSet.filterFunc
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.filterFunc = function(item:Object) {
// true|false zurückgeben;
};
Beschreibung
Eigenschaft; gibt eine Funktion an, die bestimmt, welche Elemente in der aktuellen Ansicht der
Sammlung berücksichtigt werden. Wenn DataSet.filtered auf true eingestellt ist, wird die
dieser Eigenschaft zugewiesene Funktion für jedes Übertragungsobjekt in der Sammlung
aufgerufen. Für jedes Element, das an die Funktion übergeben wird, sollte der Wert true
zurückgegeben werden, wenn das Element in der aktuellen Ansicht berücksichtigt werden soll,
bzw. false, wenn das Element nicht angezeigt werden soll.
Beispiel
Im folgenden Beispiel ist die Filterung für das DataSet-Objekt employee_ds aktiviert. Die
angegebene Filterfunktion gibt true zurück, wenn das Feld empType in allen Elementen auf
"management" eingestellt ist; andernfalls gibt sie false zurück.
employee_ds.filtered = true;
employee_ds.filterFunc = function(item:Object) {
// Angestellte herausfiltern, die dem Management angehören.
return(item.empType != "management");
}
Siehe auch
DataSet.filtered
DataSet.find()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.find(searchValues)
Parameter
searchValues Ein Array mit einem oder mehreren Feldwerten, nach denen die aktuelle
Sortierung durchsucht werden soll.
236
Kapitel 4: Komponenten-Referenz
Rückgaben
Gibt true zurück, wenn die Werte gefunden wurden; andernfalls wird false zurückgegeben
Beschreibung
Methode; durchsucht die aktuelle Ansicht der Sammlung nach einem Element mit den in
searchValues angegebenen Feldwerten. Welche Elemente sich in der aktuellen Ansicht
befinden, hängt von den aktuellen Filter- und Bereichseinstellungen ab. Wenn ein Element
gefunden wird, wird es zum aktuellen Element des DataSet-Objekts.
Die Reihenfolge der in searchValues angegebenen Werte muss mit der Feldliste der aktuellen
Sortierung exakt übereinstimmen (siehe Beispiel).
Wenn die aktuelle Sortierung nicht eindeutig ist, ist das gefundene Übertragungsobjekt
möglicherweise nicht das einzige seiner Art. Die erste oder letzte Fundstelle eines
Übertragungsobjekts in einer nicht eindeutigen Sortierung lässt sich mit DataSet.findFirst()
oder DataSet.findLast() identifizieren.
Die Konvertierung der Daten basiert auf dem Typ des zugrunde liegenden Feldes sowie auf dem
in dem Array angegebenen Typ. Wenn Sie beispielsweise ["05-02-02"] als Suchwert angeben,
wird der Wert anhand des zugrunde liegenden Datumsfeldes und anhand der Methode
DataType.setAsString() des Wertes konvertiert. Wenn Sie [new Date().getTime()]
angeben, wird die Methode DataType.setAsNumber() des Datums verwendet.
Beispiel
Im folgenden Beispiel wird ein Element in der aktuellen Sammlung gesucht, dessen Felder name
und id die Werte "Bobby" und 105 enthalten. Wenn das Element gefunden wird, wird mit der
Methode DataSet.getItemId() die eindeutige ID des Elements in der Sammlung abgerufen,
und mit der Methode DataSet.locateById() wird der aktuelle Iterator zu diesem Element
verschoben.
var studentID:String = null;
studentData.addSort("id", ["name","id"]);
// Übertragungsobjekt mit den Werten "Bobby" and 105 suchen.
// Die Reihenfolge der Suchfelder muss mit der Reihenfolge
// der Felder in der addSort()-Methode übereinstimmen.
if(studentData.find(["Bobby", 105])) {
studentID = studentData.getItemId();
}
// Mit der locateByID()-Methode den aktuellen
// Iterator zu dem Element in der Sammlung verschieben, dessen ID studentID
// lautet.
if(studentID != null) {
studentData.locateById(studentID);
}
Siehe auch
DataSet.applyUpdates(), DataSet.getItemId(), DataSet.locateById()
DataSet-Komponente (nur Flash Professional)
237
DataSet.findFirst()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.findFirst(searchValues)
Parameter
searchValues Ein Array mit einem oder mehreren Feldwerten, nach denen die aktuelle
Sortierung durchsucht werden soll.
Rückgaben
Gibt true zurück, wenn die Elemente gefunden wurden; andernfalls wird false zurückgegeben.
Beschreibung
Methode; durchsucht die aktuelle Ansicht der Sammlung nach dem ersten Element mit den in
searchValues angegebenen Feldwerten. Welche Elemente sich in der aktuellen Ansicht
befinden, hängt von den aktuellen Filter- und Bereichseinstellungen ab.
Die Reihenfolge der in searchValues angegebenen Werte muss mit der Feldliste der aktuellen
Sortierung exakt übereinstimmen (siehe Beispiel).
Die Konvertierung der Daten basiert auf dem Typ des zugrunde liegenden Feldes sowie auf dem
in dem Array angegebenen Typ. Wenn der Suchwert beispielsweise ["05-02-02"] lautet, wird
der Wert anhand des zugrunde liegenden Datumsfeldes und anhand der Methode setAsString()
des Datums konvertiert. Wenn der angegebene Wert [new Date().getTime()] lautet, wird die
Methode setAsNumber() des Datums verwendet.
Beispiel
Im folgenden Beispiel wird die aktuelle Sammlung nach dem ersten Element durchsucht, dessen
Felder name und age die Werte "Bobby" und "13" enthalten. Wenn das Element gefunden wird,
wird mit DataSet.getItemId() die eindeutige ID des Elements in der Sammlung abgerufen,
und mit DataSet.locateById() wird der aktuelle Iterator zu diesem Element verschoben.
var studentID:String = null;
studentData.addSort("nameAndAge", ["name", "age"]);
// Erstes Übertragungsobjekt mit den angegebenen Werten suchen.
// Die Reihenfolge der Suchfelder muss mit der Reihenfolge
// der Felder in der addSort()-Methode übereinstimmen.
if(studentData.findFirst(["Bobby", "13"])) {
studentID = studentData.getItemId();
}
238
Kapitel 4: Komponenten-Referenz
// Mit der locateByID()-Methode den aktuellen
// Iterator zu dem Element in der Sammlung verschieben, dessen ID studentID
// lautet.
if(studentID != null) {
studentData.locateById(studentID);
}
Siehe auch
DataSet.applyUpdates(), DataSet.getItemId(), DataSet.locateById()
DataSet.findLast()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.findLast(searchValues)
Parameter
searchValues Ein Array mit einem oder mehreren Feldwerten, nach denen die aktuelle
Sortierung durchsucht werden soll.
Rückgaben
Gibt true zurück, wenn die Elemente gefunden wurden; andernfalls wird false zurückgegeben.
Beschreibung
Methode; durchsucht die aktuelle Ansicht der Sammlung nach dem letzten Element mit den in
searchValues angegebenen Feldwerten. Welche Elemente sich in der aktuellen Ansicht
befinden, hängt von den aktuellen Filter- und Bereichseinstellungen ab.
Die Reihenfolge der in searchValues angegebenen Werte muss mit der Feldliste der aktuellen
Sortierung exakt übereinstimmen (siehe Beispiel).
Die Konvertierung der Daten basiert auf dem Typ des zugrunde liegenden Feldes sowie auf dem
in dem Array angegebenen Typ. Wenn der Suchwert beispielsweise ["05-02-02"] lautet, wird
der Wert anhand des zugrunde liegenden Datumsfeldes und anhand der Methode
setAsString() des Datums konvertiert. Wenn der angegebene Wert [new Date().getTime()]
lautet, wird die Methode setAsNumber() des Datums verwendet.
Beispiel
Im folgenden Beispiel wird die aktuelle Sammlung nach dem letzten Element durchsucht, dessen
Felder name und age die Werte "Bobby" und "13" enthalten. Wenn das Element gefunden wird,
wird mit der Methode DataSet.getItemId() die eindeutige ID des Elements in der Sammlung
abgerufen, und mit der Methode DataSet.locateById() wird der aktuelle Iterator zu diesem
Element verschoben.
DataSet-Komponente (nur Flash Professional)
239
var studentID:String = null;
studentData.addSort("nameAndAge", ["name", "age"]);
// Letztes Übertragungsobjekt mit den angegebenen Werten suchen.
// Die Reihenfolge der Suchfelder muss mit der Reihenfolge
// der Felder in der addSort()-Methode übereinstimmen.
if(studentData.findLast(["Bobby", "13"])) {
studentID = studentData.getItemId();
}
// Mit der locateByID()-Methode den aktuellen
// Iterator zu dem Element in der Sammlung verschieben, dessen ID studentID
// lautet.
if(studentID != null) {
studentData.locateById(studentID);
}
Siehe auch
DataSet.applyUpdates(), DataSet.getItemId(), DataSet.locateById()
DataSet.first()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.first()
Rückgaben
Keine.
Beschreibung
Methode; erklärt das erste Element in der aktuellen Ansicht der Sammlung zum aktuellen
Element. Welche Elemente sich in der aktuellen Ansicht befinden, hängt von den aktuellen Filterund Bereichseinstellungen ab.
Beispiel
Mit dem folgenden Code wird der Datensatz userData zum ersten Element der Sammlung
bewegt, und dann wird der Wert der in diesem Element enthaltenen Eigenschaft price mit Hilfe
der Eigenschaft DataSet.currentItem angezeigt.
inventoryData.first();
trace("Der Preis für das erste Element beträgt" +
inventoryData.currentItem.price);
Siehe auch
DataSet.last()
240
Kapitel 4: Komponenten-Referenz
DataSet.getItemId()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.getItemId([index])
Parameter
Eine Zahl, die angibt, für welches Element in der aktuellen Elementansicht die
zugehörige ID abgerufen werden soll. Dieser Parameter ist optional.
index
Rückgaben
Ein String.
Beschreibung
Methode; gibt die ID des aktuellen Elements in der Sammlung bzw. des mit index festgelegten
Elements zurück. Die ID ist nur innerhalb dieser Sammlung eindeutig und wird automatisch von
DataSet.addItem() zugewiesen.
Beispiel
Mit dem folgenden Code wird die eindeutige ID des aktuellen Elements in der Sammlung
abgerufen und dann im Bedienfeld Ausgabe angezeigt.
var itemNo:String = meinDataSet.getItemId();
trace("Employee id("+ itemNo+ ")");
Siehe auch
DataSet.addItem()
DataSet.getIterator()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.getIterator()
Rückgaben
Ein ValueListIterator-Objekt.
DataSet-Komponente (nur Flash Professional)
241
Beschreibung
Methode; gibt einen neuen Iterator für diese Sammlung zurück. Der neue Iterator ist ein Klon
des gegenwärtig eingesetzten Iterators und reproduziert auch dessen aktuelle Position innerhalb
der Sammlung. Diese Methode sollte von erfahrenen Programmierern eingesetzt werden, die
gleichzeitig auf mehrere Ansichten einer Sammlung zugreifen möchten.
Beispiel
meinIterator:ValueListIterator = meinDataSet.getIterator();
meinIterator.sortOn(["name"]);
meinIterator.find({name:"John Smith"}).phone = "555-1212";
DataSet.hasNext()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.hasNext()
Rückgaben
Ein Boolescher Wert.
Beschreibung
Methode; gibt false zurück, wenn der aktuelle Iterator sich am Ende seiner Ansicht der
Sammlung befindet; andernfalls wird true zurückgegeben.
Beispiel
Im folgenden Beispiel werden alle Elemente in der aktuellen Ansicht der Sammlung durchlaufen
(vom ersten Element aus), und für jedes Element wird die Eigenschaft price berechnet.
meinDataSet.first();
while(meinDataSet.hasNext()) {
var price = meinDataSet.currentItem.price;
price = price * 0,5; // Alles zum halben Preis!
meinDataSet.currentItem.price = price;
meinDataSet.next();
}
Siehe auch
DataSet.currentItem, DataSet.first(), DataSet.next()
242
Kapitel 4: Komponenten-Referenz
DataSet.hasPrevious()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.hasPrevious()
Rückgaben
Ein Boolescher Wert.
Beschreibung
Methode; gibt false zurück, wenn der aktuelle Iterator sich am Anfang seiner Ansicht der
Sammlung befindet; andernfalls wird true zurückgegeben.
Beispiel
Im folgenden Beispiel werden alle Elemente in der aktuellen Ansicht der Sammlung durchlaufen
(vom letzten Element aus), und für jedes Element wird die Eigenschaft price berechnet.
meinDataSet.last();
while(meinDataSet.hasPrevious()) {
var price = meinDataSet.currentItem.price;
price = price * 0,5; // Alles zum halben Preis!
meinDataSet.currentItem.price = price;
meinDataSet.previous();
}
Siehe auch
DataSet.currentItem, DataSet.skip(), DataSet.previous()
DataSet.hasSort()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.hasSort(sortName)
Parameter
sortName
Ein String, der den Namen einer mit DataSet.addSort() erstellten Sortierung
enthält.
Rückgaben
Ein Boolescher Wert.
DataSet-Komponente (nur Flash Professional)
243
Beschreibung
Methode; gibt true zurück, wenn die von sortName angegebene Sortierung vorhanden ist;
andernfalls wird false zurückgegeben.
Beispiel
Mit dem folgenden Code wird getestet, ob eine Sortierung namens „customerSort“ vorhanden ist.
Wenn die Sortierung bereits existiert, wird sie mit Hilfe der Methode DataSet.useSort() zur
aktuellen Sortierung erklärt. Wenn eine solche Sortierung nicht existiert, wird sie mit Hilfe der
Methode DataSet.addSort() erstellt.
if(meinDataSet.hasSort("customerSort"))
meinDataSet.useSort("customerSort");
} else {
meinDataSet.addSort("customerSort", ["customer"],
DataSetIterator.Descending);
}
Siehe auch
DataSet.applyUpdates(), DataSet.useSort()
DataSet.isEmpty()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.isEmpty()
Rückgaben
Ein Boolescher Wert.
Beschreibung
Methode; gibt true zurück, wenn das angegebene DataSet-Objekt keine Elemente enthält (d. h.,
wenn dataSet.length == 0).
Beispiel
Im folgenden Beispiel wird eine Schaltfläche zum Löschen von Einträgen (nicht angezeigt)
deaktiviert, wenn das zugehörige DataSet-Objekt leer ist.
if(userData.isEmpty()){
delete_btn.enabled = false;
}
Siehe auch
DataSet.length
244
Kapitel 4: Komponenten-Referenz
DataSet.items
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinDataSet.items
Beschreibung
Eigenschaft; ein von meinDataSet verwaltetes Element-Array.
Beispiel
Im folgenden Beispiel wird der Eigenschaft items eines DataSet-Objekts ein Objekt-Array
zugewiesen.
var recData = [{id:0, firstName:"Mick", lastName:"Jones"},
{id:1, firstName:"Joe", lastName:"Strummer"},
{id:2, firstName:"Paul", lastName:"Simonon"}];
meinDataSet.items = recData;
DataSet.itemClassName
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.itemClassName
Beschreibung
Eigenschaft; ein String mit dem Namen der Klasse, die erstellt werden sollte, wenn der Sammlung
Elemente hinzugefügt werden. Die von Ihnen angegebene Klasse muss die TransferObjectSchnittstelle wie im folgenden Beispiel gezeigt implementieren.
interface mx.data.to.TransferObject {
function clone():Object;
function getPropertyData():Object;
function setPropertyData(propData:Object):Void;
}
Sie können diese Eigenschaft auch im Eigenschafteninspektor einstellen.
DataSet-Komponente (nur Flash Professional)
245
Damit die angegebene Klasse zur Laufzeit verfügbar ist, müssen Sie außerdem im Code der SWFDatei einen vollständig qualifizierten Verweis auf diese Klasse erstellen, wie im folgenden Beispiel
gezeigt:
var meinItem:mein.package.meinItem;
Wenn Sie versuchen, den Wert dieser Eigenschaft zu ändern, nachdem das Array DataSet.items
geladen wurde, wird eine Ausnahme des Typs DataSetError ausgegeben.
Weitere Informationen zur TransferObject-Schnittstelle finden Sie unter „TransferObjectSchnittstelle“ auf Seite 581.
DataSet.iteratorScrolled
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
on(iteratorScrolled) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.iteratorScrolled = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("iteratorScrolled", listenerObject)
Beschreibung
Ereignis; wird sofort generiert, nachdem der aktuelle Iterator beim Scrollen ein neues Element in
der Sammlung angesteuert hat.
Das Ereignisobjekt (eventObj) enthält folgende Eigenschaften:
target
type
Das DataSet-Objekt, das das Ereignis generiert hat.
Der String "iteratorScrolled".
scrolled Eine Zahl, die angibt, wie viele Elemente der Iterator beim Scrollen durchlaufen hat.
Positive Werte bedeuten, dass der Iterator sich in der Sammlung vorwärts bewegt hat, und
negative Werte, dass er sich rückwärts bewegt hat.
Beispiel
Im folgenden Beispiel wird die Statusleiste einer Anwendung (nicht angezeigt) aktualisiert, wenn
sich die Position des aktuellen Iterators ändert.
on(iteratorScrolled) {
var dataSet:mx.data.components.DataSet = eventObj.target;
var statusBarText = dataSet.fullname+" Acct #:
"+dataSet.getField("acctnum").getAsString();
setStatusBar(statusBarText);
}
246
Kapitel 4: Komponenten-Referenz
DataSet.last()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.last()
Rückgaben
Keine.
Beschreibung
Methode; erklärt das letzte Element in der aktuellen Ansicht der Sammlung zum aktuellen
Element.
Beispiel
Der folgende Code, der mit einer Button-Komponente verknüpft ist, geht zu dem letzten
Element in der DataSet-Sammlung.
function goLast(eventObj:obj) {
inventoryData.last();
}
goLast_btn.addEventListener("click", goLast);
Siehe auch
DataSet.first()
DataSet.length
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.length
Beschreibung
Eigenschaft (schreibgeschützt); gibt an, wie viele Elemente sich in der aktuellen Ansicht der
Sammlung befinden. Die Anzahl der anzeigbaren Elemente hängt von den aktuellen Filter- und
Bereichseinstellungen ab.
DataSet-Komponente (nur Flash Professional)
247
Beispiel
Im folgenden Beispiel wird eine Warnung eingeblendet, wenn ein Benutzer mit einer
bearbeitbaren DataGrid-Komponente oder auf andere Weise in einem Datensatz nicht genügend
Einträge erstellt hat.
if(meinDataSet.length < MIN_REQUIRED) {
alert("Sie benötigen mindestens "+MIN_REQUIRED);
}
DataSet.loadFromSharedObj()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.loadFromSharedObj(objName, [localPath])
Parameter
Ein String, der den Namen des abzurufenden gemeinsamen Objekts angibt. Der
Name darf zwar Schrägstriche enthalten (z. B. „Mitarbeiter/Adressen“), aber weder Leerzeichen
noch eines der folgenden Zeichen:
objName
~ % & \ ; : " ' , < > ? #
localPath Ein optionaler Stringparameter mit dem vollständigen oder unvollständigen Pfad
zu der SWF-Datei, die das gemeinsame Objekt erstellt hat. Anhand dieses Strings lässt sich
feststellen, wo das gemeinsame Objekt auf dem Computer gespeichert wurde. Der Standardwert
ist der vollständige Pfadname der SWF-Datei.
Rückgaben
Keine.
Beschreibung
Methode; lädt alle relevanten Daten, die zur Wiederherstellung dieser DataSet-Sammlung aus
einem gemeinsamen Objekt erforderlich sind. Mit DataSet.saveToSharedObj() können Sie
eine DataSet-Sammlung in einem gemeinsamen Objekt speichern. Die Methode
DataSet.loadFromSharedObject() überschreibt alle Daten oder anstehenden Änderungen, die
diese DataSet-Sammlung möglicherweise enthält. Beachten Sie, dass der Instanzname der
DataSet-Sammlung zur Identifizierung der Daten innerhalb des angegebenen gemeinsamen
Objekts dient.
Diese Methode gibt eine Ausnahme des Typs DataSetError aus, wenn das angegebene
gemeinsame Objekt unauffindbar ist oder wenn beim Abruf der Daten aus dem Objekt Probleme
auftreten.
Beispiel
Im folgenden Beispiel wird versucht, ein gemeinsames Objekt namens webapp/customerInfo zu
laden, das mit dem Datensatz meinDataSet verknüpft ist. Die Methode wird in einem
Codeblock des Typs try...catch aufgerufen.
248
Kapitel 4: Komponenten-Referenz
try {
meinDataSet.loadFromSharedObj("webapp/customerInfo");
}
catch(e:DataSetError) {
trace("Gemeinsames Objekt kann nicht geladen werden.");
}
Siehe auch
DataSet.saveToSharedObj()
DataSet.locateById()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.locateById(id)
Parameter
id
Ein Stringbezeichner für das in der Sammlung zu suchende Element.
Rückgaben
Ein Boolescher Wert.
Beschreibung
Methode; bewegt den aktuellen Iterator zu dem Sammlungselement, dessen ID mit id
übereinstimmt. Diese Methode gibt true zurück, wenn die angegebene ID mit einem Element in
der Sammlung übereinstimmt; anderenfalls wird false zurückgegeben.
Beispiel
Im folgenden Beispiel wird mit DataSet.find() ein Element in der aktuellen Sammlung
gesucht, dessen Felder name und id die Werte "Bobby" und 105 enthalten. Wenn das Element
gefunden wird, wird mit der Methode DataSet.getItemId() die eindeutige ID dieses Elements
abgerufen, und mit der Methode DataSet.locateById() wird der aktuelle Iterator zu diesem
Element bewegt.
var studentID:String = null;
studentData.addSort("id", ["name","id"]);
if(studentData.find(["Bobby", 105])) {
studentID = studentData.getItemId();
studentData.locateById(studentID);
}
Siehe auch
DataSet.applyUpdates(), DataSet.find(), DataSet.getItemId()
DataSet-Komponente (nur Flash Professional)
249
DataSet.logChanges
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.logChanges
Beschreibung
Eigenschaft; Boolescher Wert, der angibt, ob Änderungen an dem Datensatz oder dessen
Elementen in DataSet.deltaPacket aufgezeichnet (true) bzw. nicht aufgezeichnet (false)
werden sollen.
Wenn der Wert dieser Eigenschaft true lautet, werden alle sammlungs- oder elementspezifischen
Vorgänge protokolliert. Zu den sammlungsspezifischen Änderungen gehören das Hinzufügen von
Elementen sowie das Entfernen von Elementen aus der Sammlung. Zu den elementspezifischen
Vorgängen gehören Änderungen an Elementeigenschaften sowie alle Methodenaufrufe, die mit
Hilfe der DataSet-Komponente für Elemente durchgeführt werden.
Beispiel
Im folgenden Beispiel wird die Protokollierung für das DataSet-Objekt userData deaktiviert.
userData.logChanges = false;
Siehe auch
DataSet.deltaPacket
DataSet.modelChanged
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Beschreibung
on(modelChanged) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.modelChanged = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("modelChanged", listenerObject)
250
Kapitel 4: Komponenten-Referenz
Beschreibung
Ereignis; Broadcastübertragung, wenn die Sammlung sich auf irgendeine Weise ändert, z. B.
wenn Elemente der Sammlung hinzugefügt bzw. daraus entfernt werden, wenn einer
Elementeigenschaft ein anderer Wert zugewiesen wurde oder wenn die Sammlung gefiltert oder
sortiert wird.
Das Ereignisobjekt (eventObj) enthält folgende Eigenschaften:
Das DataSet-Objekt, das das Ereignis generiert hat.
target
type
Der String "iteratorScrolled".
firstItem Der Index (Zahl) des ersten Elements in der Sammlung, auf das die Änderung sich
ausgewirkt hat.
lastItem Der Index (Zahl) des letzten Elements in der Sammlung, auf das die Änderung sich
ausgewirkt hat (stimmt mit firstItem überein, wenn nur ein Element betroffen war).
fieldName
undefined,
Ein String mit dem Namen des betroffenen Feldes. Diese Eigenschaft ist
es sei denn, eine Eigenschaft des DataSet-Objekts wurde geändert.
Ein String mit einer Beschreibung der durchgeführten Änderung. Dieser Parameter
kann folgende Werte enthalten:
eventName
Stringwert
Beschreibung
"addItems"
Mehrere Elemente wurden hinzugefügt.
"filterModel"
Das Modell wurde gefiltert, und die Ansicht muss aktualisiert (und die
Bildlaufposition zurückgesetzt) werden.
"removeItems"
Mehrere Elemente wurden gelöscht.
"schemaLoaded"
Die Felddefinition des Datenproviders wurde deklariert.
"sort"
Die Daten wurden sortiert.
"updateAll"
Die gesamte Ansicht mit Ausnahme der Bildlaufposition muss aktualisiert
werden.
"updateColumn"
Eine Felddefinition innerhalb des Datenproviders muss vollständig aktualisiert
werden.
"updateField"
Ein Feld in einem Element wurde verändert und muss aktualisiert werden.
"updateItems"
Mehrere Elemente müssen aktualisiert werden.
Beispiel
Im folgenden Beispiel wird eine Schaltfläche zum Löschen von Elementen deaktiviert, wenn die
Elemente aus der Sammlung entfernt wurden und das DataSet-Zielobjekt nun leer ist.
on(modelChanged) {
delete_btn.enabled = ((eventObj.eventName == "removeItems") &&
(eventObj.target.isEmpty()));
}
Siehe auch
DataSet.isEmpty()
DataSet-Komponente (nur Flash Professional)
251
DataSet.newItem
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
on(newItem) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.newItem = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("newItem", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn mit DataSet.createItem() ein neues
Übertragungsobjekt erstellt wird. Ein Listener für dieses Ereignis kann an dem Element
Änderungen vornehmen, bevor das Element der Sammlung hinzugefügt wird.
Das Ereignisobjekt (eventObj) enthält folgende Eigenschaften:
target
Das DataSet-Objekt, das das Ereignis generiert hat.
type
Der String "iteratorScrolled".
item
Ein Verweis auf das erstellte Element.
Beispiel
Im folgenden Beispiel wird ein neu erstelltes Element geändert, bevor es der Sammlung
hinzugefügt wird.
function newItemEvent(evt:Object):Void {
var employee:Object = evt.item;
employee.name = "newGuy";
// Eigenschaftendaten sind XML
employee.zip =
employee.getPropertyData().firstChild.childNodes[1].attributes.zip;
}
employees_ds.addEventListener("newItem", newItemEvent);
DataSet.next()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.next()
252
Kapitel 4: Komponenten-Referenz
Rückgaben
Keine.
Beschreibung
Methode; erklärt das nächste Element in der aktuellen Ansicht der Sammlung zum aktuellen
Element. Welche Elemente sich in der aktuellen Ansicht befinden, hängt von den aktuellen Filterund Bereichseinstellungen ab.
Beispiel
Im folgenden Beispiel werden alle Elemente in einem DataSet-Objekt ausgehend vom ersten
Element durchlaufen, und es wird für ein Feld jedes Elements eine Berechnung durchgeführt.
meinDataSet.first();
while(meinDataSet.hasNext()) {
var price = meinDataSet.price;
price = price * 0,5; // Alles zum halben Preis!
meinDataSet.price = price;
meinDataSet.next();
}
Siehe auch
DataSet.first(), DataSet.hasNext()
DataSet.previous()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.previous()
Rückgaben
Keine.
Beschreibung
Methode; erklärt das vorherige Element in der aktuellen Ansicht der Sammlung zum aktuellen
Element. Welche Elemente sich in der aktuellen Ansicht befinden, hängt von den aktuellen Filterund Bereichseinstellungen ab.
Im folgenden Beispiel werden alle Elemente in der aktuellen Ansicht der Sammlung ausgehend
vom letzten Element durchlaufen, und es wird für ein Feld jedes Elements eine Berechnung
durchgeführt.
DataSet-Komponente (nur Flash Professional)
253
meinDataSet.last();
while(meinDataSet.hasPrevious()) {
var price = meinDataSet.price;
price = price * 0,5; // Alles zum halben Preis!
meinDataSet.price = price;
meinDataSet.previous();
}
Siehe auch
DataSet.first(), DataSet.hasNext()
DataSet.properties
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.properties
Beschreibung
Eigenschaft (schreibgeschützt); gibt ein Objekt zurück, das alle für ein beliebiges
Übertragungsobjekt in dieser Sammlung verfügbaren Eigenschaften (Felder) enthält.
Beispiel
Im folgenden Beispiel werden alle Namen der Eigenschaften angezeigt, die das DataSet-Objekt
meinDataSet enthält.
for(var i in meinDataSet.properties) {
trace("Feld '"+i+ "' hat den Wert "+ meinDataSet.properties[i]);
}
DataSet.readOnly
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.readOnly
Beschreibung
Eigenschaft; Boolescher Wert, der angibt, ob diese Sammlung geändert werden kann (false)
oder ob sie schreibgeschützt ist (true). Wenn Sie diese Eigenschaft auf true einstellen, kann die
Sammlung nicht aktualisiert werden.
Sie können diese Eigenschaft auch im Eigenschafteninspektor einstellen.
254
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird das DataSet-Objekt meinDataSet schreibgeschützt; danach wird
versucht, den Wert einer Eigenschaft zu ändern, die zu dem aktuellen Element in der Sammlung
gehört. Daraufhin wird eine Ausnahme ausgegeben.
meinDataSet.readOnly = true;
// Hierdurch wird ein Ausnahmefehler ausgelöst.
meinDataSet.currentItem.price = 15;
Siehe auch
DataSet.currentItem
DataSet.removeAll()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.removeAll()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; entfernt alle Elemente aus der DataSet-Sammlung.
Beispiel
Mit diesem Beispiel werden alle Elemente aus der Datensatz-Sammlung contact_ds entfernt:
contact_ds.removeAll();
DataSet-Komponente (nur Flash Professional)
255
DataSet.removeItem
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
on(removeItem) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.removeItem = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("removeItem", listenerObject)
Beschreibung
Ereignis; Erstellung unmittelbar bevor ein neues Element aus dieser Sammlung entfernt wird.
Wenn Sie die Eigenschaft result des Ereignisobjekts auf false einstellen, wird der
Löschvorgang abgebrochen. Wenn Sie sie auf true einstellen, ist der Löschvorgang zulässig.
Das Ereignisobjekt (eventObj) enthält folgende Eigenschaften:
Das DataSet-Objekt, das das Ereignis generiert hat.
target
type
Der String "removeitem".
item
Eine Referenz auf das zu entfernende Element in der Sammlung.
result Eine Boolescher Wert, der angibt, ob das Element entfernt werden soll. Der
Standardwert ist true.
Beispiel
In diesem Beispiel bricht die Ereignisprozedur on(removeitem) die Löschung des neuen
Elements ab, wenn eine benutzerdefinierte Funktion mit dem Namen userHasAdminPrivs()
den Wert false zurückgibt. Andernfalls ist die Löschung zulässig.
on(removeItem) {
if(globalObj.userHasAdminPrivs()) {
// Löschung des Elements zulassen.
eventObj.result = true;
} else {
// Löschung des Elements nicht zulassen. Der Benutzer hat keine
// Administratorrechte.
eventObj.result = false;
}
}
Siehe auch
DataSet.addItem
256
Kapitel 4: Komponenten-Referenz
DataSet.removeItem()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.removeItem([item])
Parameter
item
Das zu entfernende Element. Dieser Parameter ist optional.
Rückgaben
Ein Boolescher Wert. Gibt true zurück, wenn das Element entfernt werden konnte, gibt false
zurück, wenn es nicht entfernt werden konnte.
Beschreibung
Methode; entfernt das angegebene Element aus der Sammlung oder entfernt das aktuelle
Element, wenn der Parameter item ausgelassen wurde. Dieser Vorgang wird in
DataSet.deltaPacket protokolliert, wenn DataSet.logChanges true ist.
Beispiel
Der folgende Code, der einer Instanz der Button-Komponente zugewiesen wurde, entfernt das
aktuelle Element aus dem DataSet-Objekt mit der Bezeichnung usersData, das sich auf
derselben Zeitleiste befindet wie die Button-Instanz.
on(click){
_parent.usersData.removeItem();
}
Siehe auch
DataSet.deltaPacket, DataSet.logChanges
DataSet.removeRange()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.removeRange()
Rückgaben
Keine.
DataSet-Komponente (nur Flash Professional)
257
Beschreibung
Methode; entfernt die aktuellen Einstellungen für den Endpunkt, die mit Hilfe von
DataSet.setRange() für den aktuellen Iterator angegeben wurden.
Beispiel
meinDataSet.addSort("name_id", ["name", "id"]);
meinDataSet.setRange(["Bobby", 105],["Cathy", 110]);
while(meinDataSet.hasNext()) {
meinDataSet.gradeLevel ="5"; // Änderung aller Ebenen in diesem Bereich
meinDataSet.next();
}
meinDataSet.removeRange();
meinDataSet.removeSort("name_id");
Siehe auch
DataSet.applyUpdates(), DataSet.hasNext(), DataSet.next(), DataSet.removeSort(),
DataSet.setRange()
DataSet.removeSort()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.removeSort(sortName)
Parameter
sortName
Ein String, der den Namen der Sortierung angibt, die entfernt werden soll.
Rückgaben
Keine.
Beschreibung
Methode; entfernt die angegebene Sortierung aus dem DataSet-Objekt, sofern die betreffende
Sortierung vorhanden ist. Wenn die angegebene Sortierung nicht vorhanden ist, wird ein
Ausnahmefehler des Typs DataSetError ausgegeben.
Beispiel
meinDataSet.addSort("name_id", ["name", "id"]);
meinDataSet.setRange(["Bobby", 105],["Cathy", 110]);
while(meinDataSet.hasNext()) {
meinDataSet.gradeLevel ="5"; // Änderung aller Ebenen in diesem Bereich
meinDataSet.next();
}
meinDataSet.removeRange();
meinDataSet.removeSort("name_id");
258
Kapitel 4: Komponenten-Referenz
Siehe auch
DataSet.applyUpdates(), DataSet.hasNext(), DataSet.next(), DataSet.removeRange(),
DataSet.setRange()
DataSet.resolveDelta
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
on(resolveDelta) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.resolveDelta = function (eventObj) {
// Hier Code eingeben
}
dataSet.addEventListener("resolveDelta", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn DataSet.deltaPacket ein DeltaPacket-Objekt
zugewiesen wird, dessen Transaktions-ID mit der eines zuvor aus dem DataSet-Objekt
abgerufenen DeltaPacket-Objekts übereinstimmt, und das Meldungen enthält, die mit einem
beliebigen Delta- oder DeltaItem-Objekt innerhalb dieses DeltaPacket-Objekts in
Zusammenhang stehen.
Mit diesem Ereignis haben Sie die Möglichkeit zur Korrektur von Fehlern, die der Server bei dem
Versuch, zuvor übermittelte Änderungen anzuwenden, zurückgibt. Üblicherweise wird mit Hilfe
dieses Ereignisses ein Dialogfeld mit einem Hinweis auf die in Konflikt stehenden Werte
angezeigt, sodass der Benutzer die Möglichkeit hat, vor einer erneuten Übermittlung der Daten
entsprechende Änderungen vorzunehmen.
Das Ereignisobjekt (eventObj) enthält folgende Eigenschaften:
target
type
Das DataSet-Objekt, das das Ereignis generiert hat.
Der String "resolveDelta".
Ein Array aus Delta- und zugehörigen DeltaItem-Objekten, die Meldungen über Längen
ungleich Null enthalten.
data
Beispiel
Mit diesem Beispiel wird ein Formular mit der Bezeichnung reconcileForm angezeigt (nicht
abgebildet) und eine Methode auf diesem Formular-Objekt aufgerufen (setReconcileData()),
mit der der Benutzer vom Server zurückgegebene, in Konflikt stehende Werte korrigieren kann.
DataSet-Komponente (nur Flash Professional)
259
meinDataSet.addEventListener("resolveDelta", resolveDelta);
function resolveDelta(eventObj:Object) {
reconcileForm.visible = true;
reconcileForm.setReconcileData(eventObj.data);
}
// im reconcileForm-Code
function setReconcileData(data:Array):Void {
var di:DeltaItem;
var ops:Array = ["property", "method"];
var cl:Array;
// change-Liste
var msg:String;
for (var i = 0; i<data.length; i++) {
cl = data[i].getChangeList();
for (var j = 0; j<cl.length; j++) {
di = cl[j];
msg = di.getMessage();
if (msg.length>0) {
trace("Das Problem '"+msg+"' ist bei der Durchführung einer
Modifikation vom Typ '"+ops[di.kind]+"' auf/mit '"+di.name+"' aufgetreten.
Aktueller Serverwert: ["+di.curValue+"], übermittelter Wert:
["+di.newValue+"] Bitte korrigieren!");
}
}
}
}
DataSet.saveToSharedObj()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.saveToSharedObj(objName, [localPath])
Parameter
Ein String, der den Namen des gemeinsamen Objekts angibt, das erstellt werden soll.
Der Name darf zwar Schrägstriche enthalten (z. B. „Mitarbeiter/Adressen“), aber weder
Leerzeichen noch eines der folgenden Zeichen:
objName
~ % & \ ; : " ' , < > ? #
localPath Ein optionaler Stringparameter mit dem vollständigen oder unvollständigen Pfad
zu der SWF-Datei, die das gemeinsame Objekt erstellt hat. Mit Hilfe des Strings wird bestimmt,
wo das Objekt auf dem Rechner des Benutzers gespeichert werden soll. Der Standardwert ist der
vollständige Pfadname der SWF-Datei.
Rückgaben
Keine.
260
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; speichert alle relevanten Daten, die zur Wiederherstellung dieser DataSet-Sammlung in
einem gemeinsamen Objekt erforderlich sind. Damit kann der Benutzer seine Arbeit auch dann
fortsetzen, wenn die Verbindung zu den Quelldaten getrennt wurde, sofern diese in einem
Netzwerk abgelegt sind. Mit dieser Methode werden alle Daten überschrieben, die sich
möglicherweise in dem angegebenen gemeinsamen Objekt für diese Datensatz-Sammlung
befinden. Mit Hilfe von DataSet.loadFromSharedObj() lässt sich eine DataSet-Sammlung aus
einem gemeinsamen Objekt wiederherstellen. Beachten Sie, dass der Instanzname der DataSetSammlung zur Identifizierung der Daten innerhalb des angegebenen gemeinsamen Objekts dient.
Wenn das gemeinsame Objekt nicht erstellt werden kann oder wenn beim Füllen des Objekts mit
Daten Probleme auftreten, gibt diese Methode den Ausnahmefehler DataSetError aus.
Beispiel
In diesem Beispiel wird saveToSharedObj() in einem try..catch-Block aufgerufen, und es
wird eine Fehlermeldung angezeigt, wenn beim Speichern der Daten im gemeinsamen Objekt
Probleme auftreten.
try {
meinDataSet.saveToSharedObj("webapp/customerInfo");
}
catch(e:DataSetError) {
trace("Gemeinsames Objekt kann nicht erstellt werden.”);
}
Siehe auch
DataSet.loadFromSharedObj()
DataSet.schema
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.schema
Beschreibung
Eigenschaft; ermöglicht die XML-Darstellung des Schemas für dieses DataSet-Objekt. Der XMLCode, der dieser Eigenschaft zugewiesen wird, muss folgendes Format aufweisen:
DataSet-Komponente (nur Flash Professional)
261
<?xml version="1.0"?>
<Eigenschaften>
<property name="propertyName">
<type name="dataType" />
<encoder name="dataType">
<options>
<dataFormat>format options<dataFormat/>
<options/>
<encoder/>
<kind name="dataKind">
<options/>
</kind>
</property>
<property> ... </property>
...
</properties>
Ein Ausnahmefehler des Typs DataSetError wird ausgegeben, wenn der angegebene XML-Code
nicht das oben beschriebene Format aufweist.
Beispiel
meinDataSet.schema = new XML("<properties><property name="billable"> ..etc..
</properties>");
DataSet.selectedIndex
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.selectedIndex
Beschreibung
Eigenschaft; gibt den ausgewählten Index innerhalb der Sammlung an. Sie können diese
Eigenschaft mit dem ausgewählten Element in einer DataGrid- oder List-Komponente und
umgekehrt verbinden. Ein Beispiel, in dem dies veranschaulicht wird, finden Sie unter
„Anwendungen mit der DataSet-Komponente erstellen“ auf Seite 220.
Beispiel
Im folgenden Beispiel wird der ausgewählte Index eines DataSet-Objekts (userData) auf den
Index in einer DataGrid-Komponente (userGrid) eingestellt.
userData.selectedIndex = userGrid.selectedIndex;
262
Kapitel 4: Komponenten-Referenz
DataSet.setIterator()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.setIterator(iterator)
Parameter
Ein Iterator-Objekt, das von einem Aufruf von DataSet.getIterator()
zurückgegeben wird.
iterator
Rückgaben
Keine.
Beschreibung
Methode; weist diesem DataSet-Objekt den angegebenen Iterator zu und macht ihn zum
aktuellen Iterator. Der Iterator muss aus einem früheren Aufruf von DataSet.getIterator()
auf das DataSet-Objekt, dem er zugewiesen wird, stammen. Andernfalls wird ein Ausnahmefehler
des Typs DataSetError ausgegeben.
Beispiel
meinIterator:ValueListIterator = meinDataSet.getIterator();
meinIterator.sortOn(["name"]);
meinDataSet.setIterator(meinIterator);
Siehe auch
DataSet.getIterator()
DataSet.setRange()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.setRange(startValues, endValues)
Parameter
Ein Array aus Schlüsselwerten aus den Eigenschaften des ersten Transferobjekts
startValues
in dem Bereich.
endValues
Ein Array aus Schlüsselwerten aus den Eigenschaften des letzten Transferobjekts in
dem Bereich.
DataSet-Komponente (nur Flash Professional)
263
Rückgaben
Keine.
Beschreibung
Methode; legt die Endpunkte für den aktuellen Iterator fest. Die Endpunkte bestimmen den
Bereich, auf den die Funktionen des Iterators beschränkt bleiben. Dies ist nur zulässig, wenn für
den aktuellen Iterator mit Hilfe von DataSet.applyUpdates() eine gültige Sortierung festgelegt
wurde.
Einen Bereich für den aktuellen Iterator festzulegen ist wirkungsvoller als der Einsatz eines Filters,
wenn Sie eine Gruppierung der Werte wünschen (siehe DataSet.filterFunc).
Beispiel
meinDataSet.addSort("name_id", ["name", "id"]);
meinDataSet.setRange(["Bobby", 105],["Cathy", 110]);
while(meinDataSet.hasNext()) {
meinDataSet.gradeLevel ="5"; // Änderung aller Ebenen in diesem Bereich
meinDataSet.next();
}
meinDataSet.removeRange();
meinDataSet.removeSort("name_id");
Siehe auch
DataSet.applyUpdates(), DataSet.hasNext(), DataSet.next(), DataSet.removeRange(),
DataSet.removeSort()
DataSet.skip()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.skip(offSet)
Parameter
Eine Ganzzahl, die die Anzahl der Datensätze angibt, um die die Iteratorposition
verschoben werden soll.
offSet
Rückgaben
Keine.
Beschreibung
Methode; verschiebt die aktuelle Position des Iterators in der Sammlung um die Anzahl an
Datensätzen nach vorne oder nach hinten, die durch offSet angegeben wird. Bei positiven
offSet-Werten wird die Iteratorposition nach vorne verschoben, bei negativen nach hinten.
Wenn der angegebene offSet-Wert über den Anfang (oder das Ende) der Sammlung hinausgeht,
wird der Iterator an den Anfang (oder ans Ende) der Sammlung verschoben.
264
Kapitel 4: Komponenten-Referenz
Beispiel
In diesem Beispiel wird der aktuelle Iterator zunächst auf das erste Element in der Sammlung und
dann auf das vorletzte Element positioniert. Für ein Feld dieses Elements wird schließlich eine
Berechnung durchgeführt.
meinDataSet.first();
// Verschieben auf das vorletzte Element
var itemsToSkip = meinDataSet.length - 2;
meinDataSet.skip(itemsToSkip).price = meinDataSet.amount * 10;
DataSet.useSort()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
dataSet.useSort(sortName, order)
Parameter
sortName
Ein String, der den Namen der Sortierung enthält, die verwendet werden soll.
order Ein ganzzahliger Wert, der die Sortierreihenfolge der Sortierung angibt.
DataSetIterator.Ascending oder DataSetIterator.Descending sein.
Der Wert muss
Rückgaben
Keine.
Beschreibung
Methode; ändert die Sortierung für den aktuellen Iterator auf die Sortierung, die von sortName
angegeben wird, sofern diese existiert. Wenn die von sortName angegebene Sortierung nicht
existiert, wird ein Ausnahmefehler vom Typ DataSetError ausgegeben.
Eine Sortierung können Sie mit Hilfe von DataSet.applyUpdates() erstellen.
Beispiel
Dieser Code bestimmt mit Hilfe von DataSet.hasSort(), ob eine Sortierung mit der
Bezeichnung "customer" vorhanden ist. Ist das der Fall, ruft der Code DataSet.useSort() auf,
sodass "customer" zur aktuellen Sortierung wird. Andernfalls erstellt der Code mit Hilfe von
DataSet.addSort() eine Sortierung mit dieser Bezeichnung.
if(meinDataSet.hasSort("customer")) {
meinDataSet.useSort("customer");
} else {
meinDataSet.addSort("customer", ["customer"], DataSetIterator.Descending);
}
Siehe auch
DataSet.applyUpdates(), DataSet.hasSort()
DataSet-Komponente (nur Flash Professional)
265
DateChooser-Komponente (nur Flash Professional)
Bei der DateChooser-Komponente handelt es sich um einen Kalender, über den der Benutzer ein
Datum auswählen kann. Mit Hilfe von Schaltflächen lassen sich die Monate durchsuchen und
gewünschte Tage per Mausklick auswählen. Zur Festlegung der Namen von Monaten und
Wochentagen, zur Bestimmung des ersten Tages in einer Woche oder eines deaktivierten Datums
oder auch zur Hervorhebung des aktuellen Datums können Sie entsprechende Parameter
verwenden.
Eine Live-Vorschau jeder DateChooser-Instanz zeigt während des Authorings die im
Eigenschafteninspektor oder Komponenten-Inspektor angegebenen Werte.
DateChooser-Komponente verwenden (nur Flash Professional)
Der DateChooser kann überall dort verwendet werden, wo der Benutzer ein Datum auswählen
soll. Beispielsweise ist der Einsatz der DateChooser-Komponente bei einem
Hotelreservierungssystem denkbar, bei dem bestimmte Tage auswählbar und andere deaktiviert
sein sollen. Ein anderes Einsatzgebiet wäre eine Anwendung, die aktuelle Ereignisse anzeigt, z. B.
Konferenzen oder das aktuelle Theaterprogramm, wenn der Benutzer ein Datum auswählt.
DateChooser-Parameter
Jeder Instanz einer DateChooser-Komponente können beim Authoring im Bedienfeld
Eigenschafteninspektor oder Komponenten-Inspektor die folgenden Parameter zugewiesen
werden:
Mit monthNames werden die in der Kopfzeile des Kalenders angezeigten Monatsnamen
festgelegt. Bei dem Wert handelt es sich um ein Array, und die Standardwerte lauten ["Januar",
"Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober",
"November", "Dezember"].
Mit dayNames werden die Namen der Wochentage festgelegt. Bei dem Wert handelt es sich um
ein Array, und die Standardwerte lauten ["S", "M", "D", "M", "D", "F", "S"].
Mit firstDayOfWeek wird angegeben, welcher Wochentag (0 - 6, wobei 0 das erste Element im
Array dayNames bezeichnet) in der ersten Spalte des DateChooser angezeigt wird. Mit dieser
Eigenschaft wird die Anzeigereihenfolge der Tagesspalten geändert.
Mit disabledDays werden die deaktivierten Wochentage bestimmt. Dieser Parameter ist ein
Array, das bis zu 7 Werte enthalten kann. Der Standardwert ist [] (leeres Array).
gibt an, ob das aktuelle Datum hervorgehoben werden soll oder nicht. Der
Standardwert lautet true.
showToday
Sie können diese und weitere Optionen für die DateChooser-Komponente über die
entsprechenden Eigenschaften, Methoden und Ereignisse in ActionScript steuern. Weitere
Informationen finden Sie unter „DateChooser-Klasse (nur Flash Professional)“ auf Seite 268.
266
Kapitel 4: Komponenten-Referenz
Anwendungen mit der DateChooser-Komponente erstellen
Im Folgenden wird erläutert, wie Sie einer Anwendung beim Authoring eine DateChooserKomponente hinzufügen. In diesem Beispiel soll der DateChooser die Auswahl eines Datums für
ein Flugreservierungssystem ermöglichen. Alle Tage vor dem 15. Oktober, alle Montage sowie
eine Periode über die Feiertage im Dezember sollen deaktiviert werden.
So erstellen Sie eine Anwendung mit einer DateChooser-Komponente:
1 Doppelklicken Sie im Bedienfeld Komponenten auf die DateChooser-Komponente, damit sie
der Bühne hinzugefügt wird.
2 Geben Sie im Eigenschafteninspektor den Instanznamen flightCalendar ein.
3 Geben Sie im Bedienfeld Aktionen den folgenden Code in Bild 1 der Zeitleiste ein, um den
auswählbaren Datumsbereich festzulegen:
flightCalendar.selectableRange = {rangeStart:new Date(2003, 9, 15),
rangeEnd:new Date(2003, 11, 31)}
Mit diesem Code wird der Eigenschaft selectableRange in einem ActionScript-Objekt, das
zwei Date-Objekte mit den Variablennamen rangeStart und rangeEnd enthält, ein Wert
zugewiesen. Sie legen damit die obere und die untere Grenze des Bereichs fest, aus dem der
Benutzer ein Datum auswählen kann.
4 Geben Sie im Bedienfeld Aktionen den folgenden Code in Bild 1 der Zeitleiste ein, um einen
Bereich festzulegen, der auf Grund von Feiertagen deaktiviert sein soll:
flightCalendar.disabledRanges = [{rangeStart: new Date(2003, 11, 15),
rangeEnd: new Date(2003, 11, 26)}];
5 Geben Sie im Bedienfeld Aktionen den folgenden Code in Bild 1 der Zeitleiste ein, damit alle
Montage deaktiviert werden.
flightCalendar.disabledDays=[1];
6 Steuerung > Film testen
Anpassen der DateChooser-Komponente (nur Flash Professional)
DateChooser-Komponenten können sowohl beim Authoring als auch zur Laufzeit horizontal und
vertikal transformiert werden. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne
aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode setSize() (siehe
UIObject.setSize()).
Stile für die DateChooser-Komponente verwenden
Mit Hilfe der Stileigenschaften können Sie das Aussehen einer DateChooser-Instanz festlegen.
Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
DateChooser-Komponente (nur Flash Professional)
267
Eine DateChooser-Komponente unterstützt folgende Kranz-Stile:
Stil
Beschreibung
themeColor
Die Hervorhebungsfarbe für das Rollover und die ausgewählten
Daten. Dies ist der einzige Farbstil, der seinen Wert nicht
übernimmt. Mögliche Wert sind "haloGreen", "haloBlue" und
"haloOrange".
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“ (kursiv).
fontWeight
Das Schriftgewicht für den Text: „normal“ oder „bold“ (fett).
textDecoration
Die Textauszeichnung: „none“ oder „underline“.
Skins für die DateChooser-Komponente verwenden
Das Erscheinungsbild der DateChooser-Komponente wird mit Hilfe von Skins bestimmt. Um
dem DateChooser beim Authoring Skins zuweisen zu können, modifizieren Sie in der Bibliothek
von einer der FLA-Dateien des Themas die Skin-Symbole im Ordner Flash UI Components 2/
Themes/MMDefault/DateChooser Assets/Elements/Month skins states. Weitere
Informationen finden Sie unter „Skinning-Komponenten“ auf Seite 42.
Nur die Bildlaufregler für die Monate können in dieser Komponente dynamisch mit Skins
versehen werden. Für DataChooser-Komponenten sind die folgenden Skin-Eigenschaften
verfügbar:
Eigenschaft
Beschreibung
falseUpSkin
Up-Status (Schaltfläche nicht geklickt). Die Standardwerte lauten
fwdMonthUp und backMonthUp.
falseDownSkin
Der Down-Zustand. Die Standardwerte lauten fwdMonthDown und
backMonthDown.
falseDisabledSkin
Disabled-Status (Schaltfläche deaktiviert). Die Standardwerte
lauten fwdMonthDisabled und backMonthDisabled.
DateChooser-Klasse (nur Flash Professional)
Vererbung
UIObject > UIComponent > DateChooser
ActionScript-Klassenname
mx.controls.DateChooser
Mit den Eigenschaften der DateChooser-Klasse können Sie auf das ausgewählte Datum sowie auf
den angezeigten Monat und das angezeigte Jahr zugreifen. Weiterhin können Sie die Namen der
Tage und Monate festlegen, deaktivierte und auswählbare Tage festlegen, den ersten Tag der
Woche bestimmen und angeben, ob das aktuelle Datum hervorgehoben werden soll.
268
Kapitel 4: Komponenten-Referenz
Per ActionScript zugewiesene Eigenschaften der DateChooser-Klasse haben Vorrang vor
gleichnamigen Parametern, die im Bedienfeld Eigenschafteninspektor oder KomponentenInspektor festgelegt werden.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.DateChooser.version);
Hinweis: Der folgende Code gibt undefined zurück: trace(meinDC.version);.
Übersicht: Methoden der DateChooser-Klasse
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der DateChooser-Klasse
Eigenschaft
Beschreibung
DateChooser.dayNames
Ein Array, das die Namen der Wochentage angibt.
DateChooser.disabledDays
Ein Array, das die Tage der Woche angibt, die für den gesamten
zutreffenden Datumsbereich im DateChooser deaktiviert sind.
DateChooser.disabledRanges
Ein Bereich deaktivierter Tage oder ein einzelner deaktivierter Tag.
DateChooser.displayedMonth
Eine Zahl, die ein Element im Array monthNames angibt, das im
DateChooser angezeigt wird.
DateChooser.displayedYear
Eine Zahl, die das anzuzeigende Jahr angibt.
DateChooser.firstDayOfWeek
Eine Zahl, die ein Element im Array dayNames angibt, das in der
ersten Spalte des DateChooser angezeigt wird.
DateChooser.monthNames
Ein Array aus Strings, die die Monatsnamen bezeichnen.
DateChooser.selectableRange Ein einzelnes auswählbares Datum oder ein Bereich auswählbarer
Daten.
DateChooser.selectedDate
Ein Date-Objekt, das das ausgewählte Datum angibt.
DateChooser.showToday
Ein Boolescher Wert, der angibt, ob das aktuelle Datum
hervorgehoben ist.
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Ereignisse der DateChooser-Klasse
Ereignis
Beschreibung
DateChooser.change
Broadcastübertragung, wenn ein Datum ausgewählt wurde.
DateChooser.scroll
Broadcastübertragung, wenn Schaltflächen für Monate betätigt
wurden.
Erbt alle Ereignisse von UIObject und UIComponent.
DateChooser-Komponente (nur Flash Professional)
269
DateChooser.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
on(change){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.change = function(eventObject){
...
}
chooserInstance.addEventListener("change", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wenn ein Datum ausgewählt wurde.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
DateChooser-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Wenn dem
DateChooser meinDC beispielsweise der folgende Code zugewiesen wird, wird „_level0.meinDC“
an das Bedienfeld Ausgabe gesendet:
on(change){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (chooserInstance) setzt ein Ereignis (in diesem Fall change) ab, und das
Ereignis reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts (listenerObject).
Eine solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen dieses Ereignisses wird
eine von Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das
sich auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein
Ereignisobjekt (eventObject) an die Methode des Listener-Objekts übergeben. Jedes
Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit
Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert.
Anschließend rufen Sie die Methode UIEventDispatcher.addEventListener() für die
Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz zuzuordnen.
Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
270
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel, das für ein Bild der Zeitleiste geschrieben wurde, wird eine Meldung an
das Bedienfeld Ausgabe gesendet, wenn ein DateChooser mit der Bezeichnung meinDC geändert
wird. In der ersten Codezeile wird ein Listener-Objekt mit der Bezeichnung form erzeugt. In der
zweiten Zeile wird eine Funktion für das Ereignis change im Listener-Objekt definiert. Eine
trace()-Aktion innerhalb der Funktion erzeugt anhand des automatisch übergebenen
Ereignisobjekts (in diesem Fall eventObj) eine Meldung. Die Eigenschaft target eines
Ereignisobjekts entspricht der Komponente, die das Ereignis erzeugt (in diesem Fall meinDC). Der
Zugriff auf die Eigenschaft NumericStepper.maximum erfolgt über die Eigenschaft target des
Ereignisobjekts. In der letzten Zeile wird die Methode
UIEventDispatcher.addEventListener() von meinDC aus aufgerufen, und das Ereignis
change und das Listener-Objekt form werden als Parameter an sie übergeben:
form.change = function(eventObj){
trace("date selected " + eventObj.target.selectedDate) ;
}
meinDC.addEventListener("change", form);
DateChooser.dayNames
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.dayNames
Beschreibung
Eigenschaft; ein Array, das die Namen der Wochentage enthält. Sonntag ist der erste Tag (auf
Indexposition 0), und die übrigen Tage folgen in der üblichen Reihenfolge. Der Standardwert
lautet ["S", "M", "D", "M", "D", "F", "S"].
Beispiel
Im folgenden Beispiel wird der Wert des 5. Tages in der Abfolge (Donnerstag) von „D“ auf „R“
geändert:
meinDC.dayNames[4] = "R";
DateChooser.disabledDays
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.disabledDays
DateChooser-Komponente (nur Flash Professional)
271
Beschreibung
Eigenschaft; ein Array, das die deaktivierten Tage der Woche angibt. Jedes Datum eines Monats,
das auf den angegebenen Tag fällt, ist deaktiviert. Die Elemente dieses Arrays können Werte
zwischen 0 (Sonntag) und 6 (Samstag) haben. Der Standardwert ist [] (leeres Array).
Beispiel
Im folgenden Beispiel werden Samstage und Sonntage deaktiviert, sodass der Benutzer nur
Werktage auswählen kann:
meinDC.disabledDays = [0, 6];
DateChooser.disabledRanges
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.disabledRanges
Beschreibung
Eigenschaft; deaktiviert ein bestimmtes Datum oder einen Datumsbereich. Bei dieser Eigenschaft
handelt es sich um ein Objekt-Array. Jedes Objekt in diesem Array muss entweder ein DateObjekt sein, das den zu deaktivierenden Einzeltag angibt, oder ein Objekt, das entweder eine der
Eigenschaften rangeStart oder rangeEnd oder beide Eigenschaften enthält. Die Werte dieser
beiden Eigenschaften müssen Date-Objekte sein. Die Eigenschaften rangeStart und rangeEnd
bezeichnen Start- und Enddatum des Bereichs. Wenn eine der beiden Eigenschaften fehlt, setzt
sich der Bereich unbegrenzt in die entsprechende Richtung fort.
Der Standardwert für disabledRanges ist undefined.
Geben Sie bei der Definition der Daten für die Eigenschaft disabledRanges jeweils ein
vollständiges Datum an, also z. B. new Date(2003,6,24) statt new Date(). Wenn Sie kein
vollständiges Datum angeben wird die Zeit als 00:00:00 zurückgegeben.
Beispiel
Im folgenden Beispiel wird ein Array mit den Date-Objekten rangeStart und rangeEnd
definiert, wobei der Bereich vom 7. Mai bis zum 7. Juni deaktiviert werden soll:
meinDC.disabledRanges = [ {rangeStart: new Date(2003, 4, 7), rangeEnd: new
Date(2003, 5, 7)}];
Im folgenden Beispiel werden alle Tage nach dem 7. November deaktiviert:
meinDC.disabledRanges = [ {rangeStart: new Date(2003, 10, 7)} ];
Im folgenden Beispiel werden alle Tage vor dem 7. Oktober deaktiviert:
meinDC.disabledRanges = [ {rangeEnd: new Date(2002, 9, 7)} ];
Im folgenden Beispiel wird lediglich der 7. Dezember deaktiviert:
meinDC.disabledRanges = [ new Date(2003, 11, 7) ];
272
Kapitel 4: Komponenten-Referenz
DateChooser.displayedMonth
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.displayedMonth
Beschreibung
Eigenschaft; eine Zahl, die angibt, welcher Monat angezeigt wird. Die Zahl gibt ein Element aus
dem Array monthNames an, wobei 0 den ersten Monat bezeichnet. Standardwert ist der Monat
des aktuellen Datums.
Beispiel
Im folgenden Beispiel wird Dezember als der anzuzeigende Monat festgelegt:
meinDC.displayedMonth = 11;
Siehe auch
DateChooser.displayedYear
DateChooser.displayedYear
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.displayedYear
Beschreibung
Eigenschaft; eine vierstellige Zahl, die angibt, welches Jahr angezeigt wird. Der Standardwert ist
das aktuelle Jahr.
Beispiel
Im folgenden Beispiel wird 2010 als das anzuzeigende Jahr festgelegt:
meinDC.displayedYear = 2010;
Siehe auch
DateChooser.displayedMonth
DateChooser-Komponente (nur Flash Professional)
273
DateChooser.firstDayOfWeek
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.firstDayOfWeek
Beschreibung
Eigenschaft; eine Zahl, die angibt, welcher Wochentag (0 - 6, wobei 0 das erste Element im Array
dayNames bezeichnet) in der ersten Spalte der DateChooser-Komponente angezeigt wird. Die
Änderung dieser Eigenschaft ändert zwar die Anordnung der Tagesspalten, hat aber keinen
Einfluss auf die Reihenfolge der Eigenschaft dayNames. Der Standardwert ist 0 (Sonntag)
Beispiel
Im folgenden Beispiel wird Montag als erster Tag der Woche festgelegt:
meinDC.firstDayOfWeek = 1;
Siehe auch
DateChooser.dayNames
DateChooser.monthNames
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.monthNames
Beschreibung
Eigenschaft; ein Array mit Strings, die die Monate bezeichnen, wie sie in der Kopfzeile der
DateChooser-Komponente angezeigt werden. Der Standardwert lautet ["Januar", "Februar",
"März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober",
"November", "Dezember"].
Beispiel
Im folgenden Beispiel werden die Monatsbezeichnungen für die Instanz meinDC eingestellt.
meinDC.monthNames = ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug",
"Sep", "Okt", "Nov", "Dez"];
274
Kapitel 4: Komponenten-Referenz
DateChooser.scroll
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
on(scroll){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.scroll = function(eventObject){
...
}
meinDC.addEventListener("scroll", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wenn eine Monatsschaltfläche
betätigt wird.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
DateChooser-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Mit dem
folgenden Code, der dem Stepper meinDC zugeordnet ist, wird beispielsweise „_level0.meinDC“
an das Bedienfeld Ausgabe gesendet:
on(scroll){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (meinDC) setzt ein Ereignis (in diesem Fall scroll) ab, und das Ereignis
reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts (listenerObject). Eine
solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen dieses Ereignisses wird eine
von Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich
auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein
Ereignisobjekt (eventObject) an die Methode des Listener-Objekts übergeben. Jedes
Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit
Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Die
Ereignisprozedur des Ereignisses scroll hat eine zusätzliche Eigenschaft (detail), die nur einen
der folgenden Werte annehmen kann: nextMonth, previousMonth, nextYear, previousYear.
Anschließend rufen Sie die Methode UIEventDispatcher.addEventListener() für die
Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz zuzuordnen.
Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
DateChooser-Komponente (nur Flash Professional)
275
Beispiel
In diesem, in einem Bild der Zeitleiste geschriebenen Beispiel wird eine Meldung an das
Bedienfeld Ausgabe gesendet, wenn auf einer DateChooser-Instanz mit der Bezeichnung meinDC
eine Monatsschaltfläche betätigt wurde. In der ersten Codezeile wird ein Listener-Objekt mit der
Bezeichnung form erzeugt. In der zweiten Zeile wird eine Funktion für das Ereignis scroll im
Listener-Objekt definiert. Eine trace-Aktion innerhalb der Funktion erzeugt anhand des
automatisch übergebenen Ereignisobjekts (in diesem Fall eventObj) eine Meldung. Die
Eigenschaft target eines Ereignisobjekts ist die Komponente, die das Ereignis generiert hat, in
diesem Beispiel meinDC. In der letzten Zeile wird die Methode
UIEventDispatcher.addEventListener() von meinDC aus aufgerufen, und das Ereignis
scroll und das Listener-Objekt form werden als Parameter an sie übergeben:
form = new Object();
form.scroll = function(eventObj){
trace(eventObj.detail);
}
meinDC.addEventListener("scroll", form);
DateChooser.selectableRange
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.selectableRange
Beschreibung
Eigenschaft; legt ein einzelnes auswählbares Datum oder einen auswählbaren Datumsbereich fest.
Der Benutzer hat nicht die Möglichkeit, über den Auswahlbereich hinaus zu scrollen. Der Wert
dieser Eigenschaft ist ein Objekt, das aus zwei Date-Objekten mit der Bezeichnung rangeStart
und rangeEnd besteht. Die Eigenschaften rangeStart und rangeEnd bezeichnen Start- und
Enddatum des Auswahlbereichs. Wenn lediglich rangeStart ausgewählt wird, sind alle Tage, die
auf rangeStart folgen, aktiviert. Wenn lediglich rangeEnd ausgewählt wird, sind alle Tage, die
vor rangeEnd liegen, aktiviert. Der Standardwert ist undefined.
Wenn Sie lediglich einen einzelnen Tag aktivieren möchten, können Sie als Wert für
ein einzelnes Date-Objekt auswählen.
selectableRange
Geben Sie bei der Festlegung der Daten ein vollständiges Datum an. also z. B. new
Wenn Sie kein vollständiges Datum angeben wird die Zeit
Date(2003,6,24) statt new Date().
als 00:00:00 zurückgegeben.
Der Wert von DateChooser.selectedDate wird auf undefined gesetzt, wenn er außerhalb des
Auswahlbereichs liegt.
Die Werte von DateChooser.displayedMonth und DateChooser.displayedYear werden auf
den nächstgelegenen letzten Monat eingestellt, wenn der aktuelle Monat außerhalb des
Auswahlbereichs liegt. Beispiel: Wenn es sich beim aktuellen Monat um den August handelt und
der Auswahlbereich auf Juni 2003 bis Juli 2003 festgelegt wurde, wird der angezeigte Monat auf
Juli 2003 angepasst.
276
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird als Auswahlbereich der Zeitraum vom 7. Mai bis 7. Juni (jeweils
einschließlich) festgelegt:
meinDC.selectableRange = {rangeStart: new Date(2001, 4, 7), rangeEnd: new
Date(2003, 5, 7)};
Im folgenden Beispiel wird als Auswahlbereich der Zeitraum nach dem 7. Mai (einschließlich)
festgelegt:
meinDC.selectableRange = {rangeStart: new Date(2003, 4, 7)};
Im folgenden Beispiel wird als Auswahlbereich der Zeitraum vor dem 7. Juni (einschließlich)
festgelegt:
meinDC.selectableRange = {rangeEnd: new Date(2003, 5, 7) };
Im folgenden Beispiel wird lediglich der 7. Juni als auswählbares Datum festgelegt:
meinDC.selectableRange = new Date(2003, 5, 7);
DateChooser.selectedDate
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDC.selectedDate
Beschreibung
Eigenschaft; ein Date-Objekt, das das ausgewählte Datum angibt, sofern dieser Wert in den
Wertebereich der Eigenschaft selectableRange fällt. Der Standardwert ist undefined.
Die Eigenschaft selectedDate kann nicht innerhalb des Wertebereichs der Eigenschaft
disabledRange, außerhalb des Wertebereichs der Eigenschaft selectableRange oder für einen
deaktivierten Tag eingestellt werden. Wenn die Eigenschaft selectedDate auf einen der zuvor
genannten Zeiträume eingestellt wird, ist der Wert undefined.
Beispiel
Im folgenden Beispiel wird das gewählte Datum auf den 7. Juni eingestellt:
meinDC.selectedDate = new Date(2003, 5, 7);
DateChooser.showToday
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
DateChooser-Komponente (nur Flash Professional)
277
Verwendung
meinDC.showToday
Beschreibung
Eigenschaft; bestimmt, ob das aktuelle Datum hervorgehoben wird. Der Standardwert lautet
true.
Beispiel
Im folgenden Beispiel wird die Hervorhebung des aktuellen Datums deaktiviert:
meinDC.showToday = false;
DateField-Komponente (nur Flash Professional)
Die DateField-Komponente ist ein nicht auswählbares Textfeld, das das Datum mit dem
Kalendersymbol rechts davon anzeigt. Wenn kein Datum ausgewählt wurde, ist das Textfeld leer,
und im DateChooser wird der Monat des aktuellen Datums angezeigt. Wenn der Benutzer an
eine beliebige Stelle innerhalb der Begrenzungsbox des Datumsfeldes klickt, wird ein
DateChooser geöffnet, der die Tage im Monat des ausgewählten Datums anzeigt. Wenn der
DateChooser geöffnet ist, kann der Benutzer mit Hilfe der Bildlaufregler für die Monate durch
die Monate und Jahre scrollen und ein Datum auswählen. Wenn ein Datum ausgewählt wurde,
wird der DateChooser geschlossen.
Die Live-Vorschau der DateField-Komponente zeigt beim Authoring nicht die im Bedienfeld
Eigenschafteninspektor oder Komponenten-Inspektor angegebenen Werte, da es sich um eine
Popup-Komponente handelt, die beim Authoring nicht sichtbar ist.
DateField-Komponente verwenden (nur Flash Professional)
Die DateField-Komponente kann überall dort verwendet werden, wo der Benutzer ein Datum
auswählen soll. Beispielsweise ist der Einsatz der DateField-Komponente bei einem
Hotelreservierungssystem denkbar, bei dem bestimmte Tage auswählbar und andere deaktiviert
sein sollen. Ein anderes Einsatzgebiet wäre eine Anwendung, die aktuelle Ereignisse anzeigt, z. B.
Konferenzen oder das aktuelle Theaterprogramm, wenn der Benutzer ein Datum auswählt.
DateField-Parameter
Jeder Instanz einer DateField-Komponente können beim Authoring im Bedienfeld
Eigenschafteninspektor oder Komponenten-Inspektor die folgenden Parameter zugewiesen
werden:
Mit monthNames werden die in der Kopfzeile des Kalenders angezeigten Monatsnamen
festgelegt. Bei dem Wert handelt es sich um ein Array, und die Standardwerte lauten ["Januar",
"Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober",
"November", "Dezember"].
Mit dayNames werden die Namen der Wochentage festgelegt. Bei dem Wert handelt es sich um
ein Array, und die Standardwerte lauten ["S", "M", "D", "M", "D", "F", "S"].
Mit firstDayOfWeek wird angegeben, welcher Wochentag (0 - 6, wobei 0 das erste Element im
Array dayNames bezeichnet) in der ersten Spalte des DateChooser angezeigt wird. Mit dieser
Eigenschaft wird die Anzeigereihenfolge der Tagesspalten geändert.
Der Standardwert ist 0, d. h. "S".
278
Kapitel 4: Komponenten-Referenz
Mit disabledDays werden die deaktivierten Wochentage bestimmt. Dieser Parameter ist ein
Array, das bis zu 7 Werte enthalten kann. Der Standardwert ist [] (leeres Array).
gibt an, ob das aktuelle Datum hervorgehoben werden soll oder nicht. Der
Standardwert lautet true.
showToday
Sie können diese und weitere Optionen für die DateField-Komponente über die entsprechenden
Eigenschaften, Methoden und Ereignisse in ActionScript steuern. Weitere Informationen finden
Sie unter „DateField-Klasse (nur Flash Professional)“ auf Seite 281.
Anwendungen mit der DateField-Komponente erstellen
Im Folgenden wird erläutert, wie Sie einer Anwendung beim Authoring eine DateFieldKomponente hinzufügen. In diesem Beispiel soll die DateField-Komponente die Auswahl eines
Datums für ein Flugreservierungssystem ermöglichen. Alle Tage vor dem aktuellen Datum sowie
eine 15-tägige Periode über die Feiertage im Dezember sollen deaktiviert werden. Weiterhin
finden einige Flüge montags nicht statt, daher müssen für diese Flüge alle Montage deaktiviert
werden.
So erstellen Sie eine Anwendung mit einer DateField-Komponente:
1 Doppelklicken Sie im Bedienfeld Komponenten auf die DateField-Komponente, damit sie der
Bühne hinzugefügt wird.
2 Geben Sie im Eigenschafteninspektor den Instanznamen flightCalendar ein.
3 Geben Sie im Bedienfeld Aktionen den folgenden Code in Bild 1 der Zeitleiste ein, um den
auswählbaren Datumsbereich festzulegen:
flightCalendar.selectableRange = {rangeStart:new Date(2001, 9, 1),
rangeEnd:new Date(2003, 11, 1)};
Mit diesem Code wird der Eigenschaft selectableRange in einem ActionScript-Objekt, das
zwei Date-Objekte mit den Variablennamen rangeStart und rangeEnd enthält, ein Wert
zugewiesen. Sie legen damit die obere und die untere Grenze des Bereichs fest, aus dem der
Benutzer ein Datum auswählen kann.
4 Geben Sie im Bedienfeld Aktionen folgenden Code in Bild 1 der Zeitleiste ein, damit die
deaktivierten Bereiche – einer im Dezember, der andere für alle Tage vor dem aktuellen Datum
– eingestellt werden:
flightCalendar.disabledRanges = [{rangeStart: new Date(2003, 11, 15),
rangeEnd: new Date(2003, 11, 31)}, {rangeEnd: new Date(2003, 6, 16)}];
5 Geben Sie im Bedienfeld Aktionen den folgenden Code in Bild 1 der Zeitleiste ein, damit alle
Montage deaktiviert werden.
flightCalendar.disabledDays=[1];
6 Steuerung > Film testen
DateField-Komponente anpassen (nur Flash Professional)
Sie können eine DateField-Komponente sowohl beim Authoring als auch zur Laufzeit horizontal
transformieren. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne aus und
verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode setSize() (siehe
UIObject.setSize()). Die Festlegung der Breite hat keinen Einfluss auf die Ausmaße des
DateChooser innerhalb der DateField-Komponente. Gleichwohl können Sie mit Hilfe der
Eigenschaft pullDown auf die DateChooser-Komponente zugreifen und ihre Größe einstellen.
DateField-Komponente (nur Flash Professional)
279
Stile für die DateField-Komponente verwenden
Mit Hilfe der Stileigenschaften können Sie das Aussehen einer DateField-Instanz festlegen. Bei
Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Eine DateField-Komponente unterstützt folgende Kranz-Stile:
Stil
Beschreibung
themeColor
Die Hervorhebungsfarbe für das Rollover und die ausgewählten
Daten. Dies ist der einzige Farbstil, der seinen Wert nicht übernimmt.
Mögliche Wert sind „haloGreen“, „haloBlue“ und „haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“ (kursiv).
fontWeight
Das Schriftgewicht für den Text: „normal“ oder „bold“ (fett).
textDecoration
Die Textauszeichnung: „none“ oder „underline“.
Skins für die DateField-Komponente verwenden
Das Erscheinungsbild des Popup-Symbols einer DateField-Komponente wird mit Hilfe von Skins
festgelegt: Um dem Popup-Symbol beim Authoring Skins zuweisen zu können, modifizieren Sie
in der Bibliothek von einer der FLA-Dateien des Themas die Skin-Symbole im Ordner Flash UI
Components 2/Themes/MMDefault/DateField Elements skins states. Weitere Informationen
finden Sie unter „Skinning-Komponenten“ auf Seite 42.
In dieser Komponente kann nur die Schaltfläche für das Popup-Symbol mit Skins versehen
werden. Mit den folgenden Skin-Eigenschaften wird das Popup-Symbol einer DateFieldKomponente dynamisch gestaltet:
280
Eigenschaft
Beschreibung
openDateUp
Der Zustand Up des Popup-Symbols.
openDateDown
Der Zustand Down des Popup-Symbols.
openDateOver
Der Zustand Over des Popup-Symbols.
openDateDisabled
Der Zustand Disabled des Popup-Symbols.
Kapitel 4: Komponenten-Referenz
DateField-Klasse (nur Flash Professional)
Vererbung
UIObject > UIComponent > ComboBase > DateField
ActionScript-Klassenname
mx.controls.DateField
Mit den Eigenschaften der DateField-Klasse können Sie auf das ausgewählte Datum sowie auf
den angezeigten Monat und das angezeigte Jahr zugreifen. Weiterhin können Sie die Namen der
Tage und Monate festlegen, deaktivierte und auswählbare Tage festlegen, den ersten Tag der
Woche bestimmen und angeben, ob das aktuelle Datum hervorgehoben werden soll.
Per ActionScript zugewiesene Eigenschaften der DateField-Klasse haben Vorrang vor
gleichnamigen Parametern, die im Bedienfeld Eigenschafteninspektor oder KomponentenInspektor festgelegt werden.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.DateField.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meineDateFieldInstance.version);.
Übersicht: Methoden der DateField-Klasse
Methode
Beschreibung
DateField.close()
Schließt den Popup-DateChooser (Unterkomponente).
DateField.open()
Öffnet den Popup-DateChooser (Unterkomponente).
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der DateField-Klasse
Eigenschaft
Beschreibung
DateField.dateFormatter
Eine Funktion, mit der das im Textfeld anzuzeigende Datum
formatiert wird.
DateField.dayNames
Ein Array, das die Namen der Wochentage angibt.
DateField.disabledDays
Ein Array, das die Tage der Woche angibt, die für den gesamten
zutreffenden Datumsbereich im DateChooser deaktiviert sind.
DateField.disabledRanges
Ein Bereich deaktivierter Tage oder ein einzelner deaktivierter Tag.
DateField.displayedMonth
Eine Zahl, die ein Element im Array monthNames angibt, das im
DateChooser angezeigt wird.
DateField.displayedYear
Eine Zahl, die das anzuzeigende Jahr angibt.
DateField.firstDayOfWeek
Eine Zahl, die ein Element im Array dayNames angibt, das in der
ersten Spalte des DateChooser angezeigt wird.
DateField.monthNames
Ein Array aus Strings, die die Monatsnamen bezeichnen.
DateField-Komponente (nur Flash Professional)
281
Eigenschaft
Beschreibung
DateField.pullDown
Eine Referenz auf die DateChooser-Unterkomponente. Diese
Eigenschaft ist schreibgeschützt.
DateField.selectableRange
Ein einzelnes auswählbares Datum oder ein Bereich auswählbarer
Daten.
DateField.selectedDate
Ein Date-Objekt, das das ausgewählte Datum angibt.
DateField.showToday
Ein Boolescher Wert, der angibt, ob das aktuelle Datum
hervorgehoben ist.
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Ereignisse der DateField-Klasse
Ereignis
Beschreibung
DateField.change
Broadcastübertragung, wenn ein Datum ausgewählt wurde.
DateField.close
Broadcastübertragung, wenn die DateChooser-Unterkomponente
geschlossen wird.
DateField.open
Broadcastübertragung, wenn die DateChooser-Unterkomponente
geöffnet wird.
DateField.scroll
Broadcastübertragung, wenn Schaltflächen für Monate betätigt
wurden.
Erbt alle Ereignisse von UIObject und UIComponent.
DateField.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
on(change){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.change = function(eventObject){
...
}
meinDF.addEventListener("change", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wenn ein Datum ausgewählt wurde.
282
Kapitel 4: Komponenten-Referenz
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
DateField-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Wenn dem
DateField meinDF beispielsweise der folgende Code zugewiesen wird, wird „_level0.meinDF“ an
das Bedienfeld Ausgabe gesendet:
on(change){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (chooserInstance) setzt ein Ereignis (in diesem Fall change) ab, und das
Ereignis reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts (listenerObject).
Eine solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen dieses Ereignisses wird
eine von Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das
sich auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein
Ereignisobjekt (eventObject) an die Methode des Listener-Objekts übergeben. Jedes
Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit
Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert.
Anschließend rufen Sie die Methode UIEventDispatcher.addEventListener() für die
Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz zuzuordnen.
Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden, für ein Bild der Zeitleiste geschriebenen Beispiel wird eine Meldung an das
Bedienfeld Ausgabe gesendet, wenn ein DateField namens meinDF geändert wird. In der ersten
Codezeile wird ein Listener-Objekt mit der Bezeichnung form erzeugt. In der zweiten Zeile wird
eine Funktion für das Ereignis change im Listener-Objekt definiert. Eine trace-Aktion
innerhalb der Funktion erzeugt anhand des automatisch übergebenen Ereignisobjekts (in diesem
Fall eventObj) eine Meldung. Die Eigenschaft target eines Ereignisobjekts ist die Komponente,
die das Ereignis generiert hat, in diesem Beispiel meinDF. Der Zugriff auf die Eigenschaft
DateField.selectedDate erfolgt über die Eigenschaft target des Ereignisobjekts. In der
letzten Zeile wird die Methode UIEventDispatcher.addEventListener() von meinDF aus
aufgerufen, und das Ereignis change und das Listener-Objekt form werden als Parameter an sie
übergeben:
form.change = function(eventObj){
trace("date selected " + eventObj.target.selectedDate) ;
}
meinDF.addEventListener("change", form);
DateField.close()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.close()
DateField-Komponente (nur Flash Professional)
283
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; schließt das Popupmenü.
Beispiel
Mit dem folgenden Code wird der Popup-DateChooser der DateField-Instanz meinDF
geschlossen:
meinDF.close();
DateField.close
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
on(close){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.close = function(eventObject){
...
}
meinDF.addEventListener("close", listenerObject)
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn die DateChooserUnterkomponente geschlossen wird, nachdem der Benutzer in einen Bereich außerhalb des
Symbols geklickt oder ein Datum ausgewählt hat.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
DateField-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Wenn dem
DateField meinDF beispielsweise der folgende Code zugewiesen wird, wird „_level0.meinDF“ an
das Bedienfeld Ausgabe gesendet:
on(close){
trace(this);
}
284
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (meinDF) setzt ein Ereignis (in diesem Fall close) ab, und das Ereignis
reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts (listenerObject). Eine
solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen dieses Ereignisses wird eine
von Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich
auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein
Ereignisobjekt (eventObject) an die Methode des Listener-Objekts übergeben. Jedes
Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit
Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert.
Anschließend rufen Sie die Methode UIEventDispatcher.addEventListener() für die
Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz zuzuordnen.
Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden, für ein Bild der Zeitleiste geschriebenen Beispiel wird eine Meldung an das
Bedienfeld Ausgabe gesendet, wenn der DateChooser in meinDF geschlossen wird. In der ersten
Codezeile wird ein Listener-Objekt mit der Bezeichnung form erzeugt. In der zweiten Zeile wird
eine Funktion für das Ereignis close im Listener-Objekt definiert. Eine trace-Aktion innerhalb
der Funktion erzeugt anhand des automatisch übergebenen Ereignisobjekts (in diesem Fall
eventObj) eine Meldung. Die Eigenschaft target eines Ereignisobjekts ist die Komponente, die
das Ereignis generiert hat, in diesem Beispiel meinDF. Der Zugriff auf die Eigenschaft erfolgt über
die Eigenschaft target des Ereignisobjekts. In der letzten Zeile wird die Methode
UIEventDispatcher.addEventListener() von meinDF aus aufgerufen, und das Ereignis close
und das Listener-Objekt form werden als Parameter an sie übergeben:
form.close = function(eventObj){
trace("PullDown Closed" + eventObj.target.selectedDate);
}
meinDF.addEventListener("close", form);
DateField.dateFormatter
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.dateFormatter
Beschreibung
Eigenschaft; Funktion, formatiert das im Textfeld anzuzeigende Datum. Die Funktion muss ein
Date-Objekt als Parameter erhalten und einen String im anzuzeigenden Format zurückgeben.
DateField-Komponente (nur Flash Professional)
285
Beispiel
Im folgenden Beispiel wird die Funktion so eingestellt, dass sie das Format des anzuzeigenden
Datums zurückgibt:
meinDF.dateFormatter = function(d:Date){
return d.getFullYear()+"/ "+(d.getMonth()+1)+"/ "+d.getDate();
};
DateField.dayNames
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.dayNames
Beschreibung
Eigenschaft; ein Array, das die Namen der Wochentage enthält. Sonntag ist der erste Tag (auf
Indexposition 0), und die übrigen Tage folgen in der üblichen Reihenfolge. Der Standardwert
lautet ["S", "M", "D", "M", "D", "F", "S"].
Beispiel
Im folgenden Beispiel wird der Wert des 5. Tages in der Abfolge (Donnerstag) von „D“ auf „R“
geändert:
meinDF.dayNames[4] = "R";
DateField.disabledDays
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.disabledDays
Beschreibung
Eigenschaft; ein Array, das die deaktivierten Tage der Woche angibt. Jedes Datum eines Monats,
das auf den angegebenen Tag fällt, ist deaktiviert. Die Elemente dieses Arrays können Werte
zwischen 0 (Sonntag) und 6 (Samstag) haben. Der Standardwert ist [] (leeres Array).
Beispiel
Im folgenden Beispiel werden Samstage und Sonntage deaktiviert, sodass der Benutzer nur
Werktage auswählen kann:
meinDF.disabledDays = [0, 6];
286
Kapitel 4: Komponenten-Referenz
DateField.disabledRanges
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.disabledRanges
Beschreibung
Eigenschaft; deaktiviert ein bestimmtes Datum oder einen Datumsbereich. Bei dieser Eigenschaft
handelt es sich um ein Objekt-Array. Jedes Objekt in diesem Array muss entweder ein DateObjekt sein, das den zu deaktivierenden Einzeltag angibt, oder ein Objekt, das entweder eine der
Eigenschaften rangeStart oder rangeEnd oder beide Eigenschaften enthält. Die Werte dieser
beiden Eigenschaften müssen Date-Objekte sein. Die Eigenschaften rangeStart und rangeEnd
bezeichnen Start- und Enddatum des Bereichs. Wenn eine der beiden Eigenschaften fehlt, setzt
sich der Bereich unbegrenzt in die entsprechende Richtung fort.
Der Standardwert für disabledRanges ist undefined.
Geben Sie bei der Definition der Daten für die Eigenschaft disabledRanges jeweils ein
vollständiges Datum an, also z. B. new Date(2003,6,24) statt new Date(). Wenn Sie kein
vollständiges Datum angeben wird die Zeit als 00:00:00 zurückgegeben.
Beispiel
Im folgenden Beispiel wird ein Array mit den Date-Objekten rangeStart und rangeEnd
definiert, wobei der Bereich vom 7. Mai bis zum 7. Juni deaktiviert werden soll:
meinDF.disabledRanges = [ {rangeStart: new Date(2003, 4, 7), rangeEnd: new
Date(2003, 5, 7)}];
Im folgenden Beispiel werden alle Tage nach dem 7. November deaktiviert:
meinDF.disabledRanges = [ {rangeStart: new Date(2003, 10, 7)} ];
Im folgenden Beispiel werden alle Tage vor dem 7. Oktober deaktiviert:
meinDF.disabledRanges = [ {rangeEnd: new Date(2002, 9, 7)} ];
Im folgenden Beispiel wird lediglich der 7. Dezember deaktiviert:
meinDF.disabledRanges = [ new Date(2003, 11, 7) ];
DateField.displayedMonth
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.displayedMonth
DateField-Komponente (nur Flash Professional)
287
Beschreibung
Eigenschaft; eine Zahl, die angibt, welcher Monat angezeigt wird. Die Zahl gibt ein Element aus
dem Array monthNames an, wobei 0 den ersten Monat bezeichnet. Standardwert ist der Monat
des aktuellen Datums.
Beispiel
Im folgenden Beispiel wird Dezember als der anzuzeigende Monat festgelegt:
meinDF.displayedMonth = 11;
Siehe auch
DateField.displayedYear
DateField.displayedYear
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.displayedYear
Beschreibung
Eigenschaft; eine Zahl, die angibt, welches Jahr angezeigt wird. Der Standardwert ist das aktuelle
Jahr.
Beispiel
Im folgenden Beispiel wird 2010 als das anzuzeigende Jahr festgelegt:
meinDF.displayedYear = 2010;
Siehe auch
DateField.displayedMonth
DateField.firstDayOfWeek
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.firstDayOfWeek
288
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; eine Zahl, die angibt, welcher Wochentag (0 - 6, wobei 0 das erste Element im Array
dayNames bezeichnet) in der ersten Spalte der DateField-Komponente angezeigt wird. Die
Änderung dieser Eigenschaft ändert zwar die Anordnung der Tagesspalten, hat aber keinen
Einfluss auf die Reihenfolge der Eigenschaft dayNames. Der Standardwert ist 0 (Sonntag)
Beispiel
Im folgenden Beispiel wird Montag als erster Tag der Woche festgelegt:
meinDF.firstDayOfWeek = 1;
Siehe auch
DateField.dayNames
DateField.monthNames
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.monthNames
Beschreibung
Eigenschaft; ein Array mit Strings, die die Monate bezeichnen, wie sie in der Kopfzeile der
DateField-Komponente angezeigt werden. Der Standardwert lautet ["Januar", "Februar",
"März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober",
"November", "Dezember"].
Beispiel
Im folgenden Beispiel werden die Monatsbezeichnungen für die Instanz meinDF eingestellt.
meinDF.monthNames = ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug",
"Sep", "Okt", "Nov", "Dez"];
DateField.open()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.open()
Parameter
Keine.
DateField-Komponente (nur Flash Professional)
289
Rückgaben
Keine.
Beschreibung
Methode; öffnet den Popup-DateChooser (Unterkomponente).
Beispiel
Mit dem folgenden Code wird der Popup-DateChooser der Instanz df geöffnet:
df.open();
DateField.open
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
on(open){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.open = function(eventObject){
...
}
meinDF.addEventListener("open", listenerObject)
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn eine DateChooserUnterkomponente geöffnet wird, nachdem ein Benutzer auf das Symbol geklickt hat.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
DateField-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Wenn dem
DateField meinDF beispielsweise der folgende Code zugewiesen wird, wird „_level0.meinDF“ an
das Bedienfeld Ausgabe gesendet:
on(open){
trace(this);
}
290
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (meinDF) setzt ein Ereignis (in diesem Fall open) ab, und das Ereignis
reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts (listenerObject). Eine
solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen dieses Ereignisses wird eine
von Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich
auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein
Ereignisobjekt (eventObject) an die Methode des Listener-Objekts übergeben. Jedes
Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit
Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert.
Anschließend rufen Sie die Methode UIEventDispatcher.addEventListener() für die
Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz zuzuordnen.
Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden, für ein Bild der Zeitleiste geschriebenen Beispiel wird eine Meldung an das
Bedienfeld Ausgabe gesendet, wenn ein Stepper namens meinDF geöffnet wird. In der ersten
Codezeile wird ein Listener-Objekt mit der Bezeichnung form erzeugt. In der zweiten Zeile wird
eine Funktion für das Ereignis open im Listener-Objekt definiert. Eine trace-Aktion innerhalb
der Funktion erzeugt anhand des automatisch übergebenen Ereignisobjekts (in diesem Fall
eventObj) eine Meldung. Die Eigenschaft target eines Ereignisobjekts ist die Komponente, die
das Ereignis generiert hat, in diesem Beispiel meinDF. Der Zugriff auf die Eigenschaft
DateField.selectedDate erfolgt über die Eigenschaft target des Ereignisobjekts. In der
letzten Zeile wird die Methode UIEventDispatcher.addEventListener() von meinDF aus
aufgerufen, und das Ereignis open und das Listener-Objekt form werden als Parameter an sie
übergeben:
form.open = function(eventObj){
trace("Popup wurde geöffnet, und das ausgewählte Datum lautet: " +
eventObj.target.selectedDate) ;
}
meinDF.addEventListener("open", form);
DateField.pullDown
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.pullDown
Beschreibung
Eigenschaft (schreibgeschützt); gibt eine Referenz auf die in der DateField-Komponente
enthaltene DateChooser-Komponente zurück. Die DateChooser-Unterkomponente wird
instanziiert, wenn ein Benutzer auf die DateField-Komponente klickt. Wenn jedoch die
Eigenschaft pullDown referenziert wird, bevor der Benutzer auf die Komponente klickt, wird der
DateChooser instanziiert und dann ausgeblendet.
DateField-Komponente (nur Flash Professional)
291
Beispiel
Im folgenden Beispiel wird die Sichtbarkeit der DateChooser-Unterkomponente auf false
gesetzt und ihre Größe auf 300 x 300 Pixel eingestellt.
meinDF.pullDown._visible = false;
meinDF.pullDown.setSize(300.300);
DateField.scroll
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
on(scroll){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.scroll = function(eventObject){
...
}
meinDF.addEventListener("scroll", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wenn eine Monatsschaltfläche
betätigt wird.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
DateField-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Wenn dem
DateField meinDF beispielsweise der folgende Code zugewiesen wird, wird „_level0.meinDF“ an
das Bedienfeld Ausgabe gesendet:
on(scroll){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (meinDF) setzt ein Ereignis (in diesem Fall scroll) ab, und das Ereignis
reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts (listenerObject). Eine
solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen dieses Ereignisses wird eine
von Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich
auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein
Ereignisobjekt (eventObject) an die Methode des Listener-Objekts übergeben. Jedes
Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit
Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Die
Ereignisprozedur des Ereignisses scroll hat eine zusätzliche Eigenschaft (detail), die nur einen
der folgenden Werte annehmen kann: nextMonth, previousMonth, nextYear, previousYear.
292
Kapitel 4: Komponenten-Referenz
Anschließend rufen Sie die Methode UIEventDispatcher.addEventListener() für die
Komponenteninstanz auf, die das Ereignis überträgt, um den Listener der Instanz zuzuordnen.
Wenn die Instanz das Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
In diesem, auf einem Bild der Zeitleiste geschriebenen Beispiel wird eine Meldung an das
Bedienfeld Ausgabe gesendet, wenn auf einer DateField-Instanz mit der Bezeichnung meinDF eine
Monatsschaltfläche betätigt wurde. In der ersten Codezeile wird ein Listener-Objekt mit der
Bezeichnung form erzeugt. In der zweiten Zeile wird eine Funktion für das Ereignis scroll im
Listener-Objekt definiert. Eine trace-Aktion innerhalb der Funktion erzeugt anhand des
automatisch übergebenen Ereignisobjekts (in diesem Fall eventObj) eine Meldung. Die
Eigenschaft target eines Ereignisobjekts ist die Komponente, die das Ereignis generiert hat, in
diesem Beispiel meinDF. In der letzten Zeile wird die Methode
UIEventDispatcher.addEventListener() von meinDateField aus aufgerufen, und das
Ereignis scroll und das Listener-Objekt form werden als Parameter an sie übergeben:
form = new Object();
form.scroll = function(eventObj){
trace(eventObj.detail);
}
meinDF.addEventListener("scroll", form);
DateField.selectableRange
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.selectableRange
Beschreibung
Eigenschaft; legt ein einzelnes auswählbares Datum oder einen auswählbaren Datumsbereich fest.
Der Wert dieser Eigenschaft ist ein Objekt, das aus zwei Date-Objekten mit der Bezeichnung
rangeStart und rangeEnd besteht. Die Eigenschaften rangeStart und rangeEnd bezeichnen
Start- und Enddatum des Auswahlbereichs. Wenn lediglich rangeStart ausgewählt wird, sind
alle Tage, die auf rangeStart folgen, aktiviert. Wenn lediglich rangeEnd ausgewählt wird, sind
alle Tage, die vor rangeEnd liegen, aktiviert. Der Standardwert ist undefined.
Wenn Sie lediglich einen einzelnen Tag aktivieren möchten, können Sie als Wert für
selectableRange ein einzelnes Date-Objekt auswählen.
Geben Sie bei der Festlegung der Daten ein vollständiges Datum an. also z. B. new
Wenn Sie kein vollständiges Datum angeben wird die Zeit
Date(2003,6,24) statt new Date().
als 00:00:00 zurückgegeben.
Der Wert von DateField.selectedDate wird auf undefined gesetzt, wenn er außerhalb des
Auswahlbereichs liegt.
DateField-Komponente (nur Flash Professional)
293
Die Werte von DateField.displayedMonth und DateField.displayedYear werden auf den
nächstgelegenen letzten Monat eingestellt, wenn der aktuelle Monat außerhalb des
Auswahlbereichs liegt. Beispiel: Wenn es sich beim aktuellen Monat um den August handelt und
der Auswahlbereich auf Juni 2003 bis Juli 2003 festgelegt wurde, wird der angezeigte Monat auf
Juli 2003 angepasst.
Beispiel
Im folgenden Beispiel wird als Auswahlbereich der Zeitraum vom 7. Mai bis 7. Juni (jeweils
einschließlich) festgelegt:
meinDF.selectableRange = {rangeStart: new Date(2001, 4, 7), rangeEnd: new
Date(2003, 5, 7)};
Im folgenden Beispiel wird als Auswahlbereich der Zeitraum nach dem 7. Mai (einschließlich)
festgelegt:
meinDF.selectableRange = {rangeStart: new Date(2003, 4, 7)};
Im folgenden Beispiel wird als Auswahlbereich der Zeitraum vor dem 7. Juni (einschließlich)
festgelegt:
meinDF.selectableRange = {rangeEnd: new Date(2003, 5, 7) };
Im folgenden Beispiel wird lediglich der 7. Juni als auswählbares Datum festgelegt:
meinDF.selectableRange = new Date(2003, 5, 7);
DateField.selectedDate
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinDF.selectedDate
Beschreibung
Eigenschaft; ein Date-Objekt, das das ausgewählte Datum angibt, sofern dieser Wert in den
Wertebereich der Eigenschaft selectableRange fällt. Der Standardwert ist undefined.
Beispiel
Im folgenden Beispiel wird das gewählte Datum auf den 7. Juni eingestellt:
meinDF.selectedDate = new Date(2003, 5, 7);
DateField.showToday
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
294
Kapitel 4: Komponenten-Referenz
Verwendung
meinDF.showToday
Beschreibung
Eigenschaft; bestimmt, ob das aktuelle Datum hervorgehoben wird. Der Standardwert lautet
true.
Beispiel
Im folgenden Beispiel wird die Hervorhebung des aktuellen Datums deaktiviert:
meinDF.showToday = false;
DepthManager-Klasse
ActionScript-Klassenname
mx.managers.DepthManager
Mit der DepthManager-Klasse werden der ActionScript MovieClip-Klasse Funktionen
hinzugefügt, mit denen Sie die Zuordnungen von relativen Tiefenebenen von Komponenten und
Movieclips verwalten können, darunter auch _root. Darüber hinaus können mit dieser Klasse
reservierte Tiefenebenen in einem speziellen Clip der höchsten Tiefenebene auf der _root-Ebene
für Systemdienste, wie beispielsweise Cursor oder QuickInfo, verwaltet werden.
Das API für die relative Tiefenanordnung setzt sich aus den folgenden Methoden zusammen:
•
•
•
•
•
DepthManager.createChildAtDepth()
DepthManager.createClassChildAtDepth()
DepthManager.setDepthAbove()
DepthManager.setDepthBelow()
DepthManager.setDepthTo()
Das API für den reservierten Tiefenbereich setzt sich aus den folgenden Methoden zusammen:
•
•
DepthManager.createClassObjectAtDepth()
DepthManager.createObjectAtDepth()
Übersicht: Methoden der DepthManager-Klasse
Methode
Beschreibung
DepthManager.createChildAtDepth()
Erstellt eine untergeordnete Instanz des angegebenen
Symbols auf der angegebenen Tiefenebene.
DepthManager.createClassChildAtDepth()
Erstellt ein Objekt der angegebenen Klasse auf der
angegebenen Tiefenebene.
DepthManager.createClassObjectAtDepth() Erstellt eine Instanz der angegebenen Klasse auf der
angegebenen Tiefenebene im speziellen Clip der
höchsten Tiefenebene.
DepthManager.createObjectAtDepth()
Erstellt ein Objekt auf der angegebenen Tiefenebene
im Clip der höchsten Tiefenebene.
DepthManager.setDepthAbove()
Weist die Tiefenebene über der angegebenen Instanz
zu.
DepthManager-Klasse
295
Methode
Beschreibung
DepthManager.setDepthBelow()
Weist die Tiefenebene unterhalb der angegebenen
Instanz zu.
DepthManager.setDepthTo()
Weist die Tiefenebene der angegebenen Instanz im
Clip der höchsten Tiefenebene zu.
DepthManager.createChildAtDepth()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
movieClipInstance.createChildAtDepth(linkageName, depthFlag[, initObj])
Parameter
linkageName
Ein Verknüpfungsbezeichner. Bei diesem Parameter handelt es sich um einen
String.
depthFlag Einer der folgenden Werte: DepthManager.kTop, DepthManager.kBottom,
DepthManager.kTopmost, DepthManager.kNotopmost. Die Markierungen der Tiefenebenen
sind statische Eigenschaften der DepthManager-Klasse. Sie müssen entweder auf das
DepthManager-Paket verweisen (beispielsweise mx.managers.DepthManager.kTopmost) oder
mit der import-Anweisung das DepthManager-Paket importieren.
initObj
Ein Initialisierungsobjekt. Dieser Parameter ist optional.
Rückgaben
Ein Verweis auf das erstellte Objekt.
Beschreibung
Methode; erstellt eine untergeordnete Instanz des im Parameter linkageName angegebenen
Symbols auf der im Parameter depthFlag angegebenen Tiefenebene.
Beispiel
Im folgenden Beispiel wird eine minuteHand-Instanz des MinuteSymbol-Movieclips erstellt und
oben auf die Uhr gesetzt:
import mx.managers.DepthManager;
minuteHand = clock.createChildAtDepth("MinuteSymbol", DepthManager.kTop);
296
Kapitel 4: Komponenten-Referenz
DepthManager.createClassChildAtDepth()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
movieClipInstance.createClassChildAtDepth( className, depthFlag[, initObj] )
Parameter
Ein Klassenname.
className
depthFlag Einer der folgenden Werte: DepthManager.kTop, DepthManager.kBottom,
DepthManager.kTopmost, DepthManager.kNotopmost. Die Markierungen der Tiefenebenen
sind statische Eigenschaften der DepthManager-Klasse. Sie müssen entweder auf das
DepthManager-Paket verweisen (beispielsweise mx.managers.DepthManager.kTopmost) oder
mit der import-Anweisung das DepthManager-Paket importieren.
initObj
Ein Initialisierungsobjekt. Dieser Parameter ist optional.
Rückgaben
Ein Verweis auf das erstellte untergeordnete Objekt.
Beschreibung
Methode; erstellt eine untergeordnete Instanz der im Parameter className angegebenen Klasse
auf der im Parameter depthFlag angegebenen Tiefenebene.
Beispiel
Mit dem folgenden Code wird ein Fokusrechteck auf alle NoTopmost-Objekte gesetzt:
import mx.managers.DepthManager
this.ring = createClassChildAtDepth(mx.skins.RectBorder, DepthManager.kTop);
Mit dem folgenden Code wird eine Instanz der Button-Klasse erstellt und ihr ein Wert für die
Eigenschaft label als initObj-Parameter übergeben:
import mx.managers.DepthManager
button1 = createClassChildAtDepth(mx.controls.Button, DepthManager.kTop,
{label: "Schaltfläche oben"});
DepthManager.createClassObjectAtDepth()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
DepthManager.createClassObjectAtDepth(className, depthSpace[, initObj])
DepthManager-Klasse
297
Parameter
Ein Klassenname.
className
Einer der folgenden Werte: DepthManager.kCursor, DepthManager.kTooltip.
Die Markierungen der Tiefenebenen sind statische Eigenschaften der DepthManager-Klasse. Sie
müssen entweder auf das DepthManager-Paket verweisen (beispielsweise
mx.managers.DepthManager.kCursor) oder mit der import-Anweisung das DepthManagerPaket importieren.
depthSpace
initObj
Ein Initialisierungsobjekt. Dieser Parameter ist optional.
Rückgaben
Ein Verweis auf das erstellte Objekt.
Beschreibung
Methode; erstellt ein Objekt der im Parameter className angegebenen Klasse auf der im
Parameter depthSpace angegebenen Tiefenebene. Diese Methode ermöglicht den Zugriff auf die
reservierten Tiefenbereiche im speziellen Clip der höchsten Tiefenebene.
Beispiel
Im folgenden Beispiel wird ein Objekt aus der Button-Klasse erstellt:
import mx.managers.DepthManager
meinCursorButton = createClassObjectAtDepth(mx.controls.Button,
DepthManager.kCursor, {label: "Cursor"});
DepthManager.createObjectAtDepth()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
DepthManager.createObjectAtDepth(linkageName, depthSpace[, initObj])
Parameter
linkageName
Ein Verknüpfungsbezeichner.
Einer der folgenden Werte: DepthManager.kCursor, DepthManager.kTooltip.
Die Markierungen der Tiefenebenen sind statische Eigenschaften der DepthManager-Klasse. Sie
müssen entweder auf das DepthManager-Paket verweisen (beispielsweise
mx.managers.DepthManager.kCursor) oder mit der import-Anweisung das DepthManagerPaket importieren.
depthSpace
initObj
Ein Initialisierungsobjekt.
Rückgaben
Ein Verweis auf das erstellte Objekt.
298
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; erstellt ein Objekt auf der angegebenen Tiefenebene. Diese Methode ermöglicht den
Zugriff auf die reservierten Tiefenbereiche im speziellen Clip der höchsten Tiefenebene.
Beispiel
Im folgenden Beispiel wird eine Instanz des TooltipSymbol-Symbols erstellt und auf der für
QuickInfos vorgesehenen Tiefenebene platziert:
import mx.managers.DepthManager
meinCursorTooltip = createObjectAtDepth("TooltipSymbol",
DepthManager.kTooltip);
DepthManager.setDepthAbove()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
movieClipInstance.setDepthAbove(instance)
Parameter
instance
Ein Instanzname.
Rückgaben
Keine.
Beschreibung
Methode; weist einer Movieclip- oder einer Komponenten-Instanz eine Tiefenebene über der im
Parameter instance angegebenen Instanz zu.
DepthManager.setDepthBelow()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
movieClipInstance.setDepthBelow(instance)
Parameter
instance
Ein Instanzname.
Rückgaben
Keine.
DepthManager-Klasse
299
Beschreibung
Methode; weist einer Movieclip- oder einer Komponenten-Instanz eine Tiefenebene unter der im
Parameter instance angegebenen Instanz zu.
Beispiel
Mit dem folgenden Code wird der Instanz textInput eine Tiefenebene unter der Instanz button
zugewiesen:
textInput.setDepthBelow(button);
DepthManager.setDepthTo()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
movieClipInstance.setDepthTo(depth)
Parameter
depth
Eine Tiefenebene.
Rückgaben
Keine.
Beschreibung
Methode; weist movieClipInstance die im Parameter depth angegebene Tiefenebene zu. Durch
diese Methode wird eine Instanz in eine andere Tiefenebene verschoben, sodass für ein weiteres
Objekt Platz geschaffen wird.
Beispiel
Im folgenden Beispiel wird die Tiefenebene der Instanz mc1 auf 10 festgelegt:
mc1.setDepthTo(10);
Weitere Informationen zu Tiefenebenen und Stapelanordnung finden Sie unter „Nächsthöhere
verfügbare Tiefe bestimmen“ im ActionScript-Referenzhandbuch.
300
Kapitel 4: Komponenten-Referenz
FocusManager-Klasse
Mit dem FocusManager können Sie die Reihenfolge festlegen, in der die Komponenten den
Fokus erhalten, wenn der Anwender die Tabulatortaste zum Navigieren in der Anwendung
verwendet. Mit dem FocusManager-API können Sie festlegen, welche Schaltfläche aktiviert wird,
wenn der Anwender die Eingabetaste betätigt. Formulare sollten beispielsweise so aufgebaut sein,
dass der Anwender mit der Tabulatortaste zwischen den einzelnen Feldern wechseln und die
Daten mit der Eingabetaste abschicken kann.
Unterstützung für den FocusManager ist in allen Komponenten implementiert; Sie brauchen
hierfür keinen Code zu schreiben. Der FocusManager interagiert darüber hinaus mit dem
System-Manager, der die FocusManager-Instanzen beim Aktivieren und Deaktivieren von
Popupfenstern aktiviert bzw. deaktiviert. Modale Fenster haben jeweils eine eigene
FocusManager-Instanz und fungieren bei der Navigation mit der Tabulatortaste als geschlossene
Einheit. Dadurch wird verhindert, dass Komponenten in anderen Fenstern angesteuert werden.
Der FocusManager erkennt Optionsfeldgruppen (Optionsfelder mit definierter
RadioButton.groupName-Eigenschaft) und weist derjenigen Instanz in der Gruppe den Fokus
zu, bei der die Eigenschaft selected auf true gesetzt ist. Wenn die Tabulatortaste betätigt wird,
überprüft der FocusManager, ob das nächste Objekt denselben Gruppennamen (groupName) hat
wie das aktuelle Objekt. Wenn dies der Fall ist, erhält automatisch das nächste Objekt mit einem
anderen groupName den Fokus. Diese Funktion kann auch für andere Komponentengruppen
verwendet werden, die die Eigenschaft groupName unterstützen.
Der FocusManager verwaltet Fokusänderungen infolge von Mausklicks. Wenn der Anwender auf
ein Objekt klickt, erhält dieses den Fokus.
Der FocusManager weist Komponenten in einer Anwendung nicht automatisch den Fokus zu.
Im Hauptfenster und in Popupfenstern wird der Fokus nur dann standardmäßig auf eine
Komponente gelegt, wenn FocusManager.setFocus() aufgerufen wurde.
Mit dem FocusManager arbeiten
Der FocusManager weist Komponenten nicht automatisch den Fokus zu. Wenn Sie einer
Komponente beim Laden einer Anwendung den Fokus zuweisen möchten, müssen Sie ein Skript
schreiben, das explizit FocusManager.setFocus() aufruft.
Sie können eine Anwendung für die fokusgesteuerte Navigation einrichten, indem Sie Objekten
(wie z. B. Schaltflächen), die einen Eingabefokus erhalten sollen, die Eigenschaft tabIndex
zuweisen. Wenn der Benutzer die Tabulatortaste drückt, sucht der FocusManager nach einem
aktivierten Objekt, bei dem der Wert der Eigenschaft tabIndex höher ist als der aktuelle Wert
von tabIndex. Nachdem der maximale Wert der Eigenschaft tabIndex erreicht wurde, fängt der
FocusManager wieder bei Null an. Im folgenden Beispiel erhält zuerst das Objekt comment
(TextArea-Komponente o. ä.) und anschließend das Objekt okButton den Eingabefokus:
comment.tabIndex = 1;
okButton.tabIndex = 2;
Sie können einen Tabulatorindexwert auch mit Hilfe des Bedienfelds Eingabehilfen zuweisen.
Wenn kein Element auf der Bühne über einen Tabulatorindexwert verfügt, verwendet der
FocusManager die z-Reihenfolge. Die z-Reihenfolge wird in erster Linie durch die Reihenfolge
festgelegt, in der Komponenten auf die Bühne gezogen werden. Sie können die endgültige zReihenfolge jedoch auch mit Hilfe der Befehle Modifizieren, Anordnen, In den Vordergrund
bzw. Hintergrund festlegen.
FocusManager-Klasse
301
Sie können eine Schaltfläche erstellen, die beim Betätigen der Eingabetaste durch den Anwender
den Fokus erhält, indem Sie die Eigenschaft FocusManager.defaultPushButton auf den
Instanznamen der betreffenden Schaltfläche setzen:
focusManager.defaultPushButton = okButton;
Hinweis: Der FocusManager reagiert darauf, wann Objekte auf der Bühne platziert werden (die
Tiefenebene von Objekten) und nicht auf ihre jeweilige relative Position auf der Bühne. In diesem
Punkt unterscheidet sich das Verhalten bei der Navigation mit der Tabulatortaste von dem des Flash
Players.
FocusManager-Parameter
Der FocusManager unterstützt keine Authoring-Parameter. Sie müssen die ActionScriptMethoden und -Eigenschaften der FocusManager-Klasse im Bedienfeld Aktionen verwenden.
Weitere Informationen finden Sie unter FocusManager-Klasse.
Anwendungen mit dem FocusManager erstellen
Gehen Sie wie im Folgenden beschrieben vor, um ein Fokusschema in einer Flash-Anwendung zu
erstellen.
1 Ziehen Sie die TextInput-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Weisen Sie der Komponente im Eigenschafteninspektor den Instanznamen comment zu.
3 Ziehen Sie die Button-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
4 Weisen Sie der Komponente im Eigenschafteninspektor den Instanznamen okButton und dem
Parameter label den Wert OK zu.
5 Geben Sie im ersten Bild des Bedienfelds Aktionen den folgenden Code ein:
comment.tabIndex = 1;
okButton.tabIndex = 2;
focusManager.setFocus(comment);
focusManager.defaultPushButton = okButton;
lo = new Object();
lo.click = function(evt){
trace(evt.target + " wurde angeklickt");
}
okButton.addEventListener("click", lo);
In diesem Beispiel wird die Tabulatorreihenfolge festgelegt sowie eine Standardschaltfläche
zugewiesen, an die ein click-Ereignis übermittelt wird, wenn der Anwender die Eingabetaste
betätigt.
Den FocusManager anpassen
Sie können die Farbe des Fokusrings im Halo-Thema ändern, indem Sie den Wert des Stils
ändern.
themeColor
Der FocusManager verwendet FocusRect-Skin zum Zeichnen des Fokus. Dieses Skin kann ersetzt
oder bearbeitet werden, und Unterklassen können benutzerdefinierte Fokusindikatoren zeichnen,
indem sie UIComponent.drawFocus außer Kraft setzen.
302
Kapitel 4: Komponenten-Referenz
FocusManager-Klasse
Vererbung
UIObject > UIComponent > FocusManager
ActionScript-Klassenname
mx.managers.FocusManager
Übersicht: Methoden der FocusManager-Klasse
Methode
Beschreibung
FocusManager.getFocus()
Gibt eine Referenz auf das Objekt mit dem Fokus
zurück.
FocusManager.sendDefaultPushButtonEvent() Sendet ein click-Ereignis an Listener-Objekte, die
für die Standardschaltfläche registriert sind.
FocusManager.setFocus()
Weist dem angegebenen Objekt den Fokus zu.
Übersicht: Eigenschaften der FocusManager-Klasse
Eigenschaft
Beschreibung
FocusManager.defaultPushButton
Das Objekt, an das ein click-Ereignis gesendet
wird, wenn der Anwender die Eingabetaste betätigt.
FocusManager.defaultPushButtonEnabled
Gibt an, ob die Verarbeitung von Tastatureingaben
für die Standardschaltfläche aktiviert (true) oder
deaktiviert (false) ist. Der Standardwert lautet
true.
FocusManager.enabled
Gibt an, ob die Navigation mit der Tabulatortaste
aktiviert (true) oder deaktiviert (false) ist. Der
Standardwert lautet true.
FocusManager.nextTabIndex
Der nächste Wert der Eigenschaft tabIndex.
FocusManager.defaultPushButton
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004.
Verwendung
focusManager.defaultPushButton
Beschreibung
Eigenschaft; gibt die Standardschaltfläche für die Anwendung an. Wenn der Anwender die
Eingabetaste betätigt, wird ein click-Ereignis an die für die Standardschaltfläche registrierten
Listener gesendet. Der Standardwert ist undefined; der Datentyp für die Eigenschaft ist Objekt.
Im FocusManager wird mit der Stildeklaration emphasized der SimpleButton-Klasse die aktuelle
Standardschaltfläche angegeben.
FocusManager-Klasse
303
Der Wert der Eigenschaft defaultPushButton ist immer die Schaltfläche mit dem Fokus. Die
Eigenschaft defaultPushButton bewirkt nicht, dass die Standardschaltfläche von vornherein
den Fokus erhält. Wenn in einer Anwendung mehrere Schaltflächen verfügbar sind, erhält die
Schaltfläche mit dem Fokus das click-Ereignis, sobald die Eingabetaste gedrückt wird. Wenn der
Fokus beim Drücken der Eingabetaste auf einer anderen Komponente liegt, wird die Eigenschaft
defaultPushButton auf ihren ursprünglichen Wert zurückgesetzt.
Beispiel
Mit dem folgenden Code wird die Standardschaltfläche für die Instanz OKButton festgelegt:
FocusManager.defaultPushButton = OKButton;
Siehe auch
FocusManager.defaultPushButtonEnabled,
FocusManager.sendDefaultPushButtonEvent()
FocusManager.defaultPushButtonEnabled
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
focusManager.defaultPushButtonEnabled
Beschreibung
Eigenschaft; ein boolescher Wert, der bestimmt, ob die Verarbeitung von Tastatureingaben für die
Standardschaltfläche aktiviert (true) oder deaktiviert (false) ist. Wenn
defaultPushButtonEnabled auf false gesetzt ist, kann die Komponente beim Betätigen der
Eingabetaste direkt reagieren und den Vorgang intern verarbeiten.Sie müssen die standardmäßige
Verarbeitung der Tastatureingaben wieder aktivieren; betrachten Sie hierfür die Methode
onKillFocus() (weitere Informationen finden Sie unter MovieClip.onKillFocus im
ActionScript-Lexikon) oder das Ereignis focusOut der Komponente. Der Standardwert lautet
true.
Beispiel
Mit dem folgenden Code wird die Verarbeitung der Tastatureingaben durch die
Standardschaltfläche deaktiviert:
focusManager.defaultPushButtonEnabled = false;
FocusManager.enabled
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
304
Kapitel 4: Komponenten-Referenz
Verwendung
focusManager.enabled
Beschreibung
Eigenschaft; ein Boolescher Wert, mit dem festgelegt wird, ob die Tabulatorverarbeitung für eine
bestimmte Gruppe von Objekten mit Fokus aktiviert (true) oder deaktiviert (false) ist.
(Beispielsweise kann ein weiteres Popupfenster über einen eigenen FocusManager verfügen.)
Wenn enabled auf false gesetzt wird, kann die Komponente beim Betätigen der Tabulatortaste
direkt reagieren und den Vorgang intern verarbeiten. Sie müssen die Verarbeitung durch den
FocusManager wieder aktivieren; betrachten Sie hierfür die Methode onKillFocus() (weitere
Informationen hierzu finden Sie unter MovieClip.onKillFocus im ActionScript-Lexikon) oder
das Ereignis focusOut der Komponente. Der Standardwert lautet true.
Beispiel
Der folgende Code deaktiviert die Tabulatorverarbeitung:
focusManager.enabled = false;
FocusManager.getFocus()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
focusManager.getFocus()
Parameter
Keine.
Rückgaben
Eine Referenz auf das Objekt mit dem Fokus.
Beschreibung
Methode; gibt eine Referenz auf das Objekt zurück, das gerade den Eingabefokus hat.
Beispiel
Mit dem folgenden Code wird der Fokus auf meinOKButton gesetzt, wenn meinInputText
gerade den Fokus hat:
if (focusManager.getFocus() == meinInputText)
{
focusManager.setFocus(meinOKButton);
}
Siehe auch
FocusManager.setFocus()
FocusManager-Klasse
305
FocusManager.nextTabIndex
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
FocusManager.nextTabIndex
Beschreibung
Eigenschaft; die nächste verfügbare Tabulatorindexnummer. Mit dieser Eigenschaft können Sie
die Eigenschaft tabIndex eines Objekts dynamisch festlegen.
Beispiel
Mit dem folgenden Code erhält die Instanz meinecheckbox den nächsthöheren tabIndex-Wert:
meinecheckbox.tabIndex = focusManager.nextTabIndex;
Siehe auch
UIComponent.tabIndex
FocusManager.sendDefaultPushButtonEvent()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
focusManager.sendDefaultPushButtonEvent()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; sendet ein click-Ereignis an Listener-Objekte, die für die Standardschaltfläche
registriert sind. Mit dieser Methode können Sie click-Ereignisse programmgesteuert senden.
Beispiel
Mit dem folgenden Code wird das click-Ereignis der Standardschaltfläche ausgelöst, und die
Felder für den Benutzernamen und das Kennwort werden ausgefüllt, wenn ein Benutzer die
CheckBox-Instanz chb auswählt (das Kontrollkästchen ist hier mit „Automatische Anmeldung“
bezeichnet):
306
Kapitel 4: Komponenten-Referenz
name_txt.tabIndex = 1;
password_txt.tabIndex = 2;
chb.tabIndex = 3;
submit_ib.tabIndex = 4;
focusManager.defaultPushButton = submit_ib;
chbObj = new Object();
chbObj.click = function(o){
if (chb.selected == true){
name_txt.text = "Judith";
password_txt.text = "foobar";
focusManager.sendDefaultPushButtonEvent();
} else {
name_txt.text = "";
password_txt.text = "";
}
}
chb.addEventListener("click", chbObj);
submitObj = new Object();
submitObj.click = function(o){
if (password_txt.text != "foobar"){
trace("Fehler beim Absenden");
} else {
trace("Super! sendDefaultPushButtonEvent hat funktioniert!");
}
}
submit_ib.addEventListener("click", submitObj);
Siehe auch
FocusManager.defaultPushButton, FocusManager.sendDefaultPushButtonEvent()
FocusManager.setFocus()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
focusManager.setFocus(object)
Parameter
object
Eine Referenz auf das Objekt, das den Fokus erhalten soll.
Rückgaben
Keine.
Beschreibung
Methode; setzt den Fokus auf das angegebene Objekt.
FocusManager-Klasse
307
Beispiel
Mit dem folgenden Code erhält meinOKButton den Fokus:
focusManager.setFocus(meinOKButton);
Siehe auch
FocusManager.getFocus()
Form-Klasse (nur Flash Professional)
Vererbung
UIObject > UIComponent > View > Loader > Screen > Form
ActionScript-Klassenname
mx.screens.Form
Die Form-Klasse bietet das Laufzeitverhalten der Formulare, die Sie im Übersichtsfenster in
Flash MX Professional 2004 erstellen. Eine Übersicht zum Arbeiten mit Bildschirmen finden Sie
unter „Mit Bildschirmen arbeiten (nur Flash Professional)“ in der Hilfe „Flash verwenden“.
Form-Klasse verwenden (nur Flash Professional)
Formulare dienen sowohl als Container für Grafikobjekte (z. B. UI-Elemente in einer
Anwendung) und als Anwendungsstatus. Sie können das Übersichtsfenster verwenden, um die
verschiedenen Zustände einer von Ihnen erstellten Anwendung, bei der jedes Formular einen
anderen Anwendungsstatus besitzt, darzustellen. Die folgende Abbildung stellt z. B. das
Übersichtsfenster für eine Beispielanwendung dar, die für die Verwendung von Formularen
geeignet ist.
Ansicht des Übersichtsfensters bei einer Beispielanwendung für Formulare
308
Kapitel 4: Komponenten-Referenz
Diese Abbildung stellt eine Übersicht einer Beispielanwendung mit dem Namen „Employee
Directory“ dar, die aus mehreren Formularen besteht. Das Formular „entryForm“ (in der obigen
Abbildung ausgewählt) enthält mehrere Benutzeroberflächenobjekte, einschließlich
Texteingabefelder, Bezeichnungen und eine Schaltfläche. Der Entwickler kann dem Benutzer
dieses Formular einfach anzeigen, indem er die Sichtbarkeit wechselt (mit der Eigenschaft
Form.visible ), während er auch gleichzeitig die Sichtbarkeit der anderen Formulare wechselt.
Mit dem Bedienfeld Verhalten (Fenster > Entwicklungs-Bedienfelder > Verhalten) können Sie
Formularen auch Verhalten und Steuerungen zuordnen. Weitere Informationen zum Hinzufügen
von Übergängen und Steuerungen zu Bildschirmen finden Sie unter „Steuerungen und
Übergänge für Bildschirme mit Verhalten erstellen (nur Flash Professional)“ in der Hilfe „Flash
verwenden“.
Da die Form-Klasse die Loader-Klasse erweitert, können Sie einfach externe Inhalte (entweder
SWF- oder JPEG-Dateien) in ein Formular laden. Der Inhalt eines Formulars kann z. B. eine
separate SWF-Datei sein, die wiederum Formulare enthalten kann. So können Sie Ihre
Formularanwendungen modularisieren und somit sowohl die Pflege der Anwendung
vereinfachen als auch die Downloadzeit verkürzen. Weitere Informationen finden Sie unter
„Externe Inhalte in Bildschirme laden (nur Flash Professional)“ auf Seite 501.
Form-Objektparameter
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder KomponentenInspektor für jede Form-Objektinstanz festlegen:
Gibt an, ob der durch den Parameter contentPath angegebene Inhalt automatisch
geladen werden soll (true), oder ob mit dem Laden gewartet werden soll, bis die Methode
Loader.load() aufgerufen wird (false). Der Standardwert lautet true.
autoload
contentPath Gibt den Inhalt des Formulars an. Dabei kann es sich um den
Verknüpfungsbezeichner eines Movieclips oder die absolute bzw. relative URL für eine in die
Folie zu ladende SWF- oder JPG-Datei handeln. Standardgemäß wird der geladene Inhalt so
abgeschnitten, dass er in die Folie passt.
visible
Gibt an, ob das Formular beim ersten Laden angezeigt wird (true) oder nicht (false).
Übersicht: Methoden der Form-Klasse
Methode
Beschreibung
Form.getChildForm()
Gibt das untergeordnete Formular an der angegebenen
Indexposition zurück.
Erbt alle Methoden von UIObject, UIComponent, View, Loader-Komponente und ScreenKlasse (nur Flash Professional).
Form-Klasse (nur Flash Professional)
309
Übersicht: Eigenschaften der Form-Klasse
Eigenschaft
Beschreibung
Form.currentFocusedForm
Gibt das Formular am Ende der Verzweigung zurück, das
den aktuellen globalen Fokus enthält.
Form.indexInParentForm
Gibt den Index (Bezugsbasis null) dieses Formulars in der
Liste der Unterformulare des übergeordneten Formulars
zurück.
Form.visible
Gibt an, ob das Formular angezeigt wird, wenn das
übergeordnete Formular, die Folie, der Movieclip oder die
SWF-Datei angezeigt wird.
Form.numChildForms
Gibt die Anzahl an untergeordneten Formulare dieses
Formulars zurück.
Form.parentIsForm
Gibt an, ob das übergeordnete Objekt dieses Formulars
ebenfalls ein Formular ist.
Form.rootForm
Gibt den Stamm der Formularstruktur oder der
untergeordneten Struktur, die das Formular enthält, zurück.
Erbt alle Methoden von UIObject, UIComponent, View, Loader-Komponente und ScreenKlasse (nur Flash Professional).
Form.currentFocusedForm
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
mx.screens.Form.currentFocusedForm
Beschreibung
Eigenschaft (schreibgeschützt); gibt das Form-Objekt, das den aktuellen globalen Fokus enthält,
zurück. Der aktuelle Fokus kann sich auf dem Formular selbst oder einem Movieclip, einem
Textobjekt oder einer Komponente innerhalb dieses Formulars befinden. Er kann null sein, wenn
es keinen aktuellen Fokus gibt.
Beispiel
Der folgende Code, der einer Schaltfläche (nicht angezeigt) zugewiesen ist, zeigt den Namen des
Formulars mit dem aktuellen Fokus an.
trace("Das Formular mit dem aktuellen Fokus ist: " +
mx.screens.Form.currentFocusedForm);
310
Kapitel 4: Komponenten-Referenz
Form.getChildForm()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinForm.getChildForm(childIndex)
Parameter
Eine Zahl, die den Index (Bezugsbasis null) des zurückzugebenden
untergeordneten Formulars angibt.
childIndex
Rückgaben
Ein Form-Objekt.
Beschreibung
Methode; gibt das untergeordnete Formular von meinForm, dessen Index childIndex ist, zurück.
Beispiel
Im folgenden Beispiel werden im Bedienfeld Ausgabe die Namen aller untergeordneten FormObjekte, die zum Stamm-Form-Objekt mit dem Namen Application (Anwendung) gehören,
angezeigt.
for (var i:Number = 0; i < _root.Application.numChildForms; i++) {
var childForm:mx.screens.Form = _root.Application.getChildForm(i);
trace(childForm._name);
}
Siehe auch
Form.numChildForms
Form.indexInParentForm
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinForm.indexInParentForm
Beschreibung
Eigenschaft (schreibgeschützt); enthält den Index (Bezugsbasis null) von meinForm in der Liste
der untergeordneten Formulare des übergeordneten Formulars. Falls es sich bei dem
übergeordneten Objekt von meinForm um einen Bildschirm handelt und nicht um ein Formular
(es ist z. B. eine Folie), dann ist indexInParentForm immer 0.
Form-Klasse (nur Flash Professional)
311
Beispiel
var meinIndex:Number = meinForm.indexInParent;
if (meinForm == meinForm._parent.getChildForm(meinIndex)) {
trace("Ich bin, wo ich sein sollte");
}
Siehe auch
Form.getChildForm()
Form.numChildForms
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinForm.numChildForms
Beschreibung
Eigenschaft (schreibgeschützt); gibt die Anzahl an untergeordneten Formularen von meinForm
zurück. Diese Eigenschaft enthält keine Folien, die in meinForm enthalten sind, sondern nur
Formulare.
Beispiel
Der folgende Code durchläuft alle untergeordneten Formulare, die in meinForm enthalten sind,
und zeigt deren Namen im Bedienfeld Ausgabe an.
var howManyKids:Number = meinForm.numChildForms;
for(i=0; i<howManyKids; i++) {
var childForm = meinForm.getChildForm(i);
trace(childForm._name);
}
Siehe auch
Form.getChildForm()
Form.parentIsForm
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinForm.parentIsForm
312
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft (schreibgeschützt): Gibt einen Booleschen Wert (true oder false) zurück, der
angibt, ob das übergeordnete Objekt des angegebenen Formulars ebenfalls ein Formular ist
(true) oder nicht (false). Bei „false“ befindet sich meinForm auf der obersten Stufe der
Formularhierarchie.
Beispiel
if (meinForm.parentIsForm) {
trace("Ich habe "+meinForm._parent.numChildScreens+" gleichgeordnete
Bildschirme");
} else {
trace("Ich bin das Stammformular und habe keine gleichgeordneten Elemente");
}
Form.rootForm
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinForm.rootForm
Beschreibung
Eigenschaft (schreibgeschützt); gibt das Formular an den Anfang der Formularhierarchie, die
meinForm enthält, zurück. Sollte meinForm in einem Objekt enthalten sein, das kein Formular ist
(z. B. eine Folie), so gibt diese Eigenschaft meinForm zurück.
Beispiel
Im folgenden Beispiel wird ein Bezug auf das Stammformular von meinForm in einer Variable mit
dem Namen root platziert. Falls sich der Wert, der root zugewiesen wurde, auf meinForm
bezieht, befindet sich meinForm an der Spitze der Formularstruktur.
var root:mein.screens.Form = meinForm.rootForm;
if(rootForm == meinForm) {
trace("meinForm ist das oberste Formular in der Struktur");
}
Form.visible
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinForm.visible
Form-Klasse (nur Flash Professional)
313
Beschreibung
Eigenschaft; gibt an, ob meinForm angezeigt wird, wenn das übergeordnete Formular, die Folie,
der Movieclip oder der Film angezeigt wird. Sie können diese Eigenschaft auch mit dem
Eigenschafteninspektor in der Flash-Authoring-Umgebung einstellen.
Wenn diese Eigenschaft auf true eingestellt ist, erhält meinForm ein Ereignis reveal; wenn sie
auf false eingestellt ist, erhält meinForm ein Ereignis hide. Sie können Formularen Übergänge
hinzufügen, die ausgeführt werden, wenn ein Formular eines dieser Ereignisse erhält. Weitere
Informationen zum Hinzufügen von Übergängen zu Bildschirmen finden Sie unter „Steuerungen
und Übergänge für Bildschirme mit Verhalten erstellen (nur Flash Professional)“ in der Hilfe
„Flash verwenden“.
Beispiel
Der folgende Code, der einer Instanz der Button-Komponente zugewiesen ist, setzt die
Eigenschaft visible des Formulars, das die Schaltfläche enthält, auf false.
on(click){
_parent.visible = true;
}
Label-Komponente
Bei einer Label-Komponente handelt es sich um einen einzeiligen Bezeichnungstext. Der
Bezeichnungstext kann mit Hilfe von HTML-Tags formatiert werden. Sie können auch die
Ausrichtung und Größe der Bezeichnung steuern. Label-Komponenten haben keine Ränder,
können keinen Fokus erhalten und übermitteln keine Ereignisse.
Die Änderungen an den Parametern der einzelnen Label-Instanzen, die beim Authoring im
Eigenschafteninspektor oder im Komponenten-Inspektor vorgenommen werden, werden jeweils
in einer Live-Vorschau angezeigt. Wegen des fehlenden Rahmens müssen Sie beim Authoring
einen Textinhalt mit dem Parameter text zuweisen, um eine Label-Komponente in der LiveVorschau sichtbar zu machen. Der Parameter autoSize wird in der Live-Vorschau nicht
unterstützt.
Die einer Anwendung hinzugefügten Label-Komponenten können Sie über das Bedienfeld
Eingabehilfen für Bildschirmleseprogramme zugänglich machen. Dazu brauchen Sie lediglich die
folgende Codezeile einzufügen:
mx.accessibility.LabelAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie in der Hilfe „Flash verwenden“ unter
„Barrierefreie Inhalte erstellen“.
Mit der Label-Komponente arbeiten
Mit der Label-Komponente können Sie Textbezeichnungen für andere Komponenten eines
Formulars erzeugen. So können Sie beispielsweise ein Texteingabefeld (TextInput), in das der
Anwender seinen Namen eingeben soll, mit der Bezeichnung „Name:“ versehen. Wenn Sie eine
Anwendung mit Komponenten aus Version 2 (v2) der Macromedia Komponenten-Architektur
erstellen, empfiehlt es sich, anstelle normaler Textfelder die Label-Komponente zu verwenden, bei
der Sie mit Hilfe von Stilen eine einheitliche Gestaltung erreichen können.
314
Kapitel 4: Komponenten-Referenz
Label-Parameter
Jeder Instanz einer Label-Komponente können beim Authoring im Bedienfeld
Eigenschafteninspektor oder Komponenten-Inspektor die folgenden Parameter zugewiesen
werden:
text
gibt den Text der Bezeichnung an; der Standardwert ist Label.
html gibt an, ob in der Bezeichnung HTML-Formatierungen verwendet werden (true oder
false). Wenn der Parameter html auf true gesetzt ist, können keine Stile zur Formatierung
Bezeichnung verwendet werden. Der Standardwert lautet false.
der
Der Parameter autoSize gibt an, ob Größe und Ausrichtung der Bezeichnung automatisch an
den Textumfang angepasst werden. Der Standardwert ist none. Für diesen Parameter können die
folgenden Werte angegeben werden:
• Mit none werden die Größe und Ausrichtung der Bezeichnung nicht an den Text angepasst.
• Mit left wird die Bezeichnung am rechten und unteren Rand an den Text angepasst. Linker
•
•
und oberer Rand werden nicht verändert.
Mit center wird die Bezeichnung am unteren Rand an den Text angepasst. Die horizontale
Mitte der Bezeichnung bleibt an der Position der ursprünglichen horizontalen Mitte verankert.
Mit right wird die Bezeichnung am linken und unteren Rand an den Text angepasst. Oberer
und rechter Rand werden nicht verändert.
Hinweis: Die Eigenschaft autoSize der Label-Komponente unterscheidet sich von der Eigenschaft
autoSize des integrierten ActionScript-Objekts TextField.
Sie können diese und weitere Optionen für Label-Instanzen über die entsprechenden
Eigenschaften, Methoden und Ereignisse in ActionScript steuern. Weitere Informationen finden
Sie unter Label-Klasse.
Anwendungen mit der Label-Komponente erstellen
Im Folgenden wird erläutert, wie Sie einer Anwendung beim Authoring eine Label-Komponente
hinzufügen. Im Beispiel befindet sich die Bezeichnung neben einem Kombinationsfeld mit
Datumsangaben in einer Anwendung zum Einkaufen in einem Online-Warenhaus.
Führen Sie die folgenden Schritte aus, um eine Anwendung mit einer Label-Komponente zu
erstellen:
1 Ziehen Sie eine Label-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Geben Sie im Bedienfeld Komponenten-Inspektor für den Parameter label den Wert
Expiration Date ein.
Die Label-Komponente anpassen
Label-Komponenten können sowohl beim Authoring als auch zur Laufzeit horizontal und
vertikal transformiert werden. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne
aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Außerdem können Sie den Authoring-Parameter autoSize
setzen, um die Größe der Bezeichnung automatisch an den Text anzupassen (in der LiveVorschau funktioniert das allerdings nicht). Weitere Informationen finden Sie unter „LabelParameter“ auf Seite 315. Zur Laufzeit können Sie die Methode setSize() (siehe
UIObject.setSize()) oder Label.autoSize verwenden.
Label-Komponente
315
Stile für die Label-Komponente verwenden
Durch Zuweisen von Stileigenschaften können Sie die Gestaltung einer Label-Instanz ändern. Ein
Stil kann immer nur für den gesamten Text innerhalb einer Instanz der Label-Komponente
zugewiesen werden. Sie können also nicht den Stil color für ein Wort auf blue und für ein
anderes Wort innerhalb derselben Bezeichnung auf red setzen.
Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten.
Weitere Informationen zu Stilen finden Sie unter „Stile zur Farb- und Textanpassung in einer
Komponente verwenden“ auf Seite 31.
Die Label-Komponente unterstützt die folgenden Stile:
Stil
Beschreibung
color
Die Standardfarbe für Text.
embedFonts
Die in das Dokument einzubettenden Schriftarten.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“.
fontWeight
Der Schriftstil für den Text: „normal“ oder „bold“.
textAlign
Die Textausrichtung: „left“ (links), „right“ (rechts) oder „center“ (zentriert).
textDecoration Textauszeichnung; mögliche Werte sind „none“ (keine) und „underline“
(unterstrichen).
Skins für die Label-Komponente verwenden
Die Label-Komponente unterstützt keine Skins.
Weitere Informationen zur Verwendung von Skins für Komponenten finden Sie unter „SkinningKomponenten“ auf Seite 42.
Label-Klasse
Vererbung
UIObject > Label
ActionScript-Klassenname
mx.controls.Label
Mit den Eigenschaften der Label-Klasse können Sie zur Laufzeit einen Text für die Bezeichnung
angeben, HTML für die Textformatierung verwenden und die Größe des Bezeichnungsfelds an
den Textumfang anpassen.
Per ActionScript zugewiesene Eigenschaften der Label-Klasse haben Vorrang vor gleichnamigen
Parametern, die im Bedienfeld Eigenschafteninspektor oder Komponenten-Inspektor festgelegt
werden.
316
Kapitel 4: Komponenten-Referenz
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.Label.version);
Hinweis: Der folgende Code gibt undefined zurück: trace(meineLabelInstance.version);.
Übersicht: Methoden der Label-Klasse
Erbt alle Methoden von UIObject.
Übersicht: Eigenschaften der Label-Klasse
Eigenschaft
Beschreibung
Label.autoSize Eine Zeichenfolge, die angibt, ob und auf welche Weise die Größe und
Ausrichtung der Bezeichnung an den Wert der Eigenschaft text angepasst wird.
Die folgenden Werte können angegeben werden: none (keine Anpassung), left
(links), center (zentriert) und right (rechts). Der Standardwert ist none.
Label.html
Ein boolescher Wert, der angibt, ob in der Bezeichnung HTML-Formatierungen
verwendet werden (true oder false).
Label.text
Text der Beschriftung.
Erbt alle Eigenschaften von UIObject.
Übersicht: Ereignisse der Label-Klasse
Erbt alle Ereignisse von UIObject.
Label.autoSize
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
labelInstance.autoSize
Beschreibung
Eigenschaft; eine Zeichenfolge, die angibt, ob und auf welche Weise die Größe und Ausrichtung
der Bezeichnung an den Wert der Eigenschaft text angepasst werden. Die folgenden Werte
können angegeben werden: none (keine Anpassung), left (links), center (zentriert) und right
(rechts). Der Standardwert ist none.
• Mit none werden die Größe und Ausrichtung der Bezeichnung nicht an den Text angepasst.
• Mit left wird die Bezeichnung am rechten und unteren Rand an den Text angepasst. Linker
und oberer Rand werden nicht verändert.
Label-Komponente
317
• Mit center wird die Bezeichnung am unteren Rand an den Text angepasst. Die horizontale
•
Mitte der Bezeichnung bleibt an der Position der ursprünglichen horizontalen Mitte verankert.
Mit right wird die Bezeichnung am linken und unteren Rand an den Text angepasst. Oberer
und rechter Rand werden nicht verändert.
Hinweis: Die Eigenschaft autoSize der Label-Komponente unterscheidet sich von der Eigenschaft
autoSize des integrierten ActionScript-Objekts TextField.
Label.html
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
labelInstance.html
Beschreibung
Eigenschaft; ein boolescher Wert, der angibt, ob in der Bezeichnung HTML-Formatierungen
verwendet werden (true oder false). Der Standardwert lautet false. Label-Komponenten, bei
denen die Eigenschaft html auf true gesetzt ist, können nicht mit Hilfe von Stilen formatiert
werden.
Farbzuweisungen mit <font color> werden auch dann nicht unterstützt, wenn Label.html auf
gesetzt wird. Im folgenden Beispiel wird das Wort „Hallo“ schwarz angezeigt, obwohl die
HTML-Anweisung <font color> eine rote Farbgebung vorsieht:
true
lbl.html = true;
lbl.text = "<font color=\"#FF0000\">Hallo</font> Welt";
Wenn Sie reinen Text aus HTML-formatiertem Text abrufen möchten, setzen Sie die Eigenschaft
HTML auf false, und greifen Sie dann auf die Eigenschaft text zu. Dadurch wird die HTMLFormatierung entfernt. Es empfiehlt sich, zunächst den Beschriftungstext in eine nicht am
Bildschirm angezeigte Label- oder TextArea-Komponente zu kopieren und erst dann den reinen
Text abzurufen.
Beispiel
Im folgenden Beispiel wird die Eigenschaft html auf true gesetzt, sodass in der Bezeichnung
HTML-Formatierungen verwendet werden können. Anschließend wird für die Eigenschaft text
eine Zeichenfolge mit HTML-Tags zugewiesen.
labelControl.html = true;
labelControl.text = "König <b>Ubu</b>";
Der Name „Ubu“ wird in fetter Schrift angezeigt.
318
Kapitel 4: Komponenten-Referenz
Label.text
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
labelInstance.text
Beschreibung
Eigenschaft; der Inhalt des Bezeichnungstexts. Der Standardwert ist Label.
Beispiel
Mit dem folgenden Code wird die Eigenschaft text der Label-Instanz labelControl festgelegt
und der Wert an das Ausgabebedienfeld gesendet:
labelControl.text = "König Ubu";
trace(labelControl.text);
List-Komponente
Bei der List-Komponente handelt es sich um ein scrollbares Listenfeld zur Auswahl eines oder
mehrerer Elemente. In Listen können auch Grafiken und andere Komponenten angezeigt
werden. Die in der Liste angezeigten Werte werden im Dialogfeld Werte hinzugefügt, das Sie
durch Klicken auf das Parameterfeld label oder data aufrufen können. Sie können auch mit den
Methoden List.addItem() und List.addItemAt() Elemente zur Liste hinzufügen.
Die List-Komponente verwendet einen von Null ausgehenden Index, wobei das Element mit dem
Indexwert 0 an oberster Stelle der Liste angezeigt wird. Wenn Sie Elemente mit den Methoden
und Eigenschaften der List-Klasse hinzufügen, entfernen oder ersetzen, müssen Sie in bestimmten
Fällen die Indizes der Elemente angeben.
Die Liste erhält den Fokus, wenn Sie darauf klicken oder sie mit der Tabulatortaste ansteuern. Sie
kann dann mit den folgenden Tasten gesteuert werden:
Taste
Beschreibung
Alphanumerische Tasten Steuert das nächste Element an, dessen Beschriftung mit Key.getAscii()
beginnt.
<Strg>
Elemente auswählen bzw. Auswahl aufheben. Wenn beim Klicken die
Steuerungstaste gedrückt gehalten wird, können mehrere nicht
aufeinander folgende Elemente innerhalb der Liste markiert werden.
Durch abermaliges Klicken kann die Auswahl einzelner Elemente wieder
aufgehoben werden.
<Nach-unten>
Verschiebt die Auswahl um ein Element nach unten.
<Pos 1>
Verschiebt die Auswahl an den Anfang der Liste.
Bild-ab-Taste
Verschiebt die Auswahl um eine Seite nach unten.
Bild-auf-Taste
Verschiebt die Auswahl um eine Seite nach oben.
List-Komponente
319
Taste
Beschreibung
<Umschalt>
Mehrere aufeinander folgende Elemente auswählen. Wenn beim Klicken
die Umschalttaste gehalten gedrückt wird, können mehrere aufeinander
folgende Elemente innerhalb der Liste markiert werden.
<Nach-oben>
Verschiebt die Auswahl um ein Element nach oben.
Hinweis: Die Seitengröße beim Blättern innerhalb der Dropdown-Liste mit der Bild-auf-Taste und
Bild-ab-Taste entspricht der Anzahl der Elemente, die in den angezeigten Ausschnitt passen, minus
eins. Beispiel: Bei einer zehnzeiligen Dropdown-Liste werden beim Durchlaufen mit der Bild-abTaste die Elemente 0 bis 9, dann die Elemente 9 bis 18, dann die Elemente 18 bis 27 angezeigt usw.
Die jeweils letzte angezeigte Zeile wird also immer zur ersten angezeigten Zeile der nächsten Seite.
Weitere Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte
Fokusnavigation erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
Die Änderungen an den Parametern der einzelnen List-Instanzen, die beim Authoring im
Eigenschafteninspektor oder im Komponenten-Inspektor vorgenommen werden, werden jeweils
in einer Live-Vorschau angezeigt.
Die einer Anwendung hinzugefügten List-Komponenten können Sie über das Bedienfeld
Eingabehilfen für Bildschirmleseprogramme zugänglich machen. Dazu brauchen Sie lediglich die
folgende Codezeile einzufügen:
mx.accessibility.ListAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie in der Hilfe „Flash verwenden“ unter
„Barrierefreie Inhalte erstellen“.
Mit der List-Komponente arbeiten
Sie können beim Erstellen der Liste festlegen, ob der Anwender nur ein einzelnes Element oder
auch mehrere Elemente auf einmal auswählen kann. Ein Beispiel: Das Sortiment eines OnlineShops umfasst 30 Artikel, die in einer scrollbaren Liste ausgewählt werden können. Beim
Bestellvorgang wählt der Kunde durch Klicken den gewünschten Artikel aus.
Die Zeilen eines Listenfelds können auch Movieclips enthalten. Ein Beispiel wäre eine E-MailAnwendung, in der die verschiedenen Postfächer als List-Komponenten umgesetzt sind, wobei
jedes Listenelement einer Nachricht entspricht und grafische Symbole den Anwender über
Priorität und Status der einzelnen Nachrichten informieren.
Parameter der List-Komponente
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder KomponentenInspektor für jede List-Komponenteninstanz festlegen:
Ein Array von Werten, die die Daten der Liste ausmachen. Der Standardwert ist [] (leeres
Array). Für diese Eigenschaft gibt es keine entsprechende Laufzeit-Eigenschaft.
data
Ein Array aus Textwerten, die als Bezeichnungswerte für die Liste verwendet werden.
Der Standardwert ist [] (leeres Array). Für diese Eigenschaft gibt es keine entsprechende LaufzeitEigenschaft.
labels
Ein boolescher Wert, der angibt, ob der Anwender mehrere Werte (true)
oder nur einen Wert (false) auswählen kann. Der Standardwert lautet false.
multipleSelection
320
Kapitel 4: Komponenten-Referenz
rowHeight Gibt die Höhe einer einzelnen Zeile in Pixel an. Der Standardwert ist 20. Durch
Zuweisen einer Schriftart ändert sich die Zeilenhöhe nicht.
Sie können diese und weitere Optionen für List-Instanzen über die entsprechenden
Eigenschaften, Methoden und Ereignisse in ActionScript steuern. Weitere Informationen finden
Sie unter List-Klasse.
Anwendungen mit der List-Komponente erstellen
Im Folgenden wird erläutert, wie Sie einer Anwendung beim Authoring eine List-Komponente
hinzufügen. Die Liste in diesem Beispiel enthält drei Elemente.
Führen Sie die folgenden Schritte aus, um eine einfache List-Komponente zu einer
Anwendung hinzuzufügen:
1 Ziehen Sie eine List-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Markieren Sie die Liste, und wählen Sie Modifizieren > Transformieren, um die Größe des
Listenfelds an die Anwendung anzupassen.
3 Führen Sie im Eigenschafteninspektor die folgenden Schritte durch:
■ Geben Sie den Instanznamen meineList ein.
■ Geben Sie Item1, Item2 und Item3 als Werte für den Parameter label ein.
■ Geben Sie item1.html, item2.html und item3.html als Werte für den Parameter data ein.
4 Wählen Sie Steuerung > Film testen, um die Liste mit den Elementen anzuzeigen.
Mit Hilfe der Werte der Eigenschaft data in Ihrer Anwendung können Sie auch HTMLDateien öffnen.
Im Folgenden wird erläutert, wie Sie einer Anwendung beim Authoring eine List-Komponente
hinzufügen. Die Liste in diesem Beispiel enthält drei Elemente.
Führen Sie die folgenden Schritte aus, um einer Anwendung eine List-Komponente
hinzuzufügen:
1 Ziehen Sie eine List-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Markieren Sie die Liste, und wählen Sie Modifizieren > Transformieren, um die Größe des
Listenfelds an die Anwendung anzupassen.
3 Geben Sie im Bedienfeld Aktionen den Instanznamen meineList ein.
4 Wählen Sie das erste Bild in der Zeitleiste aus, und geben Sie im Bedienfeld Aktionen den
folgenden Code ein:
meineList.dataProvider = meinDP;
Wenn Sie einen Datenprovider namens meinDP definiert haben, wird die Liste mit Daten
ausgefüllt. Weitere Informationen zu Datenprovidern finden Sie unter List.dataProvider.
5 Wählen Sie Steuerung > Film testen, um die Liste mit den Elementen anzuzeigen.
Die List-Komponente anpassen
Sie können die List-Komponente sowohl beim Authoring als auch zur Laufzeit horizontal und
vertikal transformieren. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne aus
und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode List.setSize()
(siehe UIObject.setSize()).
List-Komponente
321
Wenn die Größe einer Liste geändert wird, schrumpfen die Listenzeilen horizontal, wobei der
enthaltene Text gegebenenfalls abgeschnitten wird. Vertikal werden der Liste nach Bedarf Zeilen
hinzugefügt, oder es werden Zeilen aus ihr entfernt. Die Bildlaufleisten werden automatisch
positioniert. Weitere Informationen zu Bildlaufleisten finden Sie unter „ScrollPane-Komponente“
auf Seite 513.
Stile mit der List-Komponente verwenden
Sie können Stileigenschaften festlegen, um das Erscheinungsbild der List-Komponente zu ändern.
Die List-Komponente verwendet die folgenden Kranz-Stile:
Stil
Beschreibung
alternatingRowColors
Gibt Farben für Zeilen in einem abwechselnden Muster an. Bei dem Wert
kann es sich um ein Array von zwei oder mehr Farben handeln,
beispielsweise 0xFF00FF, 0xCC6699 und 0x996699.
backgroundColor
Die Hintergrundfarbe der Liste. Dieser Stil wird in der
Klassenstildeklaration ScrollSelectList definiert.
borderColor
Der schwarze Bereich eines dreidimensionalen Randes oder der farbige
Bereich eines zweidimensionalen Randes.
borderStyle
Der Stil der Begrenzungsbox. Mögliche Werte sind: none, solid, inset
und outset. Dieser Stil wird in der Klassenstildeklaration
ScrollSelectList definiert.
defaultIcon
Der Name des Standardsymbols, das für Listenzeilen verwendet wird.
Der Standardwert ist undefined.
rollOverColor
Die Farbe einer Zeile, über die der Mauszeiger bewegt wurde.
selectionColor
Die Farbe einer ausgewählten Zeile.
selectionEasing
Eine Referenz auf eine Abbremsgleichung (Funktion), die zur Steuerung
des programmatischen Tweening dient.
disabledColor
Die Farbe für deaktivierten Text.
textRollOverColor
Die Farbe, die Text annimmt, wenn der Zeiger über ihn hinweg geführt
wird.
textSelectedColor
Die Farbe, die Text annimmt, wenn er ausgewählt wird.
selectionDisabledColor Die Farbe, die eine Zeile annimmt, wenn sie ausgewählt und deaktiviert
wurde.
selectionDuration
Die Länge aller Übergänge beim Auswählen von Elementen.
useRollOver
Legt fest, ob die Markierung aktiviert wird, wenn der Mauszeiger über
eine Zeile geführt wird.
Die List-Komponente verwendet außerdem die Stileigenschaften der Label-Komponente (siehe
„Stile für die Label-Komponente verwenden“ auf Seite 316), der ScrollPane-Komponente (siehe
„ScrollPane-Komponente“ auf Seite 513) und von RectBorder.
322
Kapitel 4: Komponenten-Referenz
Skins mit der List-Komponente verwenden
Alle Skins in der List-Komponente sind in den Unterkomponenten enthalten, aus denen die Liste
besteht (ScrollPane-Komponente und „RectBorder“). Weitere Informationen finden Sie unter
„ScrollPane-Komponente“ auf Seite 513. Mit der Methode setStyle() (siehe
UIObject.setStyle()) können Sie die folgenden RectBorder-Stileigenschaften ändern:
RectBorder-Stile
Randposition
borderColor
a
highlightColor
b
borderColor
c
shadowColor
d
borderCapColor
e
shadowCapColor
f
shadowCapColor
g
borderCapColor
h
Mit den Stileigenschaften werden die folgenden Positionen für den Rand festgelegt:
List-Klasse
Vererbung
UIObject > UIComponent > View > ScrollView > ScrollSelectList > List
ActionScript-Klassenname
mx.controls.List
Die List-Komponente besteht aus drei Teilen:
• Elementen
• Zeilen
• Einem Datenprovider
Ein Element ist ein ActionScript-Objekt, das zur Speicherung der Informationseinheiten in der
Liste dient. Eine Liste kann als ein Array aufgefasst werden; jede indizierte Position des Arrays
entspricht einem Element. Ein Element ist ein Objekt, das in der Regel eine Eigenschaft label
(die angezeigt wird) und eine Eigenschaft data (die zur Datenspeicherung verwendet wird)
besitzt.
List-Komponente
323
Eine Zeile ist eine Komponente, die zur Anzeige eines Elements dient. Zeilen werden entweder
standardmäßig durch die Liste angegeben (mit der SelectableRow-Klasse), oder Sie können sie
auch selbst angeben, normalerweise als Unterklasse der SelectableRow-Klasse. Die SelectableRowKlasse implementiert die Schnittstelle CellRenderer; dies ist die Gruppe von Eigenschaften und
Methoden, mit Hilfe derer die Liste die einzelnen Zeilen manipuliert und Daten und
Statusinformationen (z. B. „Größe“ oder „ausgewählt“) zur Anzeige an die Reihe gesendet
werden.
Ein Datenprovider ist ein Datenmodell der Elementliste in einer Liste. Arrays, die sich im selben
Bild wie eine Liste befinden, erhalten automatisch Methoden, mit denen Sie Daten manipulieren
und Änderungen an mehrere Ansichten senden können. Sie können eine Array-Instanz aufbauen
oder eine von einem Server abrufen und als Datenmodell für mehrere List-, ComboBox- oder
DataGrid-Objekte usw. verwenden. Die List-Komponente verfügt über eine Reihe von
Methoden, die als Proxy für ihren Datenprovider dienen (z. B. addItem() und removeItem()).
Wenn der Liste kein externer Datenprovider zugeordnet wird, erstellen diese Methoden
automatisch eine Datenprovider-Instanz, die durch List.dataProvider zur Verfügung gestellt
wird.
Um der Registerreihenfolge einer Anwendung die List-Komponente hinzuzufügen, legen Sie die
Eigenschaft tabIndex fest (siehe UIComponent.tabIndex). Die List-Komponente setzt das
Standard-Fokusrechteck des Flash Players mit Hilfe von FocusManager außer Kraft, um ein
Fokusrechteck mit abgerundeten Ecken zu zeichnen. Weitere Informationen finden Sie unter
„Benutzerdefinierte Fokusnavigation erstellen“ auf Seite 28.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.List.version);
Hinweis: Der folgende Code gibt undefined zurück: trace(meineListInstance.version);.
Übersicht: Methoden der List-Klasse
Methode
Beschreibung
List.addItem()
Fügt ein Element am Ende der Liste hinzu.
List.addItemAt()
Fügt der Liste an der angegebenen Indexposition ein Element hinzu.
List.getItemAt()
Gibt das Element an der angegebenen Indexposition zurück.
List.removeAll()
Entfernt alle Elemente aus der Liste.
List.removeItemAt()
Entfernt das Element an der angegebenen Indexposition.
List.replaceItemAt()
Ersetzt das Element an der angegebenen Indexposition durch ein
anderes Element.
List.setPropertiesAt() Wendet die angegebenen Eigenschaften auf das angegebene Element
an.
324
List.sortItems()
Sortiert die Elemente in der Liste anhand der angegebenen
Vergleichsfunktion.
List.sortItemsBy()
Sortiert die Elemente in der Liste anhand einer angegebenen
Eigenschaft.
Kapitel 4: Komponenten-Referenz
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der List-Klasse
Eigenschaft
Beschreibung
List.cellRenderer
Weist die zur Anzeige der einzelnen Listenzeilen zu verwendende Klasse
oder das zu verwendende Symbol zu.
List.dataProvider
Die Quelle der Listenelemente.
List.hPosition
Die horizontale Position der Liste.
List.hScrollPolicy
Gibt an, ob die horizontale Bildlaufleiste angezeigt (on) oder
ausgeblendet wird (off).
List.iconField
Ein Feld innerhalb jedes Elements, das zur Angabe von Symbolen dient.
List.iconFunction
Eine Funktion, die festlegt, welches Symbol verwendet wird.
List.labelField
Gibt ein Feld für jedes Element an, das als Bezeichnungstext verwendet
werden soll.
List.labelFunction
Eine Funktion, die festlegt, welche Felder für jedes Element als
Bezeichnungstext verwendet werden.
List.length
Die Länge der Liste in Elementen. Diese Eigenschaft ist
schreibgeschützt.
List.maxHPosition
Gibt an, über wie viele Pixel ein Bildlauf in der Liste nach rechts
durchgeführt werden kann, wenn List.hScrollPolicy auf on eingestellt
ist.
List.multipleSelection Gibt an, ob mehrere Auswahlen in der Liste erlaubt (true) oder nicht
erlaubt sind (false).
List.rowCount
Die Anzahl der Zeilen, die in der Liste zumindest teilweise sichtbar sind.
List.rowHeight
Die Pixelhöhe der einzelnen Zeilen in der Liste.
List.selectable
Gibt an, ob die Liste ausgewählt werden kann (true) oder nicht (false).
List.selectedIndex
Der Index einer Auswahl in einer Liste, in der nur ein Element ausgewählt
werden kann.
List.selectedIndices
Ein Array der ausgewählten Elemente in einer Liste, in der mehrere
Elemente ausgewählt werden können.
List.selectedItem
Das ausgewählte Element in einer Liste, in der nur ein Element
ausgewählt werden kann. Diese Eigenschaft ist schreibgeschützt.
List.selectedItems
Die ausgewählten Elemente in einer Liste, in der mehrere Elemente
ausgewählt werden können. Diese Eigenschaft ist schreibgeschützt.
List.vPosition
Führt einen Bildlauf in der Liste durch, damit das oberste sichtbare
Element das mit der zugewiesenen Nummer ist.
List.vScrollPolicy
Gibt an, ob die vertikale Bildlaufleiste angezeigt ("on"), ausgeblendet
("off") oder nur bei Bedarf angezeigt wird ("auto").
Erbt alle Eigenschaften von UIObject und UIComponent.
List-Komponente
325
Übersicht: Ereignisse der List-Klasse
Ereignis
Beschreibung
List.change
Wird per Broadcast gesendet, wenn die Auswahl sich aufgrund einer
Benutzerinteraktion ändert.
List.itemRollOut
Wird per Broadcast gesendet, wenn der Mauszeiger über
Listenelemente und dann von ihnen weg geführt wird.
List.itemRollOver
Wird per Broadcast gesendet, wenn der Mauszeiger über
Listenelemente geführt wird.
List.scroll
Wird per Broadcast gesendet, wenn in einer Liste ein Bildlauf
durchgeführt wird.
Erbt alle Ereignisse von UIObject und UIComponent.
List.addItem()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.addItem(label[, data])
listInstance.addItem(itemObject)
Parameter
label
Eine Zeichenfolge, die die Bezeichnung für das neue Element angibt.
Die Daten für das Element. Dieser Parameter ist optional und kann einen beliebigen
Datentyp enthalten.
data
itemObject
Ein Elementobjekt, das normalerweise die Eigenschaften label und data hat.
Rückgaben
Der Index des hinzugefügten Elements.
Beschreibung
Methode; fügt ein neues Element am Ende des Listenfelds hinzu.
Im ersten Verwendungsbeispiel wird ein Elementobjekt immer mit der angegebenen Eigenschaft
label und, falls diese angegeben wird, auch mit der Eigenschaft data erstellt.
Im zweiten Verwendungsbeispiel wird das angegebene Elementobjekt hinzugefügt.
Durch den Aufruf dieser Methode wird der Datenprovider der List-Komponente modifiziert.
Wenn der Datenprovider mit anderen Komponenten gemeinsam verwendet wird, werden diese
Komponenten ebenfalls aktualisiert.
326
Kapitel 4: Komponenten-Referenz
Beispiel
Beide der folgenden Codezeilen fügen der Instanz meineList ein Element hinzu. Um diesen
Code auszuprobieren, ziehen Sie eine Liste auf die Bühne, und geben Sie ihr den Instanznamen
meineList. Fügen Sie Bild 1 in der Zeitleiste den folgenden Code hinzu:
meineList.addItem("Dies ist ein Element");
meineList.addItem({label:"Georg",age:"sehr alt",data:123});
List.addItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.addItemAt(index, label[, data])
listInstance.addItemAt(index, itemObject)
Parameter
label
Eine Zeichenfolge, die die Bezeichnung für das neue Element angibt.
Die Daten für das Element. Dieser Parameter ist optional und kann einen beliebigen
Datentyp enthalten.
data
index
Eine Zahl, die größer oder gleich Null ist und die Position des Elements angibt.
itemObject
Ein Elementobjekt, das normalerweise die Eigenschaften label und data hat.
Rückgaben
Der Index des hinzugefügten Elements.
Beschreibung
Methode; fügt an der durch den Parameter index angegebenen Position ein neues Element hinzu.
Im ersten Verwendungsbeispiel wird ein Elementobjekt immer mit der angegebenen Eigenschaft
label und, falls diese angegeben wird, auch mit der Eigenschaft data erstellt.
Im zweiten Verwendungsbeispiel wird das angegebene Elementobjekt hinzugefügt.
Durch den Aufruf dieser Methode wird der Datenprovider der List-Komponente modifiziert.
Wenn der Datenprovider mit anderen Komponenten gemeinsam verwendet wird, werden diese
Komponenten ebenfalls aktualisiert.
Beispiel
Die folgende Codezeile fügt an der dritten Indexposition ein Element hinzu, bei dem es sich um
das vierte Element in der Liste handelt:
meineList.addItemAt(3,{label:'Rot',data:0xFF0000});
List-Komponente
327
List.cellRenderer
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.cellRenderer
Beschreibung
Eigenschaft; weist den CellRenderer zu, der für die einzelnen Listenzeilen verwendet werden soll.
Diese Eigenschaft muss eine Klassenobjektreferenz oder ein Symbol-Verknüpfungsbezeichner
sein. Alle Klassen, die für diese Eigenschaft verwendet werden, müssen die „CellRenderer-API“
auf Seite 91 implementieren.
Beispiel
Das folgende Beispiel richtet einen neuen CellRenderer mit Hilfe eines Verknüpfungsbezeichners
ein:
meineList.cellRenderer = "ComboBoxCell";
List.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(change){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.change = function(eventObject){
// Hier Code eingeben
}
listInstance.addEventListener("change", listenerObject)
328
Kapitel 4: Komponenten-Referenz
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn der ausgewählte Index der
Liste sich aufgrund einer Benutzerinteraktion ändert.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
List-Komponente angehängt werden. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der folgende Code, der an
die Instanz meineBox der List-Komponente angehängt wird, sendet „_level0.meineBox“ an das
Bedienfeld Ausgabe:
on(click){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (listInstance) setzt ein Ereignis (in diesem Fall change) ab, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. (Weitere
Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Anschließend rufen Sie die Methode addEventListener() für die Komponenteninstanz auf, die
das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis
absetzt, wird der Listener aufgerufen.
Beispiel
Im folgenden Beispiel wird der Instanzname der Komponente, die das Ereignis change generiert
hat, an das Ausgabebedienfeld gesendet:
form.change = function(eventObj){
trace("Wert geändert in " + eventObj.target.value);
}
meineList.addEventListener("change", form);
Siehe auch
UIEventDispatcher.addEventListener()
List.dataProvider
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.dataProvider
List-Komponente
329
Beschreibung
Eigenschaft; das Datenmodell der in der Liste angezeigten Elemente. Als Wert für diese
Eigenschaft kann ein Array oder ein Objekt verwendet werden, das die DataProvider-Schnittstelle
implementiert. Der Standardwert ist [] (leeres Array). Weitere Informationen zur Schnittstelle
DataProvider finden Sie unter „DataProvider-API“ auf Seite 207.
Die List-Komponente und andere Komponenten fügen dem Prototyp des Array-Objekts
Methoden hinzu, damit sie die Voraussetzungen der Schnittstelle DataProvider erfüllen. Deshalb
verfügt jedes Array, das zur gleichen Zeit wie eine Liste existiert, automatisch über alle benötigten
Methoden (addItem(), getItemAt() usw.), um als Datenmodell für die Liste dienen zu können,
und kann zum Broadcast von Modelländerungen an mehreren Komponenten verwendet werden.
Wenn das Array Objekte enthält, wird auf die Eigenschaften List.labelField oder
List.labelFunction zugegriffen, um festzustellen, welche Teile des Elements angezeigt werden
sollen. Der Standardwert ist label. Wenn also das Feld label vorhanden ist, wird es zur Anzeige
ausgewählt. Wenn es nicht vorhanden ist, wird eine durch Kommas getrennte Liste aller Felder
angezeigt.
Hinweis: Wenn alle Indizes des Arrays Zeichenfolgen und keine Objekte enthalten, können die
Elemente in der Liste nicht sortiert werden und der Auswahlstatus kann nicht dauerhaft gespeichert
werden. Die Auswahl geht bei jedem Sortiervorgang verloren.
Jede Instanz, mit der die DataProvider-Schnittstelle implementiert wird, kann als Datenprovider
für die List-Komponente dienen. Hierzu gehören unter anderem Flash Remoting RecordSets und
Firefly DataSets.
Beispiel
Das folgende Beispiel füllt die Liste mit einem String-Array aus:
list.dataProvider = ["Postzustellung","Paketdienst","Paketdienst mit
Expresszustellung"];
Im folgenden Beispiel wird ein Datenprovider-Array erstellt und der Eigenschaft dataProvider
zugewiesen:
meinDP = new Array();
list.dataProvider = meinDP;
for (var i=0; i<accounts.length; i++) {
// Diese Änderungen des DataProvider werden per Broadcast an die Liste
// übermittelt
meinDP.addItem({ label: accounts[i].name,
data: accounts[i].accountID });
}
List.getItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.getItemAt(index)
330
Kapitel 4: Komponenten-Referenz
Parameter
index Eine Zahl größer oder gleich 0 und kleiner als der Wert von List.length. Der Index
des abzurufenden Elements.
Rückgaben
Das indizierte Elementobjekt. Undefined, wenn der Index außerhalb des zulässigen Bereichs liegt.
Beschreibung
Methode; ruft das Element an der angegebenen Indexposition ab.
Beispiel
Der folgende Code zeigt die Bezeichnung des Elements an Indexposition 4 an:
trace(meineList.getItemAt(4).label);
List.hPosition
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.hPosition
Beschreibung
Eigenschaft; führt in der Liste einen horizontalen Bildlauf auf die angegebene Pixelanzahl durch.
Sie können hPosition nur festlegen, wenn der Wert von hScrollPolicy "on" ist und für die
Liste unter maxHPosition ein Wert höher als 0 angegeben ist.
Beispiel
Im folgenden Beispiel wird die horizontale Bildlaufposition von meineList abgerufen:
var scrollPos = meineList.hPosition;
Im folgenden Beispiel wird die horizontale Bildlaufposition ganz nach links gesetzt:
meineList.hPosition = 0;
List.hScrollPolicy
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.hScrollPolicy
List-Komponente
331
Beschreibung
Eigenschaft; ein String, der festlegt, ob die horizontale Bildlaufleiste angezeigt wird; mögliche
Werte sind on und off. Der Standardwert lautet off. Die horizontale Bildlaufleiste kann Text
nicht messen; Sie müssen eine maximale horizontale Bildlaufposition angeben, siehe
List.maxHPosition.
Hinweis: Der Wert auto wird für List.hScrollPolicy nicht unterstützt.
Beispiel
Der folgende Code ermöglicht der Liste einen horizontalen Bildlauf um bis zu 200 Pixel:
meineList.hScrollPolicy = "on";
meineList.Box.maxHPosition = 200;
Siehe auch
List.hPosition, List.maxHPosition
List.iconField
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.iconField
Beschreibung
Eigenschaft; gibt den Namen eines Feldes an, das als Symbolbezeichner verwendet werden soll.
Wenn das Feld den Wert undefined hat, wird das durch den Stil defaultIcon angegebene
Standardsymbol verwendet. Wenn der Stil defaultIcon nicht definiert ist, wird kein Symbol
verwendet.
Beispiel
Im folgenden Beispiel wird die Eigenschaft iconField auf die Eigenschaft icon der einzelnen
Elemente eingestellt:
list.iconField = "icon"
Siehe auch
List.iconFunction
List.iconFunction
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
332
Kapitel 4: Komponenten-Referenz
Verwendung
listInstance.iconFunction
Beschreibung
Eigenschaft; gibt eine Funktion an, mit der festgestellt wird, welches Symbol die einzelnen Zeilen
zur Anzeige ihres Elements verwenden. Diese Funktion erhält den Parameter item, bei dem es
sich um das gerenderte Element handelt, und muss einen String zurückgeben, der den
Symbolbezeichner des Symbols darstellt.
Beispiel
Im folgenden Beispiel werden Symbole hinzugefügt, die anzeigen, ob es sich bei einer Datei um
ein Bild- oder Textdokument handelt. Wenn das Feld data.fileExtension den Wert jpg oder
gif enthält, wird als Symbol pictureIcon verwendet usw.:
list.iconFunction = function(item){
var type = item.data.fileExtension;
if (type=="jpg" || type=="gif") {
return "pictureIcon";
} else if (type=="doc" || type=="txt") {
return "docIcon";
}
}
List.itemRollOut
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(itemRollOut){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.itemRollOut = function(eventObject){
// Hier Code eingeben
}
listInstance.addEventListener("itemRollOut", listenerObject)
Ereignisobjekt
Zusätzlich zu den Standardeigenschaften des Ereignisobjekts hat das Ereignis itemRollOut die
folgende Eigenschaft: index. index ist die Nummer des Elements, von dem der Mauszeiger
weggeführt wurde.
List-Komponente
333
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn der Mauszeiger über die
Listenelemente geführt wird.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
List-Komponente angehängt werden. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der folgende Code, der an
die Listeninstanz meineList angehängt wird, sendet „_level0.meineList“ an das Bedienfeld
Ausgabe:
on(itemRollOut){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (listInstance) setzt ein Ereignis (in diesem Fall itemRollOut) ab, und
das Ereignis wird von einer Funktion (auch als Prozedur bezeichnet) des von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird eine Meldung an das Ausgabebedienfeld gesendet, die die
Indexnummer des Elements angibt, über dem sich der Mauszeiger befindet:
form.itemRollOut = function (eventObj) {
trace("Der Zeiger wurde von Element Nr. " + eventObj.index + " weg bewegt.");
}
meineList.addEventListener("itemRollOut", form);
Siehe auch
List.itemRollOver
List.itemRollOver
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
334
Kapitel 4: Komponenten-Referenz
Verwendung
Verwendung 1:
on(itemRollOver){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.itemRollOver = function(eventObject){
// Hier Code eingeben
}
listInstance.addEventListener("itemRollOver", listenerObject)
Ereignisobjekt
Zusätzlich zu den Standardeigenschaften des Ereignisobjekts hat das Ereignis itemRollOver die
folgende Eigenschaft: index. index ist die Nummer des Elements, über dem sich der Mauszeiger
befindet.
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn der Mauszeiger über die
Listenelemente geführt wird.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
List-Komponente angehängt werden. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der folgende Code, der an
die Listeninstanz meineList angehängt wird, sendet „_level0.meineList“ an das Bedienfeld
Ausgabe:
on(itemRollOver){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (listInstance) setzt ein Ereignis (in diesem Fall itemRollOver) ab, und
das Ereignis wird von einer Funktion (auch als Prozedur bezeichnet) des von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
List-Komponente
335
Beispiel
Im folgenden Beispiel wird eine Meldung an das Ausgabebedienfeld gesendet, die die
Indexnummer des Elements angibt, über dem sich der Mauszeiger befindet:
form.itemRollOver = function (eventObj) {
trace("Der Mauszeiger befindet sich über Element Nr. " + eventObj.index +
".");
}
meineList.addEventListener("itemRollOver", form);
Siehe auch
List.itemRollOut
List.labelField
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.labelField
Beschreibung
Eigenschaft; gibt ein Feld in jedem Element an, das als Bezeichnungstext verwendet werden soll.
Diese Eigenschaft nimmt den Wert des Feldes entgegen und verwendet ihn als Bezeichnung. Der
Standardwert lautet label.
Beispiel
Im folgenden Beispiel wird die Eigenschaft labelField als Feld Name der einzelnen Elemente
festgelegt: Für die Bezeichnung des in der zweiten Zeile des Codes eingefügten Elements wird
„Nina“ angezeigt:
list.labelField = "Name";
list.addItem({name: "Nina", age: 25});
Siehe auch
List.labelFunction
List.labelFunction
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.labelFunction
336
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; gibt eine Funktion an, mit der entschieden wird, welches Feld (oder welche
Feldkombination) der einzelnen Elemente angezeigt werden soll. Diese Funktion erhält genau
einen Parameter, nämlich item, bei dem es sich um das gerenderte Element handelt, und muss
einen String zurückgeben, der den anzuzeigenden Text darstellt.
Beispiel
Im folgenden Beispiel zeigt die Bezeichnung einige formatierte Details des Elements an:
list.labelFunction = function(item){
return "Der Produktpreis " + item.productID + ", " + item.productName + " ist
Euro"
+ item.price;
}
Siehe auch
List.labelField
List.length
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.length
Beschreibung
Eigenschaft (schreibgeschützt); die Anzahl der Elemente in der Liste.
Beispiel
Im folgenden Beispiel wird der Wert von length in eine Variable gesetzt:
var len = meineList.length;
List.maxHPosition
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.maxHPosition
List-Komponente
337
Beschreibung
Eigenschaft; gibt an, über wie viele Pixel ein Bildlauf in der Liste durchgeführt werden kann,
wenn List.hScrollPolicy auf on eingestellt ist. Die Liste stellt keine präzise Messung der
Breite des enthaltenen Textes an. Sie müssen maxHPosition festlegen, um anzugeben, wie viel
Bildlauf die Liste benötigt. Es wird kein horizontaler Bildlauf in der Liste durchgeführt, wenn
diese Eigenschaft nicht festgelegt ist.
Beispiel
Im folgenden Beispiel wird eine Liste mit 400 Pixeln horizontalem Bildlauf erstellt:
meineList.hScrollPolicy = "on";
meineList.maxHPosition = 400;
Siehe auch
List.hScrollPolicy
List.multipleSelection
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.multipleSelection
Beschreibung
Eigenschaft; gibt an, ob mehrere Elemente (true) oder nur ein Element ausgewählt werden
können (false). Der Standardwert lautet false.
Beispiel
Das folgende Beispiel prüft, ob mehrere Elemente ausgewählt werden können:
if (meineList.multipleSelection){
// Hier Code eingeben
}
Das folgende Beispiel erlaubt mehrere Auswahlen in der Liste:
meineList.selectMultiple = true;
List.removeAll()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.removeAll()
338
Kapitel 4: Komponenten-Referenz
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; entfernt alle Elemente aus der Liste.
Durch den Aufruf dieser Methode wird der Datenprovider der List-Komponente modifiziert.
Wenn der Datenprovider mit anderen Komponenten gemeinsam verwendet wird, werden diese
Komponenten ebenfalls aktualisiert.
Beispiel
Mit dem folgenden Code wird die Liste gelöscht:
meineList.removeAll();
List.removeItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.removeItemAt(index)
Parameter
index Ein String, der
unter List.length.
die Bezeichnung für das neue Element angibt. Ein Wert über Null und
Rückgaben
Ein Objekt; das aus der Liste entfernte Element (nicht definiert, wenn keine Elemente vorhanden
sind).
Beschreibung
Methode; entfernt das Element an der angegebenen index-Position. Nachdem das mit dem
Parameter index angegebene Element entfernt wurde, werden die verbleibenden Indexwerte
entsprechend angepasst.
Durch den Aufruf dieser Methode wird der Datenprovider der List-Komponente modifiziert.
Wenn der Datenprovider mit anderen Komponenten gemeinsam verwendet wird, werden diese
Komponenten ebenfalls aktualisiert.
Beispiel
Mit dem folgenden Code wird das Element mit der Indexposition 3 entfernt:
meineList.removeItemAt(3);
List-Komponente
339
List.replaceItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.replaceItemAt(index, label[, data])
listInstance.replaceItemAt(index, itemObject)
Parameter
Eine Zahl über Null und unter List.length, die die Position angibt, an der das
Element eingefügt werden soll (der Index des neuen Elements).
index
label
Eine Zeichenfolge, die die Bezeichnung für das neue Element angibt.
Die Daten für das Element. Dieser Parameter ist optional und kann einen beliebigen Typ
enthalten.
data
itemObject. Ein Objekt,
label und data enthält.
das als Element eingesetzt wird und gewöhnlich die Eigenschaften
Rückgaben
Keine.
Beschreibung
Methode; ersetzt den Inhalt des im Parameter index angegebenen Elements.
Durch den Aufruf dieser Methode wird der Datenprovider der List-Komponente modifiziert.
Wenn der Datenprovider mit anderen Komponenten gemeinsam verwendet wird, werden diese
Komponenten ebenfalls aktualisiert.
Beispiel
Im folgenden Beispiel wird die vierte Indexposition geändert:
meineList.replaceItemAt(3, "neue Bezeichnung");
List.rowCount
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.rowCount
340
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; die Anzahl der Zeilen, die in der Liste zumindest teilweise sichtbar sind. Sie ist
praktisch, wenn Sie eine Liste anhand von Pixeln skaliert haben und ihre Zeilen zählen müssen.
Umgekehrt können Sie durch Festlegen der Zeilenanzahl garantieren, dass eine genaue Anzahl
von Zeilen angezeigt wird, ohne abgeschnittene Zeilen am unteren Rand.
Der Code meineList.rowCount = num entspricht dem Code
meineList.setSize(meineList.width, h) (dabei ist h die Höhe, die zur Anzeige von num
Elementen benötigt wird).
Der Standardwert basiert auf der Höhe der Liste, wie sie beim Authoring angegeben oder durch
die Methode list.setSize() festgelegt wurde (siehe UIObject.setSize()).
Beispiel
Im folgenden Beispiel wird die Anzahl der sichtbaren Elemente in einer Liste festgestellt:
var rowCount = meineList.rowCount;
Im folgenden Beispiel wird festgelegt, dass die Liste vier Elemente anzeigen soll:
meineList.rowCount = 4;
Im folgenden Beispiel wird die abgeschnittene Zeile unten in der Liste entfernt, sofern eine
vorhanden ist:
meineList.rowCount = meineList.rowCount;
Im folgenden Beispiel wird eine Liste auf die niedrigste Zeilenanzahl festgelegt, die vollständig
angezeigt werden kann:
meineList.rowCount = 1;
trace("meineList hat "+meineList.rowCount+" Zeilen");
List.rowHeight
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.rowHeight
Beschreibung
Eigenschaft; die Höhe der einzelnen Zeilen in der Liste in Pixeln. Wenn Sie die Schrift einstellen,
wird dadurch nicht die Größe der Zeilen an die Schrift angepasst. Deshalb stellen Sie am besten
durch Einstellung der Eigenschaft rowHeight sicher, dass die Elemente vollständig angezeigt
werden. Der Standardwert ist 20.
Beispiel
Im folgenden Beispiel werden alle Zeilen auf 30 Pixel eingestellt:
meineList.rowHeight = 30;
List-Komponente
341
List.scroll
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(scroll){
// Hier Code eingeben
}
Verwendung 2:
listenerObject = new Object();
listenerObject.scroll = function(eventObject){
// Hier Code eingeben
}
listInstance.addEventListener("scroll", listenerObject)
Ereignisobjekt
Neben den Standardeigenschaften für Ereignisobjekte verfügt das scroll-Ereignis über die
zusätzliche Eigenschaft direction. Hierbei handelt es sich um eine Zeichenfolge mit dem Wert
horizontal oder vertical, die die Richtung des Bildlaufs angibt. Bei Instanzen der
ComboBox-Komponente ist der Wert von scroll immer vertical.
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn ein Bildlauf in einer Liste
durchgeführt wird.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
List-Komponente angehängt werden. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der folgende Code, der an
die Listeninstanz meineList angehängt wird, sendet „_level0.meineList“ an das Bedienfeld
Ausgabe:
on(scroll){
trace(this);
}
342
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (listInstance) setzt ein Ereignis (in diesem Fall scroll) ab, und das
Ereignis wird von einer Funktion (auch als Prozedur bezeichnet) des von Ihnen erstellten ListenerObjekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von Ihnen
definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf das
Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird der Instanzname der Komponente, die das Ereignis change generiert
hat, an das Ausgabebedienfeld gesendet:
form.scroll = function(eventObj){
trace("Bildlauf in Liste");
}
meineList.addEventListener("scroll", form);
List.selectable
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.selectable
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob die Liste ausgewählt werden kann (true) oder
nicht (false). Der Standardwert lautet true.
List.selectedIndex
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.selectedIndex
List-Komponente
343
Beschreibung
Eigenschaft; der ausgewählte Index einer Liste, in der nur ein Element ausgewählt werden kann.
Der Wert ist undefined, wenn nichts ausgewählt ist, und entspricht dem zuletzt ausgewählten
Element, wenn mehrere Auswahlen vorliegen. Wenn Sie selectedIndex einen Wert zuweisen,
wird die aktuelle Auswahl aufgehoben und das angegebene Element ausgewählt.
Beispiel
Im folgenden Beispiel wird das Element nach dem derzeit ausgewählten Element ausgewählt.
Wenn nichts ausgewählt ist, wird Element 0 folgendermaßen ausgewählt:
var selIndex = meineList.selectedIndex;
meineList.selectedIndex = (selIndex==undefined ? 0 : selIndex+1);
Siehe auch
List.selectedIndices, List.selectedItem, List.selectedItems
List.selectedIndices
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.selectedIndices
Beschreibung
Eigenschaft; ein Array der Indizes der ausgewählten Elemente. Wenn Sie diese Eigenschaft
zuweisen, wird die aktuelle Auswahl ersetzt. Wenn Sie selectedIndices auf ein Array der
Länge 0 (oder undefined) einstellen, wird die aktuelle Auswahl aufgehoben. Der Wert ist
undefined, wenn nichts ausgewählt wurde.
Die Eigenschaft selectedIndices wird in der Reihenfolge aufgeführt, in der die Elemente
ausgewählt wurden. Wenn Sie auf das zweite Element, anschließend auf das dritte Element und
schließlich auf das erste Element klicken, gibt selectedIndices [1,2,0] zurück.
Beispiel
Im folgenden Beispiel werden die ausgewählten Indizes abgerufen:
var selIndices = meineList.selectedIndices;
Im folgenden Beispiel werden vier Elemente ausgewählt:
var meinArray = new Array (1,4,5,7);
meineList.selectedIndices = meinArray;
Siehe auch
List.selectedIndex, List.selectedItem, List.selectedItems
344
Kapitel 4: Komponenten-Referenz
List.selectedItem
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.selectedItem
Beschreibung
Eigenschaft (schreibgeschützt); ein Elementobjekt in einer Liste, in der nur ein Element
ausgewählt werden kann. (In einer Liste, in der mehrere Elemente ausgewählt können und auch
mehrere Elemente ausgewählt sind, gibt selectedItem das Element zurück, das zuletzt
ausgewählt wurde.) Wenn es keine Auswahl gibt, ist der Wert undefined.
Beispiel
Im folgenden Beispiel wird die ausgewählte Bezeichnung angezeigt:
trace(meineList.selectedItem.label);
Siehe auch
List.selectedIndex, List.selectedIndices, List.selectedItems
List.selectedItems
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.selectedItems
Beschreibung
Eigenschaft (schreibgeschützt); ein Array der ausgewählten Elementobjekte. In einer Liste, in der
mehrere Elemente ausgewählt werden können, können Sie mit selectedItems auf den Satz der
Elemente zugreifen, die als Elementobjekte ausgewählt wurden.
Beispiel
Im folgenden Beispiel wird ein Array ausgewählter Elementobjekte abgerufen:
var meinObjArray = meineList.selectedItems;
Siehe auch
List.selectedIndex, List.selectedItem, List.selectedIndices
List-Komponente
345
List.setPropertiesAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.setPropertiesAt(index, styleObj)
Parameter
Eine Zahl über Null oder unter List.length, die den Index des Elements angibt, das
geändert werden soll.
index
styleObj
Ein Objekt, das die einzustellenden Eigenschaften und Werte aufführt.
Rückgaben
Keine.
Beschreibung
Methode; wendet die vom Parameter styleObj angegebenen Eigenschaften auf das vom
Parameter index angegebene Element an. Als Eigenschaften werden icon und backgroundColor
unterstützt.
Beispiel
Im folgenden Beispiel wird das vierte Element schwarz gefärbt und erhält ein Symbol:
meineList.setPropertiesAt(3, {backgroundColor:0x000000, icon: "Datei"});
List.sortItems()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.sortItems(compareFunc)
Parameter
compareFunc Eine Referenz auf eine Funktion. Mit dieser Funktion werden zwei Elemente
verglichen, um ihre Sortierfolge festzustellen.
Weitere Informationen finden Sie unter Array.sort() im ActionScript-Lexikon.
346
Kapitel 4: Komponenten-Referenz
Rückgaben
Der Index des hinzugefügten Elements.
Beschreibung
Methode; sortiert die Elemente in der Liste anhand des Parameters compareFunc.
Beispiel
Im folgenden Beispiel werden die Elemente basierend auf den mit Großbuchstaben beginnenden
Bezeichnungen sortiert. Beachten Sie, dass die Parameter a und b, die an die Funktion übergeben
werden, Elemente mit den Eigenschaften label und data sind:
meineList.sortItems(upperCaseFunc);
function upperCaseFunc(a,b){
return a.label.toUpperCase() > b.label.toUpperCase();
}
Siehe auch
List.sortItemsBy()
List.sortItemsBy()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.sortItemsBy(fieldName, order)
Parameter
fieldName Ein String, der den Namen der Eigenschaft angibt, anhand derer die Sortierung
durchgeführt werden soll. Normalerweise ist dieser Wert label oder data.
order Ein String, der angibt, ob die Elemente in aufsteigender (ASC) oder absteigender
Reihenfolge (DESC) sortiert werden sollen.
Rückgaben
Keine.
Beschreibung
Methode; sortiert die Elemente in der Liste alphabetisch oder numerisch in der angegebenen
Reihenfolge anhand des angegebenen Parameters fieldName. Wenn die durch fieldName
bezeichneten Elemente Textstrings und Ganzzahlen enthalten, werden die Elemente mit den
Ganzzahlen zuerst aufgelistet. Der Parameter fieldName ist normalerweise label oder data, Sie
können jedoch einen beliebigen Grunddatenwert angeben.
List-Komponente
347
Beispiel
Der folgende Code sortiert die Elemente in der Liste surnameMenu in aufsteigender Reihenfolge
nach den Bezeichnungen der Listenelemente:
nachnameMenue.sortItemsBy("label", "ASC");
Siehe auch
List.sortItems()
List.vPosition
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.vPosition
Beschreibung
Eigenschaft; führt einen Bildlauf in der Liste durch, damit der Index das oberste sichtbare
Element darstellt. Wenn der Index außerhalb des zulässigen Bereichs liegt, wird der nächste Index
innerhalb des zulässigen Bereichs angesteuert. Der Standardwert ist 0.
Beispiel
Im folgenden Beispiel wird die Position der Liste auf das erste Indexelement eingestellt:
meineList.vPosition = 0;
List.vScrollPolicy
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
listInstance.vScrollPolicy
Beschreibung
Eigenschaft; ein String, der festlegt, ob die Liste den vertikalen Bildlauf unterstützt. Diese
Eigenschaft kann die folgenden Werte annehmen: on, off oder auto. Mit dem Wert auto wird
die Bildlaufleiste nur bei Bedarf angezeigt.
348
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird die Bildlaufleiste deaktiviert:
meineList.vScrollPolicy = "off";
Mit List.vPosition lässt sich der Bildlauf nach wie vor durchführen.
Siehe auch
List.vPosition
Loader-Komponente
Die Loader-Komponente ist ein Behälter, der eine SWF- oder JPEG-Datei anzeigen kann. Sie
können den Inhalt des Loaders skalieren oder die Größe des Loaders selbst ändern, um sie an die
Größe des Inhalts anzupassen. Als Standard wird der Inhalt so skaliert, dass er in den Loader
passt. Sie können den Inhalt auch zur Laufzeit laden und den Ladevorgang überwachen.
Die Loader-Komponente kann nicht den Fokus erhalten. Jedoch kann der Inhalt, der in der
Loader-Komponente geladen ist, den Fokus annehmen und mit ihm interagieren. Weitere
Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte Fokusnavigation
erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
Eine Live-Vorschau der einzelnen Loaderinstanzen spiegelt die Änderungen wieder, die im
Eigenschafteninspektor oder Komponenten-Inspektor beim Authoring vorgenommen wurden.
Inhalt, der in die Loader-Komponente geladen wird, kann für Eingabehilfen aktiviert werden.
Wenn das der Fall ist, können Sie ihn mit dem Bedienfeld Eingabehilfen für
Bildschirmleseprogramme zugänglich machen. Weitere Informationen finden Sie in der Hilfe
„Flash verwenden“ unter „Barrierefreie Inhalte erstellen“.
Mit der Loader-Komponente arbeiten
Sie können einen Loader immer dann verwenden, wenn Sie Inhalt von einem entfernten
Speicherort abrufen und in eine Flash-Anwendung übertragen müssen. Beispielsweise können Sie
mit einem Loader ein Firmenlogo (JPEG-Datei) in ein Formular einfügen. Außerdem können Sie
mit einem Loader ältere Flash-Projekte wiederverwenden. Wenn Sie z. B. eine Flash-Anwendung
bereits erstellt haben und sie erweitern möchten, können Sie mit dem Loader die alte Anwendung
in die neue Anwendung übertragen, beispielsweise als Bereich in einer Registerkartenoberfläche.
Oder Sie können die Loader-Komponente in einer Anwendung zur Fotoanzeige einsetzen.
Steuern Sie mit Loader.load(), Loader.percentLoaded und Loader.complete den Zeitablauf
der Bildladevorgänge und die Anzeige der Fortschrittleisten während des Ladens.
Parameter der Loader-Komponente
Im Folgenden sind die Authoring-Parameter aufgeführt, die Sie für die einzelnen Instanzen der
Loader-Komponente im Eigenschafteninspektor oder Komponenten-Inspektor festlegen können:
autoload gibt an, ob der Inhalt automatisch geladen werden soll (true), oder ob mit dem Laden
gewartet werden soll, bis die Methode Loader.load() aufgerufen wird (false). Der Standardwert
lautet true.
Loader-Komponente
349
contentPath ist eine absolute oder relative URL, die angibt, welche Datei in den Loader geladen
werden soll. Ein relativer Pfad muss relativ zu der SWF-Datei angegeben werden, in die der Inhalt
geladen wird. Die URL muss sich in derselben Subdomäne befinden wie die URL, unter der der
Flash-Inhalt gegenwärtig gespeichert ist. Wenn Sie den Flash Player verwenden oder im
Filmtestmodus testen möchten, müssen alle SWF-Dateien im selben Ordner gespeichert sein. Die
Dateinamen dürfen außerdem keine Laufwerks- und Ordnerbezeichnungen enthalten. Der
Standardwert ist undefined, bis der Ladevorgang begonnen hat.
scaleContent gibt an, ob der Inhalt so skaliert wird, dass er in den Loader passt (true), oder ob
der Loader so skaliert wird, dass der Inhalt hineinpasst (false). Der Standardwert lautet true.
Sie können zusätzliche Optionen für Loaderinstanzen mit den Methoden, Eigenschaften und
Ereignissen von ActionScript festlegen. Weitere Informationen finden Sie unter Loader-Klasse.
Eine Anwendung mit der Loader-Komponente erstellen
Im folgenden Verfahren wird erklärt, wie Sie einer Anwendung beim Authoring die LoaderKomponente hinzufügen. In diesem Beispiel lädt der Loader eine JPEG-Logodatei aus einer
imaginären URL.
So erstellen Sie eine Anwendung mit der Loader-Komponente:
1 Ziehen Sie die Loader-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Wählen Sie den Loader auf der Bühne aus, und passen Sie mit dem Werkzeug Frei
transformieren seine Größe an die Maße des Firmenlogos an.
3 Geben Sie im Eigenschafteninspektor den Instanznamen logo ein.
4 Wählen Sie den Loader auf der Bühne und im Bedienfeld Komponenten-Inspektor aus, und
geben Sie den contentPath-Parameter http://corp.com/websites/logo/corplogo.jpg ein.
Die Loader-Komponente anpassen
Sie können die Loader-Komponente sowohl beim Authoring als auch zur Laufzeit horizontal und
vertikal transformieren. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne aus
und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode setSize() (siehe
UIObject.setSize()).
Das Größenverhalten der Loader-Komponente wird durch die Eigenschaft scaleContent
gesteuert. Wenn scaleContent = true gilt, wird der Inhalt skaliert, damit er in die Grenzen des
Loaders passt (und erneut skaliert, wenn UIObject.setSize() aufgerufen wird). Wenn die
Eigenschaft scaleContent = false ist, wird die Größe der Komponente auf die Größe des
Inhalts fixiert, und die Methode UIObject.setSize() bleibt wirkungslos.
Stile mit der Loader-Komponente verwenden
Die Loader-Komponente verwendet keine Stile.
350
Kapitel 4: Komponenten-Referenz
Skins mit der Loader-Komponente verwenden
Die Loader-Komponente verwendet „RectBorder“, das wiederum die ActionScript-ZeichnungsAPI verwendet. Mit der Methode setStyle() (siehe UIObject.setStyle()) können Sie die
folgenden RectBorder-Stileigenschaften ändern:
RectBorder-Stile
Buchstabe
borderColor
a
highlightColor
b
borderColor
c
shadowColor
d
borderCapColor
e
shadowCapColor
f
shadowCapColor
g
borderCapColor
h
Mit den Stileigenschaften werden die folgenden Positionen für den Rand festgelegt:
Loader-Klasse
Vererbung
UIObject > UIComponent > View > Loader
ActionScript-Klassenname
mx.controls.Loader
Mit den Eigenschaften der Loader-Klasse können Sie angeben, welcher Inhalt geladen werden
soll, und den Ladefortschritt zur Laufzeit überwachen.
Wenn Sie eine Eigenschaft der Loader-Klasse mit ActionScript einstellen, werden die Parameter
mit dem gleichen Namen im Eigenschafteninspektor und Komponenten-Inspektor außer Kraft
gesetzt.
Weitere Informationen finden Sie unter „Benutzerdefinierte Fokusnavigation erstellen“
auf Seite 28.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.Loader.version);
Hinweis: Der folgende Code gibt undefined zurück: trace(meineLoaderInstance.version);
Loader-Komponente
351
Übersicht: Methoden der Loader-Klasse
Methode
Beschreibung
Loader.load()
Lädt den Inhalt, der von der Eigenschaft contentPath angegeben wird.
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der Loader-Klasse
Eigenschaft
Beschreibung
Loader.autoLoad
Ein Boolescher Wert, der angibt, ob der Inhalt automatisch geladen wird
(true) oder ob Sie Loader.load() aufrufen müssen (false).
Loader.bytesLoaded
Eine schreibgeschützte Eigenschaft, die angibt, wie viele Byte bereits
geladen wurden.
Loader.bytesTotal
Eine schreibgeschützte Eigenschaft, die angibt, wie viele Byte der Inhalt
insgesamt umfasst.
Loader.content
Eine Referenz auf den Inhalt, der von der Eigenschaft
Loader.contentPath angegeben wird. Diese Eigenschaft ist
schreibgeschützt.
Loader.contentPath
Ein String, der die URL des zu ladenden Inhalts angibt.
Loader.percentLoaded
Eine Zahl, die angibt, wie viel Prozent des Inhalts bereits geladen wurden.
Diese Eigenschaft ist schreibgeschützt.
Loader.scaleContent
Ein Boolescher Wert, der angibt, ob der Inhalt so skaliert wird, dass er in
den Loader passt (true), oder ob der Loader so skaliert wird, dass der
Inhalt hineinpasst (false).
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Ereignisse der Loader-Klasse
Ereignis
Beschreibung
Loader.complete
Wird ausgelöst, wenn der Inhalt fertig geladen ist.
Loader.progress
Wird ausgelöst, während der Inhalt geladen wird.
Erbt alle Eigenschaften von UIObject und UIComponent
352
Kapitel 4: Komponenten-Referenz
Loader.autoLoad
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
loaderInstance.autoLoad
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob der Inhalt automatisch geladen wird (true) oder
ob gewartet wird, bis Loader.load() aufgerufen wird (false). Der Standardwert lautet true.
Beispiel
Mit dem folgenden Code wird die Loader-Komponente so eingerichtet, dass sie auf einen Aufruf
an Loader.load() wartet:
loader.autoload = false;
Loader.bytesLoaded
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
loaderInstance.bytesLoaded
Beschreibung
Eigenschaft (schreibgeschützt); gibt an, wie viel Byte im Inhalt bereits geladen wurden. Der
Standardwert ist 0, bis der Ladevorgang beginnt.
Beispiel
Mit dem folgenden Code werden eine Fortschrittleiste (ProgressBar) und die LoaderKomponente erstellt. Anschließend wird ein Listener-Objekt mit der Ereignisprozedur progress
erstellt, das den Fortschritt des Ladevorgangs anzeigt. Der Listener wird bei der Instanz loader
folgendermaßen registriert:
createClassObject(mx.controls.ProgressBar, "pBar", 0);
createClassObject(mx.controls.Loader, "loader", 1);
loadListener = new Object();
loadListener.progress = function(eventObj){
// eventObj.target ist die Komponente, die das change-Ereignis generiert hat
// d. h. der Loader.
pBar.setProgress(loader.bytesLoaded, loader.bytesTotal); // zeigt den
// Fortschritt
}
loader.addEventListener("progress", loadListener);
loader.content = "logo.swf";
Loader-Komponente
353
Wenn Sie eine Instanz mit der Methode createClassObject() erstellen, müssen Sie sie mit den
Methoden move() und setSize() auf der Bühne platzieren. Weitere Informationen hierzu
finden Sie in den Abschnitten UIObject.move() und UIObject.setSize().
Siehe auch
Loader.bytesTotal, UIObject.createClassObject()
Loader.bytesTotal
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
loaderInstance.bytesTotal
Beschreibung
Eigenschaft (schreibgeschützt); die Größe des Inhalts in Byte. Der Standardwert ist 0, bis der
Ladevorgang beginnt.
Beispiel
Mit dem folgenden Code werden eine Fortschrittleiste (ProgressBar) und die LoaderKomponente erstellt. Anschließend wird ein Listener-Ladeobjekt mit der Ereignisprozedur
progress erstellt, das den Fortschritt des Ladevorgangs anzeigt. Der Listener wird bei der
Loaderinstanz folgendermaßen registriert:
createClassObject(mx.controls.ProgressBar, "pBar", 0);
createClassObject(mx.controls.Loader, "loader", 1);
loadListener = new Object();
loadListener.progress = function(eventObj){
// eventObj.target ist die Komponente, die das change-Ereignis generiert hat
// d. h. der Loader.
pBar.setProgress(loader.bytesLoaded, loader.bytesTotal); // zeigt den
// Fortschritt
}
loader.addEventListener("progress", loadListener);
loader.content = "logo.swf";
Siehe auch
Loader.bytesLoaded
354
Kapitel 4: Komponenten-Referenz
Loader.complete
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(complete){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.complete = function(eventObject){
...
}
loaderInstance.addEventListener("complete", listenerObject)
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn der Inhalt fertig geladen ist.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
Loader-Komponente angehängt werden. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der folgende Code, der an
die Instanz meineLoaderComponent der Loader-Komponente angehängt wird, sendet
„_level0.meineLoaderComponent“ an das Bedienfeld Ausgabe:
on(complete){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (loaderInstance) setzt ein Ereignis (in diesem Fall complete) ab, und das
Ereignis wird von einer Funktion (auch als Prozedur bezeichnet) des von Ihnen erstellten ListenerObjekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von Ihnen
definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf das
Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Loader-Komponente
355
Beispiel
Im folgenden Beispiel wird die Loader-Komponente erstellt und anschließend ein ListenerObjekt mit der Ereignisprozedur complete definiert, das die Eigenschaft visible des Loaders
auf true einstellt:
createClassObject(mx.controls.Loader, "loader", 0);
loadListener = new Object();
loadListener.complete = function(eventObj){
loader.visible = true;
}
loader.addEventListener("complete", loadListener);
loader.contentPath = "logo.swf";
Loader.content
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
loaderInstance.content
Beschreibung
Eigenschaft (schreibgeschützt); eine Referenz auf den Inhalt des Loaders. Der Wert ist undefined,
bis der Ladevorgang beginnt.
Siehe auch
Loader.contentPath
Loader.contentPath
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
loaderInstance.contentPath
Beschreibung
Eigenschaft; ein String, der eine absolute oder relative URL der Datei angibt, die in den Loader
geladen werden soll. Ein relativer Pfad muss relativ zu der SWF-Datei angegeben werden, in die
der Inhalt geladen wird. Die URL muss sich in derselben Subdomäne befinden wie die SWFDatei, in die der Inhalt geladen wird.
Wenn Sie den Flash Player oder den Filmtestmodus in Flash verwenden, müssen alle SWFDateien im selben Ordner gespeichert sein. Die Dateinamen dürfen außerdem keine Laufwerksund Ordnerbezeichnungen enthalten.
356
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird die Loaderinstanz angewiesen, den Inhalt der Datei logo.swf
anzuzeigen:
loader.contentPath = "logo.swf";
Loader.load()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
loaderInstance.load(path)
Parameter
path Ein optionaler Parameter, der den Wert für die Eigenschaft contentPath vor dem Laden
angibt. Wenn Sie keinen Wert angeben, wird der aktuelle Wert von contentPath wie vorliegend
verwendet.
Rückgaben
Keine.
Beschreibung
Methode; weist den Loader an, mit dem Laden des Inhalts zu beginnen.
Beispiel
Im folgenden Code wird eine Loaderinstanz erstellt und die Eigenschaft autoload auf false
eingestellt, sodass der Loader mit dem Laden des Inhalts warten muss, bis die Methode load()
aufgerufen wird. Anschließend wird load() aufgerufen und der zu ladende Inhalt angegeben:
createClassObject(mx.controls.Loader, "loader", 0);
loader.autoload = false;
loader.load("logo.swf");
Loader.percentLoaded
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
loaderInstance.percentLoaded
Loader-Komponente
357
Beschreibung
Eigenschaft (schreibgeschützt); eine Zahl, die angibt, wie viel Prozent des Inhalts bereits geladen
wurden. Normalerweise dient diese Eigenschaft dazu, dem Benutzer den Fortschritt in leicht
lesbarer Form anzuzeigen. Mit dem folgenden Code runden Sie die Zahl auf die nächste ganze
Zahl auf:
Math.round(bytesLoaded/bytesTotal*100))
Beispiel
Im folgenden Beispiel werden eine Loaderinstanz und anschließend ein Listener-Objekt mit einer
Prozedur progress erstellt, die anzeigt, wie viel Prozent geladen werden, und den Prozentwert an
das Bedienfeld Ausgabe sendet:
createClassObject(Loader, "loader", 0);
loadListener = new Object();
loadListener.progress = function(eventObj){
// eventObj.target ist die Komponente, die das change-Ereignis generiert hat
// d. h. der Loader.
trace("logo.swf ist " + loader.percentLoaded + "% geladen."); // Ladevorgang
// verfolgen
}
loader.addEventListener("complete", loadListener);
loader.content = "logo.swf";
Loader.progress
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(progress){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.progress = function(eventObject){
...
}
loaderInstance.addEventListener("progress", listenerObject)
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, während der Inhalt geladen wird.
Dieses Ereignis wird ausgelöst, wenn der Ladevorgang vom Parameter autoload oder durch einen
Aufruf an Loader.load() ausgelöst wird. Das Ereignis progress wird nicht immer gesendet. Das
Ereignis complete kann per Broadcast gesendet werden, ohne dass Ereignisse des Typs progress
gesendet werden. Das kann insbesondere der Fall sein, wenn es sich beim geladenen Inhalt um
eine lokale Datei handelt.
358
Kapitel 4: Komponenten-Referenz
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
Loader-Komponente angehängt werden. Das Schlüsselwort this in einer on()-Ereignisprozedur
einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der folgende Code, der an
die Instanz meineLoaderComponent der Loader-Komponente angehängt wird, sendet
„_level0.meineLoaderComponent“ an das Bedienfeld Ausgabe:
on(progress){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (loaderInstance) setzt ein Ereignis (in diesem Fall progress) ab, und das
Ereignis wird von einer Funktion (auch als Prozedur bezeichnet) des von Ihnen erstellten ListenerObjekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von Ihnen
definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf das
Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Code werden eine Loaderinstanz und anschließend ein Listener-Objekt mit einer
Ereignisprozedur erstellt, die an das Bedienfeld Ausgabe meldet, wie viel Prozent des Inhalts
geladen wurden:
createClassObject(mx.controls.Loader, "loader", 0);
loadListener = new Object();
loadListener.progress = function(eventObj){
// eventObj.target ist die Komponente, die das change-Ereignis generiert hat
// d. h. der Loader.
trace("logo.swf ist " + loader.percentLoaded + "% geladen."); // Ladevorgang
// verfolgen
}
loader.addEventListener("progress", loadListener);
loader.contentPath = "logo.swf";
Loader.scaleContent
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
loaderInstance.scaleContent
Loader-Komponente
359
Beschreibung
Eigenschaft; gibt an, ob der Inhalt so skaliert wird, dass er in den Loader passt (true), oder ob der
Loader so skaliert wird, dass der Inhalt hineinpasst (false). Der Standardwert lautet true.
Beispiel
Der folgende Code bewirkt, dass sich der Loader in der Größe an den Inhalt anpasst:
loader.stretchContent = false;
Media-Komponenten (nur Flash Professional)
Die Streaming-Media-Komponenten erleichtern die Integration von Streaming-Media in FlashPräsentationen. Diese Komponenten bieten Ihnen verschiedene Möglichkeiten, Ihre Medien
anzuzeigen.
Die folgenden drei Media-Komponenten sind verfügbar:
• Mit der MediaDisplay-Komponente können Medien ohne unterstützende Benutzeroberfläche
•
•
in Flash-Inhalte gestreamt werden. Diese Komponente eignet sich für Video- und Audiodaten.
Die Anwendungsbenutzer haben keine Kontrolle über die Medien, wenn die MediaDisplayKomponente allein eingesetzt wird.
Die MediaController-Komponente ergänzt die MediaDisplay-Komponente durch eine
Benutzeroberfläche, die gängige Steuerelemente für die Medienwiedergabe enthält (z. B.
Abspielen, Pause). Die Medien werden zu keinem Zeitpunkt in den MediaController geladen
oder von diesem abgespielt. Der MediaController dient ausschließlich zur Steuerung der
Wiedergabe in einer MediaPlayback- oder MediaDisplay-Instanz. Zu den Funktionen der
MediaController-Komponente gehört eine „Schublade“, d. h. wenn die Maus sich über der
Komponente befindet, wird der Inhalt der Wiedergabesteuerungen verfügbar.
Die MediaPlayback-Komponente stellt eine Kombination der MediaDisplay-Komponente
und der MediaController-Komponente dar und liefert Methoden zum Streamen von
Medieninhalten.
Beachten Sie hinsichtlich Media-Komponenten Folgendes:
• Für die Media-Komponenten benötigen Sie mindestens Flash Player 7.
• Die Media-Komponenten bieten keine Unterstützung für Suchläufe. Sie können diese
•
•
360
Funktionalität aber durch Bewegen des Wiedergabereglers erzielen.
In der Live-Vorschau werden nur die Komponentengröße und die Controller-Richtlinien
wiedergegeben.
Die Media-Komponenten bieten keine Unterstützung für Eingabehilfen.
Kapitel 4: Komponenten-Referenz
Mit Media-Komponenten arbeiten (nur Flash Professional)
Die MediaPlayback-Komponente und die MediaController-Komponente reagieren auf Mausund Tastaturaktivitäten. Die MediaDisplay-Komponente reagiert weder auf Tastatur- noch auf
Mausereignisse. Die folgende Tabelle gibt Ihnen einen Überblick darüber, welche Aktionen
durchgeführt werden können, wenn die MediaPlayback-Komponente und die MediaControllerKomponente den Fokus erhalten:
Ziel
Navigation
Beschreibung
Wiedergabesteuerungen Maus über
eines Controllers
Steuerung
bewegen
Schaltfläche wird hervorgehoben.
Wiedergabesteuerungen Einzelner Klick
eines Controllers
mit linker
Maustaste
Die Benutzer können mit Hilfe der
Wiedergabesteuerungen eines Controllers auf die
Wiedergabe der Audio- und Videomedien Einfluss
nehmen, indem sie auf die Steuerungen klicken und so
die zugehörigen Reaktionen auslösen.
Die Schaltflächen Pause/Abspielen und Zum
Anfang/Zum Ende verhalten sich der Norm
entsprechend. Beim Drücken der Maustaste wird die
Schaltfläche auf dem Bildschirm in ihrem gedrückten
Zustand hervorgehoben; beim Loslassen der
Maustaste wird die Schaltfläche in ihren ursprünglichen,
d. h. nicht ausgewählten, Zustand zurückversetzt.
Die Schaltfläche Zum Ende ist bei der Wiedergabe von
FLV-Mediendateien deaktiviert.
Reglersteuerungen eines Regler vor- und Anhand des Wiedergabereglers lässt sich feststellen,
Controllers
zurückschieben an welcher Stelle der Benutzer sich in dem
Medieninhalt befindet. Der Anzeigegriff bewegt sich in
horizontaler Richtung (Standardeinstellung) vom
Anfang (links) bis zum Ende (rechts) der
Medienwiedergabe. Wenn die Steuerungen vertikal
ausgerichtet sind, bewegt sich der Wiedergaberegler
von unten nach oben. Während der Bewegung des
Anzeigegriffs von links nach rechts werden alle
Abschnitte links des Griffs hervorgehoben. Dies
bedeutet, dass der zugehörige Inhalt bereits
wiedergegeben bzw. ausgewählt wurde. Die Abschnitte
rechts des Anzeigegriffs werden nicht hervorgehoben,
bis der Griff sich über sie bewegt. Der Benutzer kann
den Anzeigegriff ziehen, um die Stelle, von der aus die
Wiedergabe der Medieninhalte erfolgt, zu ändern. Die
Medienwiedergabe beginnt automatisch an der Stelle,
an der die Maus gelassen wird, sofern die
Medienwiedergabe bereits gestartet wurde. Wurde die
Medienwiedergabe angehalten, kann der Regler zwar
auch verschoben und losgelassen werden, aber die
Wiedergabe bleibt angehalten.
Es gibt auch einen Lautstärkeregler, der sowohl in
horizontalen als auch vertikalen Layouts von links
(stumm) nach rechts (volle Lautstärke) bewegt werden
kann.
Media-Komponenten (nur Flash Professional)
361
Ziel
Navigation
Beschreibung
Navigation im
Wiedergabe-Controller
<Tab>,
<Umschalt>+
<Tab>
Bewegt den Fokus innerhalb der ControllerKomponente von einer Schaltfläche zur nächsten,
wobei das ausgewählte Element jeweils hervorgehoben
wird. Diese Art der Navigation funktioniert bei den
Steuerungen Pause/Abspielen, Zum Anfang, Zum
Ende, Lautstärke aus und Volle Lautstärke. Mit der
Taste <Tab> lässt sich der Fokus von links nach rechts
und von oben nach unten bewegen. Mit
<Umschalt>+<Tab> lässt sich der Fokus von rechts nach
links und von unten nach oben bewegen. Wenn die
Steuerung über die Taste <Tab> den Fokus erhält, wird
der Fokus sofort an die Schaltfläche Abspielen/Pause
weitergegeben. Befindet der Fokus sich bei der
Schaltfläche Volle Lautstärke und die Taste <Tab> wird
gedrückt, wird der Fokus an die nächste Steuerung in
der Reihenfolgenposition auf der Bühne
weitergegeben.
Eine Steuerungsschaltfläche
<Leertaste> oder Wählt das Element im Fokus aus. Beim Drücken wird
<Eingabe>
die Schaltfläche in ihrem gedrückten Zustand
angezeigt. Beim Loslassen wird die Schaltfläche in
ihren ausgewählten Mouse-Over-Zustand
zurückversetzt.
Media-Komponenten (nur Flash Professional)
Bevor Sie Media-Komponenten einsetzen, sollten Sie sich mit ihrer Funktionsweise vertraut
machen. Details hierzu finden Sie in diesem Abschnitt. Die meisten der genannten Eigenschaften
können direkt im Bedienfeld Komponenten-Inspektor eingestellt werden. Weitere
Informationen hierzu finden Sie unter „Bedienfeld „Komponenten-Inspektor“ bei MedienKomponenten verwenden“ auf Seite 368.
Abgesehen von den Layouteigenschaften, die weiter hinten in diesem Abschnitt behandelt
werden, können für die MediaDisplay-Komponente und die MediaPlayback-Komponente die
folgenden Eigenschaften eingestellt werden:
• Der Medientyp, d. h. MP3 oder FLV (siehe Media.mediaType und Media.setMedia()).
• Der relative oder absolute Inhaltspfad, der die zu streamende Mediendatei enthält (siehe
Media.contentPath).
• Cue-Point-Objekte, einschließlich der zugehörigen Namen, Zeitangabe- und PlayerEigenschaften (siehe Media.addCuePoint() und Media.cuePoints). Für den Cue-Point
kann ein beliebiger Name ausgewählt werden; wählen Sie einen prägnanten Namen, wenn Sie
Listener- und Trace-Ereignisse verwenden. Ein Cue-Point gibt ein Ereignis des Typs cuePoint
über eine Broadcastübertragung weiter, wenn der Wert seiner Zeitangabe-Eigenschaft mit der
Position des Abspielkopfes der zugehörigen MediaPlayback-Komponente bzw. MediaDisplayKomponente übereinstimmt. Bei der Player-Eigenschaft handelt es sich um einen Verweis auf
die MediaPlayback-Instanz, mit der sie verknüpft ist. Cue-Points können später mit Hilfe von
Media.removeCuePoint() und Media.removeAllCuePoints() entfernt werden.
362
Kapitel 4: Komponenten-Referenz
Die Streaming-Media-Komponenten geben eine Reihe einander ergänzender Ereignisse über eine
Broadcastübertragung weiter. Mit den folgenden Broadcast-Ereignissen können andere Elemente
in Bewegung gesetzt werden:
• Ein change-Ereignis wird von der MediaDisplay-Komponente und der MediaPlayback-
•
•
•
•
Komponente während der Medienwiedergabe ununterbrochen über eine
Broadcastübertragung weitergegeben. (Weitere Informationen finden Sie unter
Media.change.)
Ein progress-Ereignis wird von der MediaDisplay-Komponente und der MediaPlaybackKomponente während des Ladens der Medien ununterbrochen über eine
Broadcastübertragung weitergegeben. (Weitere Informationen finden Sie unter
Media.progress.)
Ein click-Ereignis wird von der MediaController-Komponente und der MediaPlaybackKomponente bei jedem Klick auf die Schaltfläche Pause/Abspielen über eine
Broadcastübertragung weitergegeben. In diesem Fall liefert die detail-Eigenschaft des
Ereignisobjekts Informationen darüber, auf welche Schaltfläche geklickt wurde. (Weitere
Informationen finden Sie unter Media.click.)
Ein volume-Ereignis wird von der MediaController-Komponente und der MediaPlaybackKomponente über eine Broadcastübertragung weitergegeben, wenn der Benutzer die
Einstellung der Lautstärkeregler ändert. (Weitere Informationen finden Sie unter
Media.volume.)
Ein playheadChange-Ereignis wird von der MediaController-Komponente und der
MediaPlayback-Komponente über eine Broadcastübertragung weitergegeben, wenn der
Benutzer den Wiedergaberegler bewegt. (Weitere Informationen finden Sie unter
Media.playheadChange.)
Die MediaDisplay-Komponente und die MediaController-Komponente lassen sich miteinander
kombinieren. Ihr Verhalten ist mit der MediaPlayback-Komponente vergleichbar, aber sie bieten
hinsichtlich des Layouts eine größere Flexibilität. Wenn Sie also bei der Präsentation Ihrer
Medien flexible Gestaltungsmöglichkeiten wünschen, setzen Sie die MediaDisplay-Komponente
und die MediaController-Komponente ein. Anderenfalls liefert die MediaPlayback-Komponente
optimale Ergebnisse.
MediaDisplay-Komponente
Wenn Sie eine MediaDisplay-Komponente auf der Bühne platzieren, wird sie ohne sichtbare
Benutzeroberfläche gezeichnet. Sie ist einfach ein Behälter zur Ablage und Wiedergabe von
Medien. Wie Videomedien aussehen, die in einer MediaDisplay-Komponente abgespielt werden,
hängt von den folgenden Eigenschaften ab:
• Media.aspectRatio
• Media.autoSize
• Höhe
• Breite
Hinweis: Der Benutzer kann nichts sehen, es sei denn, es werden Medien abgespielt.
Die Media.aspectRatio-Eigenschaft hat vor den anderen Eigenschaften Vorrang. Wenn
Media.aspectRatio den Wert true hat (Standardwert), passt die Komponente stets die Größe
der abgespielten Medien an, nachdem die Komponentengröße festgelegt wurde, damit das
Seitenverhältnis der Medien erhalten bleibt.
Media-Komponenten (nur Flash Professional)
363
Wenn der Wert für Media.autoSize bei FLV-Dateien true lautet, werden die abzuspielenden
Medien unabhängig von der Komponentengröße in ihrer bevorzugten Größe wiedergegeben.
Sollte die MediaDisplay-Instanz also nicht dieselbe Größe wie die Medien haben, erstrecken die
Medien sich über die Instanzbegrenzungen hinaus bzw. füllen diese nicht ganz aus. Wenn
Media.autoSize den Wert false hat, wird die Instanzgröße so weit wie möglich genutzt, und
das Seitenverhältnis bleibt erhalten. Wenn der Wert sowohl für Media.autoSize als auch für
Media.aspectRatio false lautet, wird die exakte Größe der Komponente verwendet.
Hinweis: Da MP3-Dateien keine Bilder enthalten, zeigt die Einstellung Media.autoSize hier keine
Wirkung. Bei MP3-Dateien beträgt die kleinstmögliche Größe 60 x 256 Pixel (Höhe x Breite) in der
Standardausrichtung.
Die MediaDisplay-Komponente unterstützt auch die Eigenschaft Media.volume. Dieser
Eigenschaft können Ganzzahlwerte von 0 bis 100 zugewiesen werden. Bei dem Wert 0 ist die
Lautstärke deaktiviert, und bei dem Wert 100 werden Medien in voller Lautstärke
wiedergegeben. Die Standardeinstellung ist 75.
MediaController-Komponente
Das Aussehen der Benutzeroberfläche der MediaController-Komponente hängt von den
Eigenschaften Media.controllerPolicy und Media.backgroundStyle ab. Die Eigenschaft
Media.controllerPolicy bestimmt, ob der Mediensteuerungssatz immer eingeblendet, immer
ausgeblendet oder nur sichtbar ist, wenn die Maus sich über dem Steuerungsteil der Komponente
befindet. Im ausgeblendeten Zustand zeigt der Controller eine modifizierte Fortschrittleiste an,
bei der es sich um eine kombinierte Lade- und Wiedergabeleiste handelt. Im unteren Bereich der
Leiste wird der Fortschritt der geladenen Daten angezeigt und direkt darüber der Fortschritt des
Abspielkopfes. Im eingeblendeten Zustand wird eine umfangreichere Version der kombinierten
Lade-/Wiedergabeleiste mit den folgenden Elementen angezeigt:
• Text auf der linken Seite gibt den Wiedergabestatus an (Streaming oder Pause) und Text auf
der rechten Seite die Position des Abspielkopfes in Sekunden
• Position des Abspielkopfes
• Ein Regler, der gezogen werden kann, um durch die Medien zu navigieren
Die folgenden Elemente werden ebenfalls mit der MediaController-Komponente bereitgestellt:
• Schaltfläche Abspielen/Pause
• Die Schaltflächengruppe Zum Anfang/Zum Ende, die zur Navigation zum Anfang bzw. Ende
der Medien dienen
• Eine Lautstärkesteuerung, die sich aus einem Regler, einer Schaltfläche zur Deaktivierung der
Lautstärke sowie einer Schaltfläche zur Aktivierung der vollen Lautstärke zusammensetzt
Sowohl im ausgeblendeten als auch im eingeblendeten Zustand der MediaControllerKomponente wird die Eigenschaft Media.backgroundStyle eingesetzt. Diese Eigenschaft
bestimmt, ob der Controller mit einem Farbhintergrund versehen wird (Standardeinstellung)
oder ob der Filmhintergrund hinter den Steuerungen erscheint.
Die MediaController-Komponente hat eine Ausrichtungseinstellung, Media.horizontal, mit
deren Hilfe die Komponente in horizontaler (Standardeinstellung) bzw. vertikaler Ausrichtung
dargestellt werden kann. Bei der horizontalen Ausrichtung bewegt sich die Wiedergabeleiste bei
der Medienwiedergabe von links nach rechts. Bei der vertikalen Ausrichtung bewegt sich die
Wiedergabeleiste bei der Medienwiedergabe von unten nach oben.
364
Kapitel 4: Komponenten-Referenz
Die MediaDisplay-Komponente und die MediaController-Komponente können über die
Methoden Media.associateDisplay() und Media.associateController() miteinander
verknüpft werden. Wenn diese Methoden aufgerufen werden, kann die MediaController-Instanz
ihre Steuerungen anhand von Ereignissen aktualisieren, die von der MediaDisplay-Instanz
übertragen werden, und die MediaDisplay-Komponente kann auf die Einstellung reagieren, die
der Benutzer über den MediaController vornimmt.
MediaPlayback-Komponente
Die MediaPlayback-Komponente stellt eine Kombination der MediaController- und
MediaDisplay-Steuerungen dar. Beide Unterkomponenten sind in der MediaPlaybackKomponente enthalten. Die MediaController- und MediaDisplay-Bestandteile werden stets an
die Größe der MediaPlayback-Komponenteninstanz angepasst.
Die MediaPlayback-Komponente bestimmt das Layout der Steuerungen anhand von
Media.controlPlacement. Die Platzierungsoptionen für die Steuerungen lauten top, bottom,
left und right und geben an, wo die Steuerungen im Verhältnis zur Anzeige dargestellt werden.
Bei dem Wert right wird eine Steuerung beispielsweise vertikal ausgerichtet und rechts neben
der Anzeige platziert.
Media-Komponenten verwenden (nur Flash Professional)
Bei der Bereitstellung von Informationen über das Internet spielen Medien eine immer größere
Rolle. Viele Anbieter sind daher daran interessiert, den Webbenutzern eine Methode zu bieten,
mit deren Hilfe sie die Medien streamen und dann steuern können. Media-Komponenten
können beispielsweise in den folgenden Szenarios eingesetzt werden:
•
•
•
•
Unternehmenspräsentation anhand von Medien
Streamen von Filmen oder einer Filmvorschau
Streamen von Musiktiteln oder Auszügen
Bereitstellen von Lehrmaterial in Form von Medien
MediaPlayback-Komponente verwenden
Nehmen wir einmal an, Sie müssen für Ihre Kunden eine Website entwickeln, auf der WebsiteBesucher sich in einer Rich Media-Umgebung eine Vorschau der DVDs und CDs ansehen
können, die Sie zum Kauf anbieten. Im nachfolgenden Beispiel werden die hierzu erforderlichen
Schritte erläutert. Dabei wird davon ausgegangen, dass Ihre Website für die Aufnahme von
Streaming-Komponenten bereit ist.
So erstellen Sie ein Flash-Dokument, das eine CD- oder DVD-Vorschau anzeigt:
1 Wählen Sie in Flash Datei > Neu und dann Flash-Dokument.
2 Öffnen Sie das Bedienfeld Komponenten (Fenster > Entwicklungs-Bedienfelder >
Komponenten), und doppelklicken Sie auf die MediaPlayback-Komponente. Dadurch wird
eine Instanz der Komponente auf der Bühne platziert.
3 Wählen Sie die Instanz der MediaPlayback-Komponente aus, und geben Sie im
Eigenschafteninspektor den Instanznamen meinMedia ein.
4 Wählen Sie im Bedienfeld Komponenten-Inspektor (Fenster > Entwicklungs-Bedienfelder >
Komponenten-Inspektor) den zu streamenden Medientyp (MP3 oder FLV) aus.
Media-Komponenten (nur Flash Professional)
365
5 Wenn Sie den Typ FLV auswählen, müssen Sie die Dauer des Videos in die Textfelder Video
Length (Videolänge) im Format HH:MM:SS eingeben.
6 Geben Sie den Speicherort der Videovorschau im Textfeld URL an. Beispiel:
http://mein.web.com/Videovorschau/Filmname.flv.
7 Legen Sie die gewünschten Optionen für die Kontrollkästchen Automatically Play
(Automatisch abspielen), Use Preferred Media Size (Bevorzugte Mediengröße verwenden) und
Respect Aspect Ratio (Seitenverhältnis beibehalten) fest.
8 Geben Sie an, wo die Steuerung in der MediaPlayback-Komponente platziert werden soll.
9 Fügen Sie gegen Ende der Medien einen Cue-Point ein, der mit einem Listener verbunden
wird, um den Benutzer über ein Popupfenster darauf hinzuweisen, dass er den Film kaufen
kann. Geben Sie dem Cue-Point den Namen cuePointName, und platzieren Sie ihn kurz (d. h.
wenige Sekunden) vor dem Ende des Clips. Führen Sie hierzu folgende Schritte aus:
a Doppelklicken Sie auf eine Window-Komponente, damit sie auf der Bühne angezeigt wird.
b Löschen Sie die Window-Komponente. Dadurch wird ein Element namens Window in die
Bibliothek eingefügt.
c Erstellen Sie ein Textfeld, und geben Sie Text ein, der den Benutzer darauf hinweist, dass er
den Film kaufen kann.
d Konvertieren Sie dieses Textfeld mit Modifizieren > In Symbol konvertieren in einen
Movieclip, und geben Sie dem Clip den Namen meinSale_mc.
e Klicken Sie in der Bibliothek mit der rechten Maustaste auf den Movieclip meinSale_mc,
wählen Sie Verknüpfung und dann die Option Export für ActionScript. Der Movieclip
wird dadurch in Ihre Laufzeitbibliothek eingefügt.
366
Kapitel 4: Komponenten-Referenz
10 Fügen Sie Bild 1 den folgenden ActionScript-Code hinzu. Mit diesem Code wird ein Listener
erstellt, der den Benutzer über ein Popupfenster darauf hinweist, dass er den Film kaufen kann.
// Importiert die Klassen, die zum dynamischen Erstellen des Popupfensters
// erforderlich sind
import mx.containers.Window;
import mx.managers.PopUpManager;
// Erstellt ein Listener-Objekt, das das Popupfenster mit den
// Verkaufsdetails einblendet
var saleListener = new Object();
saleListener.cuePoint = function(evt){
var saleWin = PopUpManager.createPopUp(_root, Window, false, {closeButton:
true, title: "Filmverkauf ", contentPath: "meinSale_mc"});
// Vergrößert das Fenster, damit der Inhalt hineinpasst
saleWin.setSize(80, 80);
var delSaleWin = new Object();
delSaleWin.click = function(evt){
saleWin.deletePopUp();
}
saleWin.addEventListener("click", delSaleWin);
}
meinMedia.addEventListener("cuePoint", saleListener);
MediaDisplay-Komponente und MediaController-Komponente verwenden
Nehmen wir einmal an, Sie möchten den Stil und das Aussehen Ihrer Medienanzeige stärker
beeinflussen. Sie müssen in diesem Fall die MediaDisplay-Komponente und die
MediaController-Komponente miteinander kombinieren, um das gewünschte Ergebnis zu
erzielen. Im folgenden Beispiel, das eine Abwandlung des vorigen Beispiels darstellt, erfahren Sie,
wie Sie eine Flash-Anwendung erstellen, die Ihre CD- und DVD-Vorschaumedien anzeigt.
So erstellen Sie ein Flash-Dokument, das eine CD- oder DVD-Vorschau anzeigt:
1 Wählen Sie in Flash Datei > Neu und dann Flash-Dokument.
2 Doppelklicken Sie im Bedienfeld Komponenten (Fenster > Entwicklungs-Bedienfelder >
3
4
5
6
7
Komponenten) auf die MediaController-Komponente und die MediaDisplay-Komponente.
Dadurch wird eine Instanz jeder Komponente auf der Bühne platziert.
Wählen Sie die Instanz der MediaDisplay-Komponente aus, und geben Sie im
Eigenschafteninspektor den Instanznamen meinDisplay ein.
Wählen Sie die Instanz der MediaController-Komponente aus, und geben Sie im
Eigenschafteninspektor den Instanznamen meinController ein.
Starten Sie das Bedienfeld Komponenten-Inspektor über den Eigenschafteninspektor, und
wählen Sie den zu streamenden Medientyp (MP3 oder FLV) aus.
Wenn Sie den Typ FLV auswählen, müssen Sie die Dauer des Videos in die Textfelder Video
Length (Videolänge) im Format HH:MM:SS eingeben.
Geben Sie den Speicherort der Videovorschau im Textfeld URL an. Beispiel:
http://mein.web.com/Videovorschau/Filmname.flv.
Media-Komponenten (nur Flash Professional)
367
8 Legen Sie die gewünschten Optionen für die Kontrollkästchen Automatically Play
(Automatisch abspielen), Use Preferred Media Size (Bevorzugte Mediengröße verwenden) und
Respect Aspect Ratio (Seitenverhältnis beibehalten) fest.
9 Wählen Sie die MediaController-Instanz aus. Legen Sie dann im Bedienfeld KomponentenInspektor eine vertikale Ausrichtung fest, indem Sie der Eigenschaft horizontal den Wert
false zuordnen.
10 Wählen Sie im Bedienfeld Komponenten-Inspektor für backgroundStyle die Option none.
Dadurch wird die MediaController-Instanz angewiesen, keinen Hintergrund zu zeichnen,
sondern die Medien zwischen den Steuerungen auszufüllen.
11 Verknüpfen Sie die MediaController-Instanz und die MediaDisplay-Instanz mit Hilfe eines
Verhaltens, sodass die MediaController-Instanz die Bewegung des Abspielkopfes und andere
Einstellungen der MediaDisplay-Instanz korrekt widerspiegelt und die MediaDisplay-Instanz
auf Mausklicks reagiert:
a Wählen Sie die MediaDisplay-Instanz aus, und geben Sie im Eigenschafteninspektor den
Instanznamen meinMediaDisplay ein.
b Wählen Sie die MediaController-Instanz aus, die das Verhalten auslöst.
c Öffnen Sie das Bedienfeld Verhalten (Fenster > Entwicklungs-Bedienfelder > Verhalten),
klicken Sie dort auf die Schaltfläche Hinzufügen (+), und wählen Sie Medien > Anzeige
verknüpfen.
d Wählen Sie im Fenster Anzeige verknüpfen unter _root meinMediaDisplay aus, und
klicken Sie auf OK.
Weitere Informationen zum Einsatz von Verhalten bei Media-Komponenten finden Sie unter
„Media-Komponenten mittels Verhalten steuern“ auf Seite 369.
Bedienfeld „Komponenten-Inspektor“ bei Medien-Komponenten
verwenden
Mit dem Bedienfeld Komponenten-Inspektor lassen sich u. a. Parameter und Eigenschaften für
Media-Komponenten mühelos einstellen. Um dieses Bedienfeld anzuzeigen, klicken Sie auf der
Bühne auf die gewünschte Komponente und dann im geöffneten Eigenschafteninspektor auf
Komponenten-Inspektor starten. Das Bedienfeld Komponenten-Inspektor eignet sich für
folgende Zwecke:
• Medien automatisch abspielen (siehe Media.activePlayControl und Media.autoPlay)
• Seitenverhältnis der Medien erhalten oder ignorieren (siehe Media.aspectRatio)
• Automatische Anpassung der Mediengröße an die Komponenten-Instanz aktivieren oder
•
•
•
•
•
•
•
•
368
deaktivieren (siehe Media.autoSize)
Farbhintergrund aktivieren oder deaktivieren (siehe Media.backgroundStyle)
Pfad zu den Medien in Form einer URL festlegen (siehe Media.contentPath)
Sichtbarkeit der Wiedergabesteuerungen festlegen (siehe Media.controllerPolicy)
Cue-Point-Objekte hinzufügen (siehe Media.addCuePoint())
Cue-Point-Objekte löschen (siehe Media.removeCuePoint())
Ausrichtung von MediaController-Instanzen festlegen (siehe Media.horizontal)
Typ der abgespielten Medien festlegen (siehe Media.setMedia())
Wiedergabedauer von FLV-Medien festlegen (siehe Media.totalTime)
Kapitel 4: Komponenten-Referenz
• Die letzten Ziffern der Zeitanzeige auf Millisekunden oder Bilder pro Sekunde (FPS, Frames
per Second) einstellen
Bei der Arbeit mit dem Bedienfeld Komponenten-Inspektor beachten Sie bitte Folgendes:
• Bei dem Videotyp MP3 wird die Zeitangabesteuerung entfernt, da diese Informationen bei
•
MP3-Dateien automatisch eingelesen werden. Bei FLV-Dateien müssen Sie die Gesamtdauer
der Medien (Media.totalTime) eingeben, damit die Wiedergabeleiste der MediaPlaybackKomponente (bzw. einer verbundenen MediaController-Komponente) den Wiedergabestatus
korrekt widerspiegeln kann.
Bei dem Dateityp FLV wird die Option Milliseconds (Millisekunden) angezeigt. Falls diese
nicht aktiviert wurde, wird das Popupmenü FPS (Frames per Second; Bilder pro Sekunde)
verfügbar. Wenn die Option Milliseconds (Millisekunden) aktiviert ist, wird die FPSSteuerung nicht angezeigt. In diesem Modus wird die in der Wiedergabeleiste zur Laufzeit
angezeigte Zeit im Format HH:MM:SS.mmm (H = Stunde, M = Minuten, S = Sekunden, m =
Millisekunden) angegeben, und Cue-Points werden in der Einheit Sekunden definiert. Wenn
Milliseconds (Millisekunden) deaktiviert ist, wird die FPS-Steuerung aktiviert. Die auf der
Wiedergabeleiste angezeigte Zeit wird im Format HH:MM:SS.FF (F = Frames per Second
oder Bilder pro Sekunde) angegeben, und Cue-Points werden in der Einheit Bilder definiert.
Hinweis: Die FPS-Eigenschaft kann nur über das Bedienfeld Komponenten-Inspektor
eingestellt werden. Ein mit Hilfe von ActionScript festgelegter FPS-Wert ist wirkungslos und wird
ignoriert.
Media-Komponenten mittels Verhalten steuern
Verhalten sind vorgefertigte ActionScript-Skripts, die Sie Objektinstanzen wie beispielsweise
MediaDisplay-Komponenten zuweisen können. Auf diese Weise profitieren Sie von der
Leistungsfähigkeit und den umfassenden Steuerungsmöglichkeiten von ActionScript, ohne selbst
programmieren zu müssen.
Um eine Media-Komponente mit Hilfe eines Verhaltens zu steuern, müssen Sie das gewünschte
Verhalten über das Bedienfeld Verhalten einer Media-Komponenteninstanz zuweisen. Dazu
müssen Sie zuerst das Ereignis angeben, das das Verhalten auslöst (z. B. das Erreichen eines
bestimmten Cue-Points), dann ein Zielobjekt auswählen (die Media-Komponenten, auf die sich
das Verhalten auswirkt) und bei Bedarf Einstellungen für das Verhalten vornehmen (z. B. der
Movieclip innerhalb der Medien, der angezeigt werden soll).
Die folgenden Verhalten sind in Flash MX Professional 2004 bereits enthalten und dienen zur
Steuerung eingebetteter Media-Komponenten:
Verhalten
Funktion
Parameter
Controller
verknüpfen
Verknüpft eine MediaControllerKomponente mit einer MediaDisplayKomponente
Instanzname der
MediaControllerZielkomponenten
Anzeige verknüpfen Verknüpft eine MediaDisplayKomponente mit einer MediaControllerKomponente
Instanzname der
MediaControllerZielkomponenten
Media-Komponenten (nur Flash Professional)
369
Verhalten
Funktion
Parameter
CuePointNavigation für
benanntes Bild
Name des Bildes und Name des
Platziert eine Aktion auf einer
Cue-Points (die Namen sollten
MediaDisplay- bzw. MediaPlaybackInstanz, die einen angegebenen Movieclip identisch sein)
anweist, zu einem Bild zu navigieren,
dessen Name mit dem Namen eines
bestimmten Cue-Points übereinstimmt
CuePointWeist ein folienbasiertes Flash-Dokument Name der Folie und Name des
Cue-Points (die Namen sollten
Navigation für Folien an, zu einer Folie zu navigieren, deren
Namen mit dem Namen eines bestimmten identisch sein)
Cue-Points übereinstimmt
So verknüpfen Sie eine MediaDisplay-Komponente mit einer MediaControllerKomponente:
1 Platzieren Sie eine MediaDisplay-Instanz und eine MediaController-Instanz auf der Bühne.
2 Wählen Sie die MediaDisplay-Instanz aus, und geben Sie im Eigenschafteninspektor den
Instanznamen meinMediaDisplay ein.
3 Wählen Sie die MediaController-Instanz aus, die das Verhalten auslöst.
4 Öffnen Sie das Bedienfeld Verhalten (Fenster > Entwicklungs-Bedienfelder > Verhalten),
klicken Sie dort auf die Schaltfläche Hinzufügen (+), und wählen Sie Medien > Anzeige
verknüpfen.
5 Wählen Sie im Fenster Anzeige verknüpfen unter _root meinMediaDisplay aus, und klicken
Sie auf OK.
Hinweis: Wenn Sie die MediaDisplay-Komponente mit der MediaController-Komponente
verknüpft haben, ist es nicht notwendig, die MediaController-Komponente mit der MediaDisplayKomponente zu verknüpfen.
So verknüpfen Sie eine MediaController-Komponente mit einer MediaDisplayKomponente:
1 Platzieren Sie eine MediaDisplay-Instanz und eine MediaController-Instanz auf der Bühne.
2 Wählen Sie die MediaController-Instanz aus, und geben Sie im Eigenschafteninspektor den
Instanznamen meinMediaController ein.
3 Wählen Sie die MediaDisplay-Instanz aus, die das Verhalten auslösen soll.
4 Öffnen Sie das Bedienfeld Verhalten (Fenster > Entwicklungs-Bedienfelder > Verhalten),
klicken Sie dort auf die Schaltfläche Hinzufügen (+), und wählen Sie Medien > Controller
verknüpfen.
5 Wählen Sie im Fenster Controller verknüpfen unter _root meinMediaController aus, und
klicken Sie auf OK.
So verwenden Sie das Verhalten „CuePoint-Navigation für benanntes Bild“:
1 Platzieren Sie eine MediaDisplay- oder MediaPlayback-Komponenteninstanz auf der Bühne.
2 Wählen Sie das Bild aus, zu dem die Medien navigieren sollen, und geben Sie im
Eigenschafteninspektor den Bildnamen meinLabeledFrame ein.
3 Wählen Sie die MediaDisplay- oder MediaPlayback-Instanz aus.
4 Klicken Sie im Bedienfeld Komponenten-Inspektor auf die Schaltfläche Hinzufügen (+),
geben Sie die Cue-Point-Zeiten im Format HH:MM:SS:mmm oder HH:MM:SS:FF ein, und
geben Sie dem Cue-Point den Namen meinLabeledFrame.
370
Kapitel 4: Komponenten-Referenz
Der Cue-Point gibt an, wie viel Zeit vergehen soll, bevor zum ausgewählten Bild gesprungen
wird. Wenn Sie beispielsweise nach 5 Sekunden zum Bild meinLabeledFrame springen
möchten, geben Sie im Textfeld SS den Wert 5 und im Textfeld Name meinLabeledFrame ein.
5 Öffnen Sie das Bedienfeld Verhalten (Fenster > Entwicklungs-Bedienfelder > Verhalten).
Klicken Sie auf die Schaltfläche Hinzufügen (+), und wählen Sie Medien > CuePointNavigation für benanntes Bild.
6 Wählen Sie im Fenster CuePoint-Navigation für benanntes Bild den Clip _root aus, und
klicken Sie auf OK.
So verwenden Sie das Verhalten „CuePoint-Navigation für Folie“:
1 Öffnen Sie das neue Dokument als Flash-Folienpräsentation.
2 Platzieren Sie eine MediaDisplay- oder MediaPlayback-Komponenteninstanz auf der Bühne.
3 Klicken Sie im Übersichtsfenster links von der Bühne auf die Schaltfläche Bildschirm einfügen
4
5
6
7
(+), um eine zweite Folie hinzuzufügen. Wählen Sie dann die zweite Folie aus, und benennen
Sie sie in meineSlide um.
Wählen Sie die MediaDisplay- oder MediaController-Instanz aus.
Klicken Sie im Bedienfeld Komponenten-Inspektor auf die Schaltfläche Hinzufügen (+), und
geben Sie die Cue-Point-Zeit im Format HH:MM:SS:mmm bzw. HH:MM:SS:FF ein. Geben
Sie dem Cue-Point dann den Namen MeineSlide.
Der Cue-Point gibt an, wie viel Zeit vergehen soll, bevor zur ausgewählten Folie gesprungen
wird. Wenn Sie beispielsweise nach 5 Sekunden zur Folie meineSlide springen möchten,
geben Sie im Textfeld SS den Wert 5 und im Textfeld Name meineSlide ein.
Öffnen Sie das Bedienfeld Verhalten (Fenster > Entwicklungs-Bedienfelder > Verhalten).
Klicken Sie auf die Schaltfläche Hinzufügen (+), und wählen Sie Medien > CuePointNavigation für Folie.
Wählen Sie im Fenster CuePoint-Navigation für Folie unter dem Clip _root die Option
Präsentation aus, und klicken Sie auf OK.
Parameter der Media-Komponente (nur Flash Professional)
Die folgenden Tabellen enthalten Authoring-Parameter, die Sie im Eigenschafteninspektor für
eine Media-Komponenteninstanz setzen können:
Parameter der MediaDisplay-Komponente
Name
Typ
Standardwert Beschreibung
Automatically Play
(Automatisch abspielen,
Media.autoPlay)
Boolean Ausgewählt
Legt fest, ob die Medienwiedergabe sofort
nach dem Laden beginnt.
Use Preferred Media Size Boolean Ausgewählt
(Bevorzugte Mediengröße
verwenden,
Media.autoSize)
Legt fest, ob die mit der MediaDisplayInstanz verknüpfte Mediendatei der
Komponentengröße entspricht oder ob
einfach die Standardgröße verwendet wird.
FPS
Gibt die Zahl der Bilder pro Sekunde
(Frames per Second) an. Wenn die Option
Milliseconds (Millisekunden) ausgewählt
ist, ist dieses Steuerelement deaktiviert.
Integer
30
Media-Komponenten (nur Flash Professional)
371
Name
Typ
Standardwert Beschreibung
Cue-Points
(Media.cuePoints)
Array
Nicht definiert
Ein Array mit Cue-Point-Objekten, jeweils
mit einem Namen und einer gültigen
Zeitangabe im Format HH:MM:SS:mmm
(Option Milliseconds (Millisekunden)
ausgewählt) oder HH:MM:SS:FF.
FLV oder MP3
(Media.mediaType)
„FLV“
oder
„MP3“
„FLV“
Gibt den wiederzugebenden Medientyp an.
Milliseconds
(Millisekunden)
Boolean Nicht
ausgewählt
Legt fest, ob die Wiedergabeleiste Bilder
oder Millisekunden verwendet und ob CuePoints in Sekunden oder Bildern angeben
werden. Wenn diese Option ausgewählt ist,
wird das FPS-Steuerelement nicht
angezeigt.
URL (Media.contentPath)
String
Nicht definiert
Ein String mit dem Pfad und dem
Dateinamen der wiederzugebenden
Mediendatei.
Nicht definiert
Die zur Wiedergabe der FLV-Datei
erforderliche Gesamtzeit. Diese Einstellung
ist erforderlich, damit die Wiedergabeleiste
korrekt funktioniert. Dieses Steuerelement
wird nur angezeigt, wenn der Medientyp
FLV ausgewählt ist.
Video Length (Videolänge, Integer
Media.totalTime)
Parameter der MediaController-Komponente
Name
Typ
activePlayControl (Aktive
Wiedergabesteuerung,
String:
„pause“
Media.activePlayControl) oder
„play“
backgroundStyle
(Hintergrundstil,
Media.backgroundStyle)
controllerPolicy
(Controller-Richtlinien,
Media.controllerPolicy)
horizontal
(Media.horizontal)
372
Standardwert Beschreibung
„pause“
„default“
String:
„default“
oder
„none“
„auto“,
„on“
oder
„off“
„auto“
Boolean true
Kapitel 4: Komponenten-Referenz
Legt fest, ob sich die Wiedergabeleiste bei
der Instanziierung im Pause- oder im
Wiedergabemodus befindet.
Legt fest, ob die MediaController-Instanz
mit einem Farbhintergrund versehen wird.
Legt fest, ob die Steuerung je nach
Mausposition geöffnet oder geschlossen
wird oder im geöffneten oder
geschlossenen Zustand fixiert ist.
Legt fest, ob der Steuerungsbereich der
Instanz vertikal oder horizontal ausgerichtet
ist. Der Wert true bedeutet, dass die
Komponente horizontal ausgerichtet ist.
Name
Typ
Standardwert Beschreibung
enabled (aktiviert)
Boolean true
Legt fest, ob die Steuerung durch den
Benutzer geändert werden kann. Der Wert
true bedeutet, dass eine Änderung möglich
ist.
visible (sichtbar)
Boolean true
Legt fest, ob die Steuerung für den
Benutzer sichtbar ist. Der Wert true
bedeutet, dass sie angezeigt wird.
minHeight (Mindesthöhe)
Integer
0
Die kleinste zulässige Höhe für diese
Instanz (in Pixel).
minWidth (Mindestbreite)
Integer
0
Die kleinste zulässige Breite für diese
Instanz (in Pixel).
Parameter der MediaPlayback-Komponente
Name
Typ
Control Placement
(Platzierung,
„bottom“
„top“,
„bottom“
, „left“,
„right“
Position der Steuerung. Der Wert bezieht
sich auf die Ausrichtung.
Media.controllerPolicy
Boolean
Legt fest, ob die Steuerung je nach
Mausposition geöffnet oder geschlossen
wird.
Automatically Play
(Automatisch abspielen,
Media.autoPlay)
Boolean Ausgewählt
Media.controlPlacement)
Standardwert Beschreibung
true
Legt fest, ob die Medienwiedergabe sofort
nach dem Laden beginnt.
Use Preferred Media Size Boolean Ausgewählt
(Bevorzugte Mediengröße
verwenden,
Media.autoSize)
Legt fest, ob die Größe der
MediaController-Instanz an die Mediendatei
angepasst wird oder ob andere
Einstellungen verwendet werden.
FPS
Integer
30
Anzahl der Bilder pro Sekunde. Wenn die
Option Milliseconds (Millisekunden)
ausgewählt ist, ist dieses Steuerelement
deaktiviert.
Cue-Points
(Media.cuePoints)
Array
Nicht definiert
Ein Array mit Cue-Point-Objekten, jeweils
mit einem Namen und einer gültigen
Zeitangabe im Format HH:MM:SS:mmm
(Option Milliseconds (Millisekunden)
ausgewählt) oder HH:MM:SS:FF.
FLV oder MP3
(Media.mediaType)
„FLV“
oder
„MP3“
„FLV“
Gibt den wiederzugebenden Medientyp an.
Media-Komponenten (nur Flash Professional)
373
Name
Typ
Milliseconds
(Millisekunden)
Boolean Nicht
ausgewählt
Legt fest, ob die Wiedergabeleiste Bilder
oder Millisekunden verwendet und ob CuePoints in Sekunden oder Bildern angeben
werden. Wenn diese Option ausgewählt ist,
ist das FPS-Steuerelement deaktiviert.
URL (Media.contentPath)
String
Nicht definiert
Ein String mit dem Pfad und dem
Dateinamen der wiederzugebenden
Mediendatei.
Nicht definiert
Die zur Wiedergabe der FLV-Datei
erforderliche Gesamtzeit. Diese Einstellung
ist erforderlich, damit die Wiedergabeleiste
korrekt funktioniert.
Video Length (Videolänge, Integer
Media.totalTime)
Standardwert Beschreibung
Anwendungen mit Media-Komponenten erstellen (nur Flash Professional)
Die Erstellung von Flash-Inhalten mit Hilfe von Media-Komponenten ist sehr einfach und
erfordert meist nur wenige Schritte.
Dieses Beispiel veranschaulicht die Erstellung einer Anwendung zur Wiedergabe einer kleinen,
öffentlich verfügbaren Mediendatei.
So fügen Sie einer Anwendung eine Media-Komponente hinzu:
1 Wählen Sie in Flash Datei > Neu und dann Flash-Dokument.
2 Öffnen Sie das Bedienfeld Komponenten (Fenster > Entwicklungs-Bedienfelder >
3
4
5
6
Komponenten), und doppelklicken Sie auf die MediaPlayback-Komponente, um sie der Bühne
hinzuzufügen.
Geben Sie im Eigenschafteninspektor den Instanznamen meinMedia ein.
Klicken Sie im Eigenschafteninspektor auf Komponenten-Inspektor starten.
Geben Sie im Bedienfeld Komponenten-Inspektor im Textfeld URL folgendes ein:
http://www.cathphoto.com/c.flv.
Wählen Sie Steuerung > Film testen, um die Mediendatei wiederzugeben.
Media-Komponenten anpassen (nur Flash Professional)
Sie können die Darstellung von Media-Komponenten mittels Skinning anpassen. Vollständige
Informationen zum Anpassen von Komponenten finden Sie in Kapitel 3, „Komponenten
individuell anpassen“, auf Seite 31.
Stile mit der Media-Komponente verwenden
Die Verwendung von Stilen wird bei Media-Komponenten nicht unterstützt.
374
Kapitel 4: Komponenten-Referenz
Skins mit der Media-Komponente verwenden
Die Media-Komponenten unterstützen kein dynamisches Skinning. Sie können jedoch das
Quelldokument der Media-Komponente öffnen und die Bestände ändern, um die gewünschte
Darstellung zu erzielen. Dabei ist es am sinnvollsten, zuerst eine Kopie der Datei anzulegen und
mit dieser Kopie zu arbeiten, damit das installierte Original erhalten bleibt und wieder verwendet
werden kann. Sie finden das Quelldokument der Media-Komponente im folgenden Verzeichnis:
• Windows: C:\Dokumente und Einstellungen\Benutzer\Lokale Einstellungen\
•
Anwendungsdaten\Macromedia\Flash MX 2004\Sprache\Configuration\ComponentFLA.fla
Macintosh: HD Drive:Users:Benutzer:Library:Application Support:Macromedia:Flash MX
2004:Sprache:Configuration:ComponentFLA.fla
Weitere Informationen zu Komponenten-Skins finden Sie unter „Skinning-Komponenten“
auf Seite 42.
Media-Klasse (nur Flash Professional)
Vererbung
mx.core.UIComponent
ActionScript-Klassennamen
mx.controls.MediaController, mx.controls.MediaDisplay,
mx.controls.MediaPlayback
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse selbst verfügbar. Die Eigenschaft
version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit dem
folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.MediaPlayback.version);
Hinweis: Der Code trace(meineMediaInstance.version); gibt undefined zurück.
Übersicht: Methoden der Media-Klasse
Methode
Komponenten
Beschreibung
Media.addCuePoint()
MediaDisplay,
MediaPlayback
Fügt der Komponenteninstanz ein Cue-PointObjekt hinzu.
Media.associateController() MediaDisplay
Verknüpft eine MediaDisplay-Instanz mit einer
MediaController-Instanz.
Media.associateDisplay()
MediaController Verknüpft eine MediaController-Instanz mit einer
MediaDisplay-Instanz.
Media.displayFull()
MediaPlayback
Setzt die Komponenteninstanz in den VollbildWiedergabemodus.
Media.displayNormal()
MediaPlayback
Setzt die Komponenteninstanz wieder auf die
ursprüngliche Bildgröße zurück.
Media.getCuePoint()
MediaDisplay,
MediaPlayback
Gibt ein Cue-Point-Objekt zurück.
Media.play()
MediaDisplay,
MediaPlayback
Gibt die mit der Komponenteninstanz verknüpfte
Mediendatei ab einem festgelegten Startpunkt
wieder.
Media-Komponenten (nur Flash Professional)
375
Methode
Komponenten
Beschreibung
Media.pause()
MediaDisplay,
MediaPlayback
Setzt den Abspielkopf an der aktuellen Position in
der Medienzeitleiste in den Pausemodus.
Media.removeAllCuePoints()
MediaDisplay,
MediaPlayback
Löscht alle Cue-Point-Objekte, die mit einer
bestimmten Komponenteninstanz verknüpft sind.
Media.removeCuePoint()
MediaDisplay,
MediaPlayback
Löscht einen angegebenen Cue-Point, der mit
einer bestimmten Komponenteninstanz verknüpft
ist.
Media.setMedia()
MediaDisplay,
MediaPlayback
Legt den Medientyp und den Pfad zum
angegebenen Medientyp fest.
Media.stop()
MediaDisplay,
MediaPlayback
Stoppt den Abspielkopf und verschiebt ihn zur
Position 0, d. h., an den Anfang der Mediendatei.
Übersicht: Eigenschaften der Media-Klasse
376
Eigenschaft
Komponenten
Media.activePlayControl
MediaController Legt den Zustand der Komponente beim Laden
zur Laufzeit fest.
Media.aspectRatio
MediaDisplay,
MediaPlayback
Legt fest, ob die Komponenteninstanz das
Bildseitenverhältnis beibehält.
Media.autoPlay
MediaDisplay,
MediaPlayback
Legt fest, ob die Komponenteninstanz sofort mit
dem Zwischenspeichern und der Wiedergabe
beginnt.
Media.autoSize
MediaDisplay,
MediaPlayback
Legt fest, wie die Größe des Medien anzeigenden
Teils der MediaDisplay- oder MediaPlaybackKomponente bestimmt wird.
Media.backgroundStyle
MediaController Legt fest, ob die Komponenteninstanz mit einem
Farbhintergrund versehen wird.
Media.bytesLoaded
MediaDisplay,
MediaPlayback
Die Anzahl der geladenen Byte, die für die
Wiedergabe zur Verfügung stehen.
Media.bytesTotal
MediaDisplay,
MediaPlayback
Die Anzahl der Byte, die in die
Komponenteninstanz geladen werden sollen.
Media.contentPath
MediaDisplay,
MediaPlayback
Ein String mit dem relativen Pfad und dem
Dateinamen der zu streamenden und
wiederzugebenden Mediendatei.
Media.controllerPolicy
MediaController, Legt fest, ob die Steuerelemente in der
MediaPlayback Komponente während der Wiedergabe
ausgeblendet sind und nur angezeigt werden,
wenn ein Mouse-Over-Ereignis ausgelöst wird,
oder ob alle Steuerelemente ständig ein- bzw.
ausgeblendet sind.
Media.controlPlacement
MediaPlayback
Kapitel 4: Komponenten-Referenz
Beschreibung
Legt fest, wo sich die Steuerelemente für die
Komponente im Verhältnis zur Komponente
befinden.
Eigenschaft
Komponenten
Beschreibung
Media.cuePoints
MediaDisplay,
MediaPlayback
Ein Array mit Cue-Point-Objekten, die einer
bestimmten Komponenteninstanz zugewiesen
wurden.
Media.horizontal
MediaController Legt die Ausrichtung der Komponenteninstanz
fest.
Media.mediaType
MediaDisplay,
MediaPlayback
Legt den wiederzugebenden Medientyp fest.
Media.playheadTime
MediaDisplay,
MediaPlayback
Enthält die aktuelle Position des Abspielkopfes (in
Sekunden) für die Zeitleiste der
wiedergegebenen Mediendatei.
Media.playing
MediaDisplay,
MediaPlayback
Gibt einen Booleschen Wert zurück, der angibt,
ob eine bestimmte Komponenteninstanz eine
Mediendatei wiedergibt.
Media.preferredHeight
MediaDisplay,
MediaPlayback
Der Standardwert für die Höhe einer FLVMediendatei.
Media.preferredWidth
MediaDisplay,
MediaPlayback
Der Standardwert für die Breite einer FLVMediendatei.
Media.totalTime
MediaDisplay,
MediaPlayback
Eine Ganzzahl, die die Gesamtlänge der
Mediendatei angibt (in Sekunden).
Media.volume
MediaDisplay,
MediaPlayback
Eine Ganzzahl zwischen 0 (Minimum) und 100
(Maximum), die die Lautstärke angibt.
Übersicht: Ereignisse der Media-Klasse
Ereignis
Komponenten
Beschreibung
Media.change
MediaDisplay,
MediaPlayback
Ständige Broadcastübertragung, während die
Mediendatei wiedergegeben wird.
Media.click
MediaController, Broadcastübertragung, wenn der Benutzer auf
MediaPlayback die Schaltfläche Abspielen/Pause klickt.
Media.complete
MediaDisplay,
MediaPlayback
Benachrichtigung, dass der Abspielkopf das
Ende der Mediendatei erreicht hat.
Media.cuePoint
MediaDisplay,
MediaPlayback
Benachrichtigung, dass der Abspielkopf einen
bestimmten Cue-Point erreicht hat.
Media.playheadChange
MediaController, Broadcastübertragung durch die
MediaPlayback Komponenteninstanz, wenn der Benutzer den
Wiedergaberegler verschiebt oder auf die
Schaltfläche Zum Anfang oder Zum Ende
klickt.
Media.progress
MediaDisplay,
MediaPlayback
Media.volume
MediaController, Broadcastübertragung, wenn der Benutzer die
MediaPlayback Lautstärke ändert.
Wird kontinuierlich erzeugt, bis die Mediendatei
vollständig geladen ist.
Media-Komponenten (nur Flash Professional)
377
Media.activePlayControl
Anwendbar auf
MediaController
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.activePlayControl
Beschreibung
Eigenschaft; ein Boolescher Wert, der festlegt, in welchem Zustand sich die MediaControllerKomponente beim Laden zur Laufzeit befindet. Der Wert true bedeutet, dass sich die
MediaController-Komponente zur Laufzeit im Wiedergabezustand befindet. Der Wert false
zeigt an, dass sie sich zur Laufzeit im Pausezustand befindet. Verwenden Sie diese Eigenschaft in
Verbindung mit der Eigenschaft autoPlay, sodass sich zur Laufzeit beide entweder im Pauseoder im Wiedergabezustand befinden. Der Standardwert lautet true.
Beispiel
Im folgenden Beispiel befindet sich die Steuerung beim ersten Laden zur Laufzeit im
Pausezustand:
meinMedia.activePlayControl = false;
Siehe auch
Media.autoPlay
Media.addCuePoint()
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.addCuePoint(cuePointName, cuePointTime)
Parameter
cuePointName
Ein String, mit dem der Cue-Point benannt werden kann.
Eine Zahl, die angibt, wann ein cuePoint-Ereignis als Broadcast übertragen
wird (in Sekunden).
cuePointTime
378
Kapitel 4: Komponenten-Referenz
Rückgaben
Keine.
Beschreibung
Methode; fügt einer MediaPlayback- oder MediaDisplay-Komponenteninstanz ein Cue-PointObjekt hinzu. Wenn die Abspielkopfzeit einer Cue-Point-Zeit entspricht, wird ein cuePointEreignis per Broadcast übertragen.
Beispiel
Mit dem folgenden Code wird ein Cue-Point namens Homerun zu meinMedia bei
Zeit = 16 Sekunden hinzugefügt.
meinMedia.addCuePoint("Homerun", 16);
Siehe auch
Media.cuePoint, Media.cuePoints, Media.getCuePoint(), Media.removeAllCuePoints(),
Media.removeCuePoint()
Media.aspectRatio
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.aspectRatio
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob eine MediaDisplay- oder MediaPlayback-Instanz
ihr Bildseitenverhältnis während der Wiedergabe beibehält. Der Wert true bedeutet, dass das
Bildseitenverhältnis beibehalten wird; der Wert false bedeutet, dass das Bildseitenverhältnis
während der Wiedergabe geändert werden kann. Der Standardwert lautet true.
Beispiel
Im folgenden Beispiel wird festgelegt, dass das Bildseitenverhältnis während der Wiedergabe
geändert werden kann:
meinMedia.aspectRatio = false;
Media-Komponenten (nur Flash Professional)
379
Media.associateController()
Anwendbar auf
MediaDisplay
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.associateController(instanceName)
Parameter
instanceName
Ein String mit dem Instanznamen der zu verknüpfenden MediaController-
Komponente.
Rückgaben
Keine.
Beschreibung
Methode; verknüpft eine MediaDisplay-Komponenteninstanz mit einer gegebenen
MediaController-Instanz.
Wenn Sie mit der Methode Media.associateDisplay() eine MediaController-Instanz mit
einer MediaDisplay-Instanz verknüpft haben, ist es nicht erforderlich,
Media.associateController() zu verwenden.
Beispiel
Mit dem folgenden Code wird meinMedia mit meinController verknüpft:
meinMedia.associateController(meinController);
Siehe auch
Media.associateDisplay()
Media.associateDisplay()
Anwendbar auf
MediaController
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.associateDisplay(instanceName)
380
Kapitel 4: Komponenten-Referenz
Parameter
instanceName
Ein String mit dem Instanznamen der zu verknüpfenden MediaDisplay-
Komponente.
Rückgaben
Keine.
Beschreibung
Methode; verknüpft eine MediaController-Komponenteninstanz mit einer gegebenen
MediaDisplay-Instanz.
Wenn Sie mit der Methode Media.associateController() eine MediaDisplay-Instanz mit
einer MediaController-Instanz verknüpft haben, ist es nicht erforderlich,
Media.associateDisplay() zu verwenden.
Beispiel
Mit dem folgenden Code wird meinMedia mit meinDisplay verknüpft:
meinMedia.associateDisplay(meinDisplay);
Siehe auch
Media.associateController()
Media.autoPlay
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.autoPlay
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob die MediaPlayback- oder MediaDisplay-Instanz
sofort versucht, mit dem Zwischenspeichern und der Wiedergabe zu beginnen. Der Wert true
zeigt an, dass das Steuerelement zur Laufzeit mit dem Zwischenspeichern und der Wiedergabe
beginnt. Der Wert false zeigt an, dass das Steuerelement zur Laufzeit gestoppt ist. Diese
Eigenschaft ist abhängig von den Eigenschaften contentPath und mediaType. Falls
contentPath und mediaType nicht belegt sind, findet zur Laufzeit keine Wiedergabe statt. Der
Standardwert lautet true.
Beispiel
Im folgenden Beispiel wird das Steuerelement beim ersten Laden zur Laufzeit nicht gestartet:
meinMedia.autoPlay = false;
Media-Komponenten (nur Flash Professional)
381
Siehe auch
Media.contentPath, Media.mediaType
Media.autoSize
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.autoSize
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, wie die Größe des Medien anzeigenden Teils der
MediaDisplay- oder MediaPlayback-Komponente bestimmt wird.
Bei der MediaDisplay-Komponente verhält sich diese Eigenschaft wie folgt:
• Wenn Sie diese Eigenschaft mit true belegen, zeigt Flash die Mediendatei in der bevorzugten
•
Größe an, unabhängig von der Größe der Komponente. Sollte die MediaDisplay-Instanz also
nicht dieselbe Größe wie die Medien haben, erstrecken die Medien sich über die
Instanzbegrenzungen hinaus bzw. füllen diese nicht ganz aus.
Wenn Sie diese Eigenschaft mit false belegen, verwendet Flash soweit möglich die
Instanzgröße, wobei das Bildseitenverhältnis erhalten bleibt. Wenn der Wert sowohl für
Media.autoSize als auch für Media.aspectRatio false lautet, wird die exakte Größe der
Komponente verwendet.
Bei der MediaPlayback-Komponente verhält sich diese Eigenschaft wie folgt:
• Wenn Sie diese Eigenschaft mit true belegen, zeigt Flash die Mediendatei in der bevorzugten
•
Größe an, sofern der Wiedergabebereich nicht kleiner ist als die bevorzugte Größe. Wenn das
der Fall ist, verkleinert Flash das Medium, sodass es in die Instanz passt und das
Bildseitenverhältnis beibehalten wird. Falls die bevorzugte Größe kleiner ist als der
Medienbereich der Instanz, bleiben Teile des Medienbereichs ungenutzt.
Wenn Sie diese Eigenschaft mit false belegen, verwendet Flash soweit möglich die
Instanzgröße, wobei das Bildseitenverhältnis erhalten bleibt. Wenn sowohl Media.autoSize
als auch Media.aspectRatio mit false belegt sind, wird der Medienbereich der
Komponente ausgefüllt. Dieser Bereich ist definiert als der Bereich oberhalb der Steuerung (im
Standardlayout), mit einer 8 Pixel breiten Umrandung, die den Rand der Komponente
darstellt.
Der Standardwert lautet true.
382
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel erfolgt die Wiedergabe nicht entsprechend der Mediengröße:
meinMedia.autoSize = false;
Siehe auch
Media.aspectRatio
Media.backgroundStyle
Anwendbar auf
MediaController
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.backgroundStyle
Beschreibung
Eigenschaft; der Wert "default" gibt an, dass die MediaController-Instanz mit einem
Farbhintergrund versehen wird. Der Wert "none" bedeutet, dass kein Farbhintergrund verwendet
wird. Der Standardwert ist "default".
Dies ist keine Stileigenschaft und wird daher nicht durch die Stileinstellungen beeinflusst.
Beispiel
Im folgenden Beispiel wird festgelegt, dass die Steuerung nicht mit einem Farbhintergrund
versehen wird:
meinMedia.backgroundStyle = "none";
Media.bytesLoaded
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.bytesLoaded
Media-Komponenten (nur Flash Professional)
383
Beschreibung
Schreibgeschützte Eigenschaft; die Anzahl der bereits in die Komponente geladenen Byte, die für
die Wiedergabe verfügbar sind. Der Standardwert ist undefined.
Beispiel
Mit dem folgenden Code wird eine Variable namens PlaybackLoad erzeugt, die mit der Anzahl
der in der for-Schleife geladenen Byte belegt wird.
// Variable erstellen, in der die Anzahl der geladenen Byte abgelegt wird
var PlaybackLoad = meinMedia.bytesLoaded;
// Funktion ausführen, bis die Wiedergabebereitschaft erreicht ist
for (PlaybackLoad < 150) {
someFunction();
}
Media.bytesTotal
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.bytesTotal
Beschreibung
Eigenschaft; die Anzahl der Byte, die in die MediaPlayback- oder MediaDisplay-Komponente
geladen werden sollen. Der Standardwert ist undefined.
Beispiel
Im folgenden Beispiel wird dem Benutzer die Größe der zu streamenden Mediendatei mitgeteilt:
meinTextField.text = meinMedia.bytesTotal;
Media.change
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
384
Kapitel 4: Komponenten-Referenz
Verwendung
listenerObject = new Object();
listenerObject.change = function(eventObject){
// Hier Code eingeben
}
meinMedia.addEventListener("change", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung durch die MediaDisplay- und MediaPlayback-Komponenten
während der Medienwiedergabe. Der bereits beendete Anteil in Prozent kann von der
Komponenteninstanz abgefragt werden. Siehe dazu auch folgendes Beispiel.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Media.change-Ereignisses besitzt zwei zusätzliche
Eigenschaften:
Eine Referenz auf das übertragende Objekt.
target
type
Der String "change", der den Ereignistyp angibt.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird mit Hilfe eines Objekt-Listeners die Position des Abspielkopfes
(Media.playheadTime) ermittelt, anhand der der bereits beendete Anteil berechnet werden
kann:
var meinPlayerListener = new Object();
meinPlayerListener.change = function(eventObject){
var meinePosition = meinPlayer.playheadTime;
var meinePercentPosition = (meinePosition/totalTime);
}
meinPlayer.addEventListener("change", meinPlayerListener);
Siehe auch
Media.playing, Media.pause()
Media.click
Anwendbar auf
MediaController, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Media-Komponenten (nur Flash Professional)
385
Verwendung
var meinMediaListener = new Object()
meinMediaListener.click = function(){
// Hier Code eingeben
}
meinPlayer.addEventListener("click", meinMediaListener);
Beschreibung
Ereignis; Broadcastübertragung, wenn der Benutzer auf die Schaltfläche Abspielen/Pause klickt.
Anhand des Detailfeldes kann ermittelt werden, auf welche Schaltfläche geklickt wurde. Das
Media.click-Ereignisobjekt besitzt folgende Eigenschaften:
detail
Der String "pause" oder "play".
target
Eine Referenz auf die MediaController- oder MediaPlayback-Komponenteninstanz.
type
Der String "click".
Beispiel
Im folgenden Beispiel wird ein Popupfenster geöffnet, wenn der Benutzer auf Abspielen klickt:
var meinMediaListener = new Object()
meinMediaListener.click = function(){
PopUpManager.createPopup(_root, mx.containers.Window, false, {contentPath:
movieSale});
}
meinMedia.addEventListener("click", meinMediaListener);
Media.complete
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.complete = function(eventObject){
// Hier Code eingeben
}
meinMedia.addEventListener("complete", listenerObject)
Beschreibung
Ereignis; Benachrichtigung, dass der Abspielkopf das Ende der Mediendatei erreicht hat. Das
Media.complete-Ereignisobjekt besitzt folgende Eigenschaften:
target
type
386
Eine Referenz auf die MediaDisplay- oder MediaPlayback-Komponenteninstanz.
Der String "complete".
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird mit Hilfe eines Objekt-Listeners ermittelt, wann die
Medienwiedergabe beendet ist:
var meinListener = new Object();
meinListener.complete = function(eventObject) {
trace("Medienwiedergabe beendet");
};
meinMedia.addEventListener("complete", meinListener);
Media.contentPath
Anwendbar auf
MediaController
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.contentPath
Beschreibung
Eigenschaft; ein String mit dem relativen Pfad und dem Dateinamen der zu streamenden bzw.
wiederzugebenden Mediendatei. Die Methode Media.setMedia() ist die einzige unterstützte
Möglichkeit, wie diese Eigenschaft mit ActionScript gesetzt werden kann. Der Standardwert ist
undefined.
Beispiel
Im folgenden Beispiel wird der Name des wiedergegebenen Films in einem Textfeld angegeben:
meinTextField.text = meinMedia.contentPath;
Siehe auch
Media.setMedia()
Media.controllerPolicy
Anwendbar auf
MediaController, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.controllerPolicy
Media-Komponenten (nur Flash Professional)
387
Beschreibung
Eigenschaft; legt fest, ob die MediaController-Komponente (bzw. die ControllerUnterkomponente in der MediaPlayback-Komponente) bei der Instanziierung ausgeblendet ist
und nur angezeigt wird, wenn der Benutzer mit dem Mauspfeil über die minimierte Steuerung
fährt.
Diese Eigenschaft kann mit folgenden Werten belegt werden:
•
•
•
bedeutet, dass die Steuerung ständig maximiert ist.
"off" bedeutet, dass die Steuerung ständig minimiert ist.
"auto" bedeutet, dass die Steuerung so lange minimiert ist, bis der Benutzer mit dem
Mauspfeil über den Kollisionsbereich fährt. Der Kollisionsbereich entspricht dem Bereich, in
dem die minimierte Steuerung dargestellt wird. Die Steuerung bleibt so lange maximiert, bis
der Benutzer den Mauspfeil aus dem Kollisionsbereich zieht.
"on"
Hinweis: Der Kollisionsbereich wird zusammen mit der Steuerung maximiert bzw. minimiert.
Beispiel
Im folgenden Beispiel bleibt die Steuerung ständig geöffnet:
meinMedia.controllerPolicy = "on";
Media.controlPlacement
Anwendbar auf
MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.controlPlacement
Beschreibung
Eigenschaft; legt fest, wo sich der Steuerungsbereich der MediaPlayback-Komponente im
Verhältnis zur Anzeige befindet. Mögliche Belegungen sind "top", "bottom", "left" und
"right". Der Standardwert ist "bottom".
Beispiel
Im folgenden Beispiel befindet sich der Steuerungsbereich der MediaPlayback-Komponente auf
der rechten Seite:
meinMedia.controlPlacement = "right";
388
Kapitel 4: Komponenten-Referenz
Media.cuePoint
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.cuePoint = function(eventObject){
// Hier Code eingeben
}
meinMedia.addEventListener("cuePoint", listenerObject)
Beschreibung
Ereignis; Benachrichtigung, dass der Abspielkopf den Cue-Point erreicht hat. Das
Media.cuePoint-Ereignisobjekt besitzt folgende Eigenschaften:
name
Ein String mit dem Namen des Cue-Points.
time
Eine Zahl, die angibt, wann der Cue-Point erreicht wurde (in Bildern oder Sekunden).
Eine Referenz auf das Cue-Point-Objekt.
target
type
Der String "cuePoint".
Beispiel
Im folgenden Beispiel wird mit Hilfe eines Objekt-Listeners ermittelt, wann ein Cue-Point
erreicht ist:
var meinCuePointListener = new Object();
meinCuePointListener.cuePoint = function(eventObject){
trace("gehört " + eventObject.type + ", " + eventObject.target);
}
meinPlayback.addEventListener("cuePoint", meinCuePointListener);
Siehe auch
Media.addCuePoint(), Media.cuePoints, Media.getCuePoint()
Media.cuePoints
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Media-Komponenten (nur Flash Professional)
389
Verwendung
meinMedia.cuePoints[N]
Beschreibung
Eigenschaft; ein Array mit Cue-Point-Objekten, die einer MediaPlayback- oder MediaDisplayKomponenteninstanz zugewiesen wurden. Im Array kann jedes Cue-Point-Objekt einen Namen,
eine Zeitangabe in Sekunden oder Bildern und eine Player-Eigenschaft besitzen (den
Instanznamen der Komponente, mit der es verknüpft ist). Der Standardwert ist [] (leeres Array).
Beispiel
Im folgenden Beispiel wird der dritte Cue-Point gelöscht, wenn eine Aktionsvorschau
(actionPreview) wiedergegeben wird:
if(meineVariable == actionPreview) {
meinMedia.removeCuePoint(meinMedia.cuePoints[2]);
}
Siehe auch
Media.addCuePoint(), Media.getCuePoint(), Media.removeCuePoint()
Media.displayFull()
Anwendbar auf
MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.displayFull()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; setzt die MediaPlayback-Komponenteninstanz in den Vollbildmodus. Das heißt, die
Komponente wird so vergrößert, dass sie die ganze Bühne ausfüllt. Um die Komponente wieder
in die normale Größe umzuwandeln, verwenden Sie die Methode Media.displayNormal().
390
Kapitel 4: Komponenten-Referenz
Beispiel
Mit dem folgenden Code wird erzwungen, dass die Komponente vergrößert wird, bis sie die
gesamte Bühne ausfüllt:
meinMedia.displayFull();
Siehe auch
Media.displayNormal()
Media.displayNormal()
Anwendbar auf
MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.displayNormal()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; setzt die MediaPlayback-Instanz auf die normale Größe zurück, nachdem die Methode
Media.displayFull() verwendet wurde.
Beispiel
Mit dem folgenden Code wird eine MediaPlayback-Komponente auf die ursprüngliche Größe
zurückgesetzt:
meinMedia.displayNormal();
Siehe auch
Media.displayFull()
Media-Komponenten (nur Flash Professional)
391
Media.getCuePoint()
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.getCuePoint(cuePointName)
Parameter
Keine.
Rückgaben
cuePointName
Der String, der bei der Verwendung von Media.addCuePoint() angegeben
wurde.
Beschreibung
Methode; gibt ein Cue-Point-Objekt anhand des Cue-Point-Namens zurück.
Beispiel
Mit dem folgenden Code wird ein Cue-Point namens meinCuePointName abgefragt.
meinMedia.removeCuePoint(meinMedia.getCuePoint("meinCuePointName"));
Siehe auch
Media.addCuePoint(), Media.cuePoint, Media.cuePoints, Media.removeCuePoint()
Media.horizontal
Anwendbar auf
MediaController
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.horizontal
392
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; legt fest, ob die MediaController-Komponente vertikal oder horizontal angezeigt
wird. Der Wert true bedeutet, dass die Komponente horizontal ausgerichtet wird; der Wert
false zeigt eine vertikale Ausrichtung an. Bei der Einstellung false bewegen sich der
Abspielkopf und die Ladefortschrittsanzeige von unten nach oben. Der Standardwert lautet true.
Beispiel
Im folgenden Beispiel wird die MediaController-Komponente vertikal ausgerichtet:
meinMedia.horizontal = false;
Media.mediaType
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.mediaType
Beschreibung
Eigenschaft; enthält den Wert des wiederzugebenden Medientyps. Die möglichen Werte sind die
Formate FLV und MP3. Der Standardwert ist "FLV". Siehe „Dateien im Format Macromedia
Flash-Video (FLV) importieren“ in der Hilfe „Flash verwenden“.
Beispiel
Im folgenden Beispiel wird ermittelt, welcher Medientyp momentan wiedergegeben wird:
var currentMedia = meinMedia.mediaType;
Siehe auch
Media.setMedia()
Media.pause()
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Media-Komponenten (nur Flash Professional)
393
Verwendung
meinMedia.pause()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; setzt den Abspielkopf an der aktuellen Position in den Pausezustand.
Beispiel
Mit dem folgenden Code wird die Wiedergabe unterbrochen.
meinMedia.pause();
Media.play()
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.play(startingPoint)
Parameter
startingPoint Eine nicht-negative Ganzzahl, die den Startpunkt (in Sekunden) angibt, an
dem die Medienwiedergabe beginnen soll.
Rückgaben
Keine.
Beschreibung
Methode; gibt die mit der Komponenteninstanz verknüpfte Mediendatei ab dem festgelegten
Startpunkt wieder. Der Standardwert ist der aktuelle Wert von playheadTime.
Beispiel
Mit dem folgenden Code wird festgelegt, dass die Wiedergabe der Media-Komponente bei
120 Sekunden beginnen soll:
meinMedia.play(120);
Siehe auch
Media.pause()
394
Kapitel 4: Komponenten-Referenz
Media.playheadChange
Anwendbar auf
MediaController, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.playheadChange = function(eventObject){
// Hier Code eingeben
}
meinMedia.addEventListener("playheadChange", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung durch die MediaController- oder MediaPlayback-Komponente,
wenn der Benutzer den Wiedergaberegler verschiebt oder auf die Schaltfläche Zum Anfang oder
Zum Ende klickt. Das Media.playheadChange-Ereignisobjekt besitzt folgende Eigenschaften:
detail
Eine Zahl, die angibt, zu wie viel Prozent die Mediendatei bereits wiedergegeben
wurde.
type
Der String "playheadChange".
Beispiel
Im folgenden Beispiel wird diese Prozentzahl an das Ausgabefenster gesendet, sobald der Benutzer
den Abspielkopf nicht mehr verschiebt:
var controlListen = new Object();
controlListen.playheadChange = function(eventObject){
trace(eventObject.detail);
}
meinMedia.addEventListener("playheadChange", controlListen);
Media.playheadTime
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.playheadTime
Media-Komponenten (nur Flash Professional)
395
Beschreibung
Eigenschaft; enthält die aktuelle Position des Abspielkopfes (in Sekunden) für die Zeitleiste der
wiedergegebenen Mediendatei. Der Standardwert ist die Position des Abspielkopfes.
Beispiel
Im folgenden Beispiel wird eine Variable mit der Position des Abspielkopfes belegt (Angabe in
Sekunden):
var meinPlayhead = meinMedia.playheadTime;
Media.playing
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.playing
Beschreibung
Schreibgeschützte Eigenschaft; gibt einen Booleschen Wert zurück, der angibt, ob die
Mediendatei wiedergegeben wird. Der Wert true zeigt an, dass die Mediendatei wiedergegeben
wird; false bedeutet, dass die Medienwiedergabe durch den Benutzer unterbrochen wurde
(Pause).
Beispiel
Mit dem folgenden Code wird ermittelt, ob die Mediendatei wiedergegeben wird oder ob die
Wiedergabe unterbrochen wurde:
if(meinMedia.playing == true){
some function;
}
Siehe auch
Media.change
Media.preferredHeight
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
396
Kapitel 4: Komponenten-Referenz
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.preferredHeight
Beschreibung
Eigenschaft; wird mit der Standardhöhe der FLV-Datei belegt. Diese Eigenschaft betrifft nur
FLV-Mediendateien, da die Höhe bei MP3-Dateien festgelegt ist. Mit dieser Eigenschaft können
die Höhen- und Breitenparameter gesetzt werden (sowie einige Ränder für die Komponente
selbst). Wenn keine FLV-Mediendatei ausgewählt ist, ist der Standardwert undefined
(undefiniert).
Beispiel
Im folgenden Beispiel wird die Größe einer MediaPlayback-Instanz entsprechend der
wiedergegebenen Instanz festgelegt. Der für die Komponenteninstanz erforderliche Rand (in
Pixel) wird dabei berücksichtigt:
if(meinPlayback.contentPath = !undefined){
var mediaHeight = meinPlayback.preferredHeight;
var mediaWidth = meinPlayback.preferredWidth;
meinPlayback.setSize((mediaWidth + 20), (mediaHeight + 70));
}
Media.preferredWidth
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.preferredWidth
Beschreibung
Eigenschaft; wird mit der Standardbreite der FLV-Datei belegt. Der Standardwert ist undefined.
Beispiel
Im folgenden Beispiel wird die Variable mediaWidth mit der gewünschten Breite belegt:
var mediaWidth = meinMedia.preferredWidth;
Media-Komponenten (nur Flash Professional)
397
Media.progress
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.progress = function(eventObject){
// Hier Code eingeben
}
meinMedia.addEventListener("progress", listenerObject)
Beschreibung
Ereignis; wird kontinuierlich erzeugt, bis die Mediendatei vollständig geladen ist. Das
Media.progress-Ereignisobjekt besitzt folgende Eigenschaften:
Eine Referenz auf die MediaDisplay- oder MediaPlayback-Komponenteninstanz.
target
type
Der String "progress".
Beispiel
Im folgenden Beispiel wird auf Fortschritt gewartet:
var meinProgressListener = new Object();
meinProgressListener.progress = function(){
// lightMovieClip blinkt, solange ein Fortschritt verzeichnet wird
var lightVisible = lightMovieClip.visible;
lightMovieClip.visible = !lightVisible;
}
Media.removeAllCuePoints()
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.removeAllCuePoints()
Parameter
Keine.
398
Kapitel 4: Komponenten-Referenz
Rückgaben
Keine.
Beschreibung
Methode; löscht alle Cue-Point-Objekte, die mit einer Komponenteninstanz verknüpft sind.
Beispiel
Mit dem folgenden Code werden alle Cue-Point-Objekte gelöscht:
meinMedia.removeAllCuePoints();
Siehe auch
Media.addCuePoint(), Media.cuePoints, Media.removeCuePoint()
Media.removeCuePoint()
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.removeCuePoint(cuePoint)
Parameter
Eine Referenz auf ein Cue-Point-Objekt, das zuvor mit Media.addCuePoint()
zugewiesen wurde.
cuePoint
Rückgaben
Keine.
Beschreibung
Methode; löscht einen bestimmten Cue-Point, der mit einer Komponenteninstanz verknüpft ist.
Beispiel
Mit dem folgenden Code wird ein Cue-Point namens meinCuePoint gelöscht:
meinMedia.removeCuePoint(getCuePoint("meinCuePoint"));
Siehe auch
Media.addCuePoint(), Media.cuePoints, Media.removeAllCuePoints()
Media-Komponenten (nur Flash Professional)
399
Media.setMedia()
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.setMedia(contentPath, mediaType)
Parameter
contentPath
Ein String mit dem Pfad und dem Dateinamen der wiederzugebenden
Mediendatei.
mediaType Ein String, mit dem der Medientyp festgelegt wird (FLV oder MP3). Dieser
Parameter ist optional.
Rückgaben
Keine.
Beschreibung
Methode; legt den Medientyp und den Pfad zum angegebenen Medientyp mit einem URLArgument fest. Der Standardwert für contentPath ist undefined (undefiniert).
Diese Methode ist die einzige unterstützte Möglichkeit, um für die MediaPlayback- und
MediaDisplay-Komponenten den Pfad zum Inhalt und den Medientyp festzulegen.
Beispiel
Mit dem folgenden Code wird für eine Komponenteninstanz eine neue Mediendatei angegeben,
die wiedergegeben werden soll.
meinMedia.setMedia("http://www.RogerMoore.com/moonraker.flv", "FLV");
Media.stop()
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.stop()
400
Kapitel 4: Komponenten-Referenz
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; stoppt den Abspielkopf und verschiebt ihn zur Position 0, d. h., an den Anfang der
Mediendatei.
Beispiel
Mit dem folgenden Code wird der Abspielkopf gestoppt und zu Zeit = 0 verschoben.
meinMedia.stop()
Media.totalTime
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.totalTime
Beschreibung
Eigenschaft; die Gesamtlänge der Mediendatei (in Sekunden). Da beim FLV-Dateiformat die
Wiedergabezeit der Media-Komponente erst übermittelt wird, wenn der Ladevorgang
abgeschlossen ist, muss Media.totalTime manuell eingegeben werden, damit der
Wiedergaberegler die tatsächliche Wiedergabezeit der Mediendatei korrekt anzeigt. Der
Standardwert für MP3-Dateien ist die Wiedergabezeit der Mediendatei. Bei FLV-Dateien ist der
Standardwert undefined (undefiniert).
Diese Eigenschaft kann für MP3-Dateien nicht belegt werden, da die entsprechende Information
im Sound-Objekt enthalten ist.
Beispiel
Im folgenden Beispiel wird für die FLV-Datei die Wiedergabezeit in Sekunden angegeben:
meinMedia.totalTime = 151;
Media-Komponenten (nur Flash Professional)
401
Media.volume
Anwendbar auf
MediaDisplay, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
meinMedia.volume
Beschreibung
Eigenschaft; speichert die Lautstärkeeinstellung, eine Ganzzahl zwischen 0 und 100. Der
Standardwert für diese Eigenschaft ist 75.
Beispiel
Im folgenden Beispiel wird für die Medienwiedergabe die maximale Lautstärke festgelegt:
meinMedia.volume = 100;
Siehe auch
Media.volume, Media.pause()
Media.volume
Anwendbar auf
MediaController, MediaPlayback
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.volume = function(eventObject){
// Hier Code eingeben
}
meinMedia.addEventListener("volume", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn die Lautstärkeeinstellung durch den Benutzer verändert
wird. Das Media.volume-Ereignisobjekt besitzt folgende Eigenschaften:
detail
type
402
Eine Ganzzahl zwischen 0 und 100, die die Lautstärke angibt.
Der String "volume".
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird der Benutzer informiert, dass die Lautstärke geändert wird:
var meinVolListener = new Object();
meinVolListener.volume = function(){
meinTextField.text = "Lautstärke geändert!";
}
meinMedia.addEventListener("volume", meinVolListener);
Siehe auch
Media.volume
Menu-Komponente (nur Flash Professional)
Mit der Menu-Komponente kann der Benutzer ein Element aus einem Popupmenü auswählen,
ähnlich wie im Datei- oder Bearbeiten-Menü in vielen Softwareprogrammen.
In einer Anwendung wird ein Menü normalerweise geöffnet, wenn der Benutzer mit der Maus
über einen schaltflächenähnlichen Menüaktivator fährt oder auf diesen klickt. Sie können auch
mit einem Skript festlegen, dass eine Menu-Komponente geöffnet wird, wenn der Benutzer eine
bestimmte Taste drückt.
Menu-Komponenten werden immer dynamisch zur Laufzeit erstellt. Fügen Sie die Komponente
dem Dokument aus dem Bedienfeld Komponenten hinzu, und löschen Sie sie, um sie der
Bibliothek hinzuzufügen. Erstellen Sie anschließend mit dem folgenden ActionScript-Code ein
Menü:
var meinMenu = mx.controls.Menu.createMenu(parent, menuDataProvider);
Verwenden Sie folgenden Code, um ein Menü in einer Anwendung zu öffnen:
meinMenu.show(x, y);
Unmittelbar bevor das Menü dargestellt wird, wird ein menuShow-Ereignis per Broadcast an alle
Listener der Menu-Instanz übertragen, sodass Sie den Zustand der Menüelemente aktualisieren
können. Ähnlich wird unmittelbar nach dem Ausblenden einer Menu-Instanz ein menuHideEreignis per Broadcast übertragen.
Die Elemente in einem Menü werden mittels XML beschrieben. Weitere Informationen finden
Sie unter „Mit Menu-Komponenten arbeiten: Ansicht und Daten“ auf Seite 405.
Es ist nicht möglich, die Menu-Komponente für Bildschirmlesegeräte zugänglich zu machen.
Mit der Menu-Komponente kommunizieren (nur Flash Professional)
Sie können mit einer Menu-Komponente mittels Maus und Tastatur kommunizieren.
Nachdem ein Menü geöffnet wurde, bleibt es so lange sichtbar, bis es entweder durch ein Skript
geschlossen wird oder bis der Benutzer mit der Maus auf einen Punkt außerhalb des Menüs oder
auf ein aktiviertes Element klickt.
Menu-Komponente (nur Flash Professional)
403
Durch Klicken wird ein Menüelement ausgewählt, dies gilt jedoch nicht für folgende
Menüelementtypen:
• Deaktivierte Elemente und Trennzeichen Rollover und Klicks haben keine Wirkung (das
Menü bleibt sichtbar).
• Anker für ein Untermenü Rollover aktivieren das Untermenü; Mausklicks haben keine
Wirkung; wenn der Mauszeiger auf ein Element außerhalb des Untermenüs bewegt wird, wird
das Untermenü geschlossen.
Wenn ein Element ausgewählt wird, wird ein Menu.change-Ereignis an alle Listener des Menüs
gesendet, das Menü wird ausgeblendet und je nach Elementtyp werden folgende Aktionen
ausgeführt:
•
•
check
radio
Das Attribut selected des Elements wird umgeschaltet.
Das Element wird in seiner Optionsfeldgruppe zur aktuellen Auswahl.
Das Bewegen der Maus löst Menu.rollOut- und Menu.rollOver-Ereignisse aus.
Das Drücken der Maustaste außerhalb des Menüs schließt das Menü und löst ein
Menu.menuHide-Ereignis aus.
Das Loslassen der Maustaste auf einem aktivierten Element hat folgende Auswirkungen auf die
verschiedenen Elementtypen:
•
•
•
Das Attribut selected des Elements wird umgeschaltet.
radio Das Attribut selected dieses Elements wird mit true belegt, und das Attribut
selected des zuvor ausgewählten Elements in dieser Optionsfeldgruppe wird mit false
belegt. Die Eigenschaft selection des entsprechenden Optionsfeldgruppen-Objekts wird mit
einem Verweis auf das ausgewählte Menüelement belegt.
undefined (undefiniert) und übergeordnete Elemente in einem hierarchischen Menü Die
Sichtbarkeit des hierarchischen Menüs wird aktiviert bzw. deaktiviert.
check
Wenn eine Menu-Instanz den Fokus besitzt (durch Klicken oder durch Verwenden der
Tabulatortaste), können Sie sie mit folgenden Tasten steuern:
Taste
Beschreibung
Nach-unten-Taste Verschiebt die Auswahl in den Menüzeilen nach unten bzw. nach oben. Wenn
Nach-oben-Taste die unterste (bzw. oberste) Zeile erreicht wurde, springt die Auswahl wieder zur
obersten (bzw. untersten) Zeile.
Nach-rechts-Taste Öffnet ein Untermenü oder verschiebt die Auswahl zum nächsten Menü in einer
Menüleiste (sofern eine Menüleiste vorhanden ist).
Nach-links-Taste
Schließt ein Untermenü und gibt den Fokus wieder an das übergeordnete
Menü zurück (sofern ein übergeordnetes Menü vorhanden ist) oder verschiebt
die Auswahl zum vorhergehenden Menü in der Menüleiste (sofern eine
Menüleiste vorhanden ist).
Eingabetaste
Öffnet ein Untermenü bzw. entspricht der gleichen Funktion wie Drücken und
Loslassen der Maustaste in einer Zeile, wenn kein Untermenü vorhanden ist.
Hinweis: Ein geöffnetes Menü können Sie durch Drücken der Tabulatortaste wieder verlassen.
Treffen Sie eine Auswahl, oder blenden Sie das Menü durch Drücken der Taste <Esc> wieder aus.
404
Kapitel 4: Komponenten-Referenz
Menu-Komponente verwenden (nur Flash Professional)
Sie können mit der Menu-Komponente Menüs mit einzeln auswählbaren Elementen erstellen,
ähnlich wie die Datei- und Bearbeiten-Menüs in den meisten Programmen. Außerdem können
Sie mit der Menu-Komponente kontextsensitive Menüs erstellen, die angezeigt werden, wenn der
Benutzer auf einen Hotspotbereich klickt oder eine Modifizierungstaste drückt. Verwenden Sie
die Menu-Komponente zusammen mit der MenuBar-Komponente, um eine horizontale
Menüleiste mit Menüs zu erstellen, die unter dem jeweiligen Element in der Menüleiste angezeigt
werden.
Ähnlich wie bei standardmäßigen Desktopmenüs unterstützt die Menu-Komponente
Menüelemente, deren Funktionen folgenden allgemeinen Kategorien zugeordnet werden können:
Diese Elemente lösen Ereignisse aus; erstellen Sie Code, um diese
Ereignisse zu verarbeiten.
Befehlsaktivatoren
Untermenüanker
Diese Elemente sind Anker, die Untermenüs öffnen.
Optionsschaltflächen Diese Elemente werden in Gruppen verwendet, wobei immer nur eines
der Elemente in einer Gruppe ausgewählt werden kann.
Kontrollkästchen-Elemente
false).
Diese Elemente entsprechen einem Booleschen Wert (true oder
Bei diesen Elementen handelt es sich um einfache horizontale Linien, mit denen
die Elemente in einem Menü optisch in verschiedene Gruppen gegliedert werden.
Trennzeichen
Mit Menu-Komponenten arbeiten: Ansicht und Daten
Im Prinzip besteht die Menu-Komponente aus einem Datenmodell und einer Ansicht, in der die
Daten dargestellt werden. Die Menu-Klasse ist die Ansicht und enthält die visuellen
Konfigurationsmethoden. Die MenuDataProvider-Klasse fügt dem globalen XMLPrototypobjekt Methoden hinzu (ähnlich wie die DataProvider-Klasse beim Array-Objekt); mit
diesen Methoden können Sie extern Datenprovider erstellen und sie mehreren Menu-Instanzen
hinzufügen. Der Datenprovider überträgt sämtliche Änderungen per Broadcast an alle
zugehörigen Client-Ansichten. (Weitere Informationen finden Sie unter „MenuDataProviderKlasse“ auf Seite 429.)
Eine Menu-Instanz ist eine hierarchische Sammlung von XML-Elementen, die einzelnen
Menüelementen entsprechen. Die Attribute definieren das Verhalten und die Darstellung der
entsprechenden Menüelemente auf dem Bildschirm. Die Sammlung kann leicht aus und in XML
übersetzt werden; mit XML werden Menüs (menu-Tag) und Elemente (menuitem-Tag)
beschrieben. Die integrierte ActionScript-XML-Klasse ist die Grundlage für das Modell, das der
Menu-Komponente zugrunde liegt.
Ein einfaches Menü mit zwei Elementen kann in XML mit zwei menuitem-Unterelementen
beschrieben werden:
<menu>
<menuitem label="Up" />
<menuitem label="Down" />
</menu>
Hinweis: Die Tag-Namen der XML-Knoten (menu und menuitem) sind dabei unwichtig; die Attribute
und ihre verschachtelten Beziehungen werden im Menü verwendet.
Menu-Komponente (nur Flash Professional)
405
Hierarchische Menüs
Um hierarchische Menüs zu erstellen, betten Sie XML-Elemente wie folgt in einem
übergeordneten XML-Element ein:
<menu>
<menuitem label="MenuItem A" >
<menuitem label="SubMenuItem
<menuitem label="SubMenuItem
</menuitem>
<menuitem label="MenuItem B" >
<menuitem label="SubMenuItem
<menuitem label="SubMenuItem
</menuitem>
</menu>
1-A" />
2-A" />
1-B" />
2-B" />
Hinweis: Dadurch wird das übergeordnete Menüelement in einen Popupmenü-Anker umgewandelt;
es werden also keine Ereignisse erzeugt, wenn es ausgewählt wird.
XML-Attribute von Menüelementen
Die Attribute eines XML-Menüelements legen fest, was angezeigt wird, wie sich das
Menüelement verhält und wie es ActionScript zur Verfügung gestellt wird. In der folgenden
Tabelle sind die Attribute eines XML-Menüelements beschrieben:
Attributname
Typ
Standard
Beschreibung
label
String
undefined
Der Text, der angezeigt wird, um ein Menüelement
darzustellen. Dieses Attribut ist für alle
Elementtypen erforderlich (ausgenommen
Trennzeichen).
type
separator,
check, radio,
normal oder
undefined
Der Typ des Menüelements: separator
(Trennzeichen), check box (Kontrollkästchen),
radio button (Optionsschaltfläche) oder normal
(Befehls- oder Untermenüaktivator). Falls dieses
Attribut nicht existiert, ist der Standardwert normal.
undefined
406
icon
String
undefined
Der Verknüpfungsbezeichner einer
Grafikressource. Dieses Attribut ist nicht
erforderlich. Dieses Attribut ist nicht verfügbar für
die Typen check, radio und separator.
instanceName
String
undefined
Ein Bezeichner, mit dem Sie die MenüelementInstanz aus der Stammmenü-Instanz referenzieren
können. Ein Menüelement namens yellow kann
beispielsweise als meinMenu.yellow referenziert
werden. Dieses Attribut ist nicht erforderlich.
groupName
String
undefined
Ein Bezeichner, mit dem Sie verschiedene
Optionsschaltflächen-Elemente in einer
Optionsfeldgruppe verknüpfen können, und mit
dem Sie den Zustand einer Optionsfeldgruppe aus
der Stammmenü-Instanz bereitstellen können. Eine
Optionsfeldgruppe namens colors kann
beispielsweise als meinMenu.colors referenziert
werden. Dieses Attribut ist nur für den Typ radio
erforderlich.
Kapitel 4: Komponenten-Referenz
Attributname
selected
Typ
Standard
Beschreibung
false, true
false
Ein Boolescher Wert, der angibt, ob ein check- oder
radio-Element aktiviert (true) oder deaktiviert
(false) ist. Dieses Attribut ist nicht erforderlich.
true
Ein Boolescher Wert, der angibt, ob dieses
Menüelement ausgewählt werden kann (true) oder
nicht (false). Dieses Attribut ist nicht erforderlich.
oder
false oder
true (ein
String oder
Boolescher
Wert)
enabled
false, true
(aktiviert) oder
false oder
true (ein
String oder
Boolescher
Wert)
Menüelementtypen
Es gibt vier Arten von Menüelementen, angegeben im Attribut type:
<menu>
<menuitem
<menuitem
<menuitem
<menuitem
>
</menu>
label="Normal Item" />
type="separator" />
label="Checkbox Item" type="check" instanceName="check_1"/>
label="RadioButton Item" type="radio" groupName="radioGroup_1" /
Normale Menüelemente
Das Menüelement Normal Item besitzt kein Attribut type, d. h., das Attribut type hat den
Standardwert normal. Normale Elemente können Befehlsaktivatoren oder Untermenüaktivatoren
sein, abhängig davon, ob sie verschachtelte Unterelemente aufweisen.
Trennzeichen-Menüelemente
Menüelemente, deren type-Attribut auf separator gesetzt ist, dienen in einem Menü als visuelle
Trennungen. Mit folgendem XML-Code werden die drei Menüelemente Top (Oben), Middle
(Mitte) und Bottom (Unten) erstellt, wobei dazwischen jeweils ein Trennzeichen vorhanden ist:
<menu>
<menuitem
<menuitem
<menuitem
<menuitem
<menuitem
</menu>
label="Top" />
type="separator" />
label="Middle" />
type="separator" />
label="Bottom" />
Alle Trennzeichenelemente sind deaktiviert. Wenn Sie auf ein Trennzeichenelement klicken oder
den Mauszeiger darüber ziehen, has dies keinen Effekt.
Menu-Komponente (nur Flash Professional)
407
Kontrollkästchen-Menüelemente
Menüelemente, deren type-Attribut auf check gesetzt ist, agieren innerhalb des Menüs als
Kontrollkästchenelemente. Ist das Attribut selected auf true eingestellt, wird neben der
Beschriftung des Menüelements ein Häkchen angezeigt. Bei Auswahl eines
Kontrollkästchenelements wird sein Status automatisch umgeschaltet, und es erfolgt eine
Broadcastübertragung eines change-Ereignisses an alle Listener im Stammmenü. Im folgenden
Beispiel werden drei Kontrollkästchen-Menüelemente definiert:
<menu>
<menuitem label="Apples" type="check" instanceName="buyApples"
selected="true" />
<menuitem label="Oranges" type="check" instanceName="buyOranges"
selected="false" />
<menuitem label="Bananas" type="check" instanceName="buyBananas"
selected="false" />
</menu>
Über die Instanznamen in ActionScript können Sie direkt vom Menü selbst auf die
Menüelemente zugreifen, wie im folgenden Beispiel gezeigt wird:
meinMenu.setMenuItemSelected(meinMenu.buyapples, true);
meinMenu.setMenuItemSelected(meinMenu.buyoranges, false);
Hinweis: Das selected-Attribut sollte nur mit Hilfe der setMenuItemSelected(item, b)-Methode
modifiziert werden. Sie können das selected-Attribut direkt untersuchen, es gibt jedoch einen
Stringwert von true oder false zurück.
Optionsfeld-Menüelemente
Menüelemente, deren type-Attribut auf radio gesetzt ist, können gruppiert werden, sodass
jeweils nur eines der Elemente ausgewählt werden kann. Eine Optionsfeldgruppe wird erstellt,
indem Sie den Menüelementen denselben Wert für ihr groupName-Attribut zuweisen, wie im
folgenden Beispiel gezeigt wird:
<menu>
<menuitem label="Center" type="radio"
instanceName="center_item"/>
<menuitem type="separator" />
<menuitem label="Top"
type="radio"
<menuitem label="Bottom" type="radio"
<menuitem label="Right" type="radio"
<menuitem label="Left"
type="radio"
</menu>
groupName="alignment_group"
groupName="alignment_group"
groupName="alignment_group"
groupName="alignment_group"
groupName="alignment_group"
/>
/>
/>
/>
Wenn der Benutzer eines dieser Elemente auswählt, ändert sich die aktuelle Auswahl automatisch,
und ein change-Ereignis wird per Broadcast an alle Listener im Stammmenü übertragen. Das
aktuell ausgewählte Element in einer Optionsfeldgruppe ist in ActionScript wie folgt über die
selection-Eigenschaft verfügbar:
var selectedMenuItem = meinMenu.alignment_group.selection;
meinMenu.alignment_group = meinMenu.center_item;
Jeder groupName-Wert muss innerhalb des Gültigkeitsbereichs der Stammmenü-Instanz eindeutig
sein.
Hinweis: Das selected-Attribut sollte nur mit Hilfe der setMenuItemSelected(item, b)-Methode
modifiziert werden. Sie können das selected-Attribut direkt untersuchen, es gibt jedoch einen
Stringwert von true oder false zurück.
408
Kapitel 4: Komponenten-Referenz
Menüelemente für ActionScript bereitstellen
Sie können jedem Menüelement im instanceName-Attribut einen eindeutigen Bezeichner
zuweisen. Auf diese Weise kann direkt vom Stammmenü auf das Menüelement zugegriffen
werden. Beispielsweise stellt der folgende XML-Code instanceName-Attribute für jedes
Menüelement bereit:
<menu>
<menuitem label="Item 1" instanceName="item_1" />
<menuitem label="Item 2" instanceName="item_2" >
<menuitem label="SubItem A" instanceName="sub_item_A" />
<menuitem label="SubItem B" instanceName="sub_item_B" />
</menuitem>
</menu>
Mit ActionScript können Sie wie folgt direkt von der Menu-Komponente aus auf die
entsprechenden Objektinstanzen und ihre Attribute zugreifen:
var aMenuItem = meinMenu.item_1;
meinMenu.setMenuItemEnabled(item_2, true);
var aLabel = meinMenu.sub_item_A.label;
Hinweis: Jeder instanceName muss innerhalb des Gültigkeitsbereichs der StammmenüKomponenteninstanz (einschließlich der Untermenüs) eindeutig sein.
Eigenschaften von Initialisierungsobjekten
Der Parameter initObject (Initialisierungsobjekt) stellt ein fundamentales Konzept bei der
Erstellung des Layouts für die Menu-Komponente dar. Beim initObject-Parameter handelt es
sich um ein Objekt mit Eigenschaften. Jede Eigenschaft stellt eins der möglichen XML-Attribute
eines Menüelements dar. (Eine Beschreibung der im initObject-Parameter zulässigen
Eigenschaften finden Sie unter „XML-Attribute von Menüelementen“ auf Seite 406.)
Der initObject-Parameter wird in den folgenden Methoden verwendet:
•
•
•
•
Menu.addMenuItem()
Menu.addMenuItemAt()
MenuDataProvider.addMenuItem()
MenuDataProvider.addMenuItemAt()
Im nachstehenden Beispiel wird ein initObject-Parameter mit zwei Eigenschaften erstellt,
label und instanceName:
var i = meinMenu.addMenuItem({label:"meinMenuItem",
instanceName:"meinFirstItem"});
Verschiedene Eigenschaften arbeiten zusammen, um einen bestimmten Typ von Menüelement zu
erstellen. Sie weisen spezifische Eigenschaften zu, um bestimmte Typen von Menüelementen zu
erstellen (normale Elemente, Trennzeichen, Kontrollkästchen oder Optionsfelder).
Beispielsweise können Sie ein normales Menüelement mit dem folgenden initObject-Parameter
initialisieren:
meinMenu.addMenuItem({label:"meinMenuItem", enabled:true, icon:"meinIcon",
instanceName:"meinFirstItem"});
Menu-Komponente (nur Flash Professional)
409
Sie können ein Trennzeichen-Menüelement mit dem folgenden initObject-Parameter
initialisieren:
meinMenu.addMenuItem({type:"separator"});
Sie können ein Kontrollkästchen-Menüelement mit dem folgenden initObject-Parameter
initialisieren:
meinMenu.addMenuItem({type:"check", label:"meinMenuCheck", enabled:false,
selected:true, instanceName:"meinFirstCheckItem"})
Sie können ein Optionsfeld-Menüelement mit dem folgenden initObject-Parameter
initialisieren:
meinMenu.addMenuItem({type:"radio", label:"meinMenuRadio1", enabled:true,
selected:false, groupName:"meinRadioGroup"
instanceName:"meinFirstRadioItem"})
Sie sollten die Attribute instanceName, groupName und type eines Menüelements unbedingt als
schreibgeschützt behandeln. Diese Attribute sollten nur während der Erstellung eines Elements
gesetzt werden (z. B. in einem Aufruf an addMenuItem()). Das Modifizieren dieser Attribute
nach der Erstellung kann zu unerwarteten Ergebnissen führen.
Parameter für Menu-Komponenten
Für die Menu-Komponente gibt es keine Authoring-Parameter.
Mit Hilfe von ActionScript-Anweisungen können Sie diese und weitere Optionen für die MenuKomponente über deren Eigenschaften, Methoden und Ereignisse steuern. Weitere
Informationen finden Sie unter „Menu-Klasse (nur Flash Professional)“ auf Seite 414.
Anwendungen mit der Menu-Komponente erstellen
Im folgenden Beispiel erstellt ein Anwendungsentwickler eine Anwendung. Dabei verwendet er
die Menu-Komponente, um einige der Befehle bereitzustellen, die Benutzer erteilen können (wie
z. B. Open (Öffnen), Close (Schließen), Save (Speichern) usw.)
So erstellen Sie eine Anwendung mit der Menu-Komponente:
1 Wählen Sie Datei > Neu, und erstellen Sie ein Flash-Dokument.
2 Ziehen Sie die Menu-Komponente aus dem Bedienfeld Komponenten auf die Bühne, und
löschen Sie sie.
Dadurch wird die Menu-Komponente in die Bibliothek aufgenommen, ohne sie der
Anwendung hinzuzufügen. Menüs werden mit ActionScript dynamisch erstellt.
3 Ziehen Sie eine Button-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
Durch Klicken auf die Schaltfläche wird das Menü aktiviert.
4 Geben Sie der Schaltfläche im Eigenschafteninspektor den Instanznamen commandBtn, und
ändern Sie seine text-Eigenschaft in Commands.
410
Kapitel 4: Komponenten-Referenz
5 Geben Sie im Bedienfeld Aktionen im ersten Bild folgenden Code ein, um einen Ereignis-
Listener hinzuzufügen, der auf click-Ereignisse der commandBtn-Instanz warten soll:
var listener = new Object();
listener.click = function(evtObj) {
var button = evtObj.target;
if(button.menu == undefined) {
// Menu-Instanz erstellen und einige Elemente hinzufügen
button.menu = mx.controls.Menu.createMenu();
button.menu.addMenuItem("Open");
button.menu.addMenuItem("Close");
button.menu.addMenuItem("Save");
button.menu.addMenuItem("Revert");
// Einen change-Listener hinzufügen, um die Auswahl von Elementen
// abzufangen
var changeListener = new Object();
changeListener.change = function(event) {
var item = event.menuItem;
trace("Item selected: " + item.attributes.label);
}
button.menu.addEventListener("change", changeListener);
}
button.menu.show(button.x, button.y + button.height);
}
commandBtn.addEventListener("click", listener);
6 Wählen Sie Steuerung > Film testen.
Klicken Sie auf die Schaltfläche Commands, um das Menü anzuzeigen. Wählen Sie
Menüelemente aus, um die trace-Aktionen anzuzeigen, die im Ausgabefenster angeben,
welches Element ausgewählt wurde.
So verwenden Sie XML-Daten von einem Server, um ein Menü zu erstellen und mit
Elementen zu füllen:
1 Wählen Sie Datei > Neu, und erstellen Sie ein Flash-Dokument.
2 Ziehen Sie die Menu-Komponente aus dem Bedienfeld Komponenten auf die Bühne, und
löschen Sie sie.
Dadurch wird die Menu-Komponente in die Bibliothek aufgenommen, ohne sie der
Anwendung hinzuzufügen. Menüs werden mit ActionScript dynamisch erstellt.
3 Geben Sie im Bedienfeld Aktionen im ersten Bild folgenden Code ein, um ein Menü zu
erstellen und Elemente hinzuzufügen:
var meinMenu = mx.controls.Menu.createMenu();
// Eine XML-Datei importieren
var loader = new XML();
loader.menu = meinMenu;
loader.ignoreWhite = true;
loader.onLoad = function(success) {
// Bei Eingang von Daten diese an das Menü übergeben
if (success) {
this.menu.dataProvider = this.firstChild;
}
};
loader.load(url);
Hinweis: Die Menüelemente werden durch die untergeordneten Objekte des ersten Unterobjekts
(firstChild) des XML-Dokuments beschrieben.
4 Wählen Sie Steuerung > Film testen.
Menu-Komponente (nur Flash Professional)
411
So verwenden Sie einen XML-String, um ein Menü zu erstellen und mit Elementen zu füllen:
1 Wählen Sie Datei > Neu, und erstellen Sie ein Flash-Dokument.
2 Ziehen Sie die Menu-Komponente aus dem Bedienfeld Komponenten auf die Bühne, und
löschen Sie sie.
Dadurch wird die Menu-Komponente in die Bibliothek aufgenommen, ohne sie der
Anwendung hinzuzufügen. Menüs werden mit ActionScript dynamisch erstellt.
3 Geben Sie im Bedienfeld Aktionen im ersten Bild folgenden Code ein, um ein Menü zu
erstellen und Elemente hinzuzufügen:
// XML-String erstellen, der eine Menüdefinition enthält
var s = "";
s += "<menu>";
s += "<menuitem label='Undo' />";
s += "<menuitem type='separator' />";
s += "<menuitem label='Cut' />";
s += "<menuitem label='Copy' />";
s += "<menuitem label='Paste' />";
s += "<menuitem label='Clear' />";
s += "<menuitem type='separator' />";
s += "<menuitem label='Select All' />";
s += "</menu>";
// XML-Objekt aus dem String erstellen
var xml = new XML(s);
xml.ignoreWhite = true;
// Menu-Komponente aus dem firstChild des XML-Objekts erstellen
var meinMenu = mx.controls.Menu.createMenu(_root, xml.firstChild);
4 Wählen Sie Steuerung > Film testen.
So verwenden Sie die MenuDataProvider-Klasse, um ein Menü zu erstellen und mit
Elementen zu füllen:
1 Wählen Sie Datei > Neu, und erstellen Sie ein Flash-Dokument.
2 Ziehen Sie die Menu-Komponente aus dem Bedienfeld Komponenten auf die Bühne, und
löschen Sie sie.
Dadurch wird die Menu-Komponente in die Bibliothek aufgenommen, ohne sie der
Anwendung hinzuzufügen. Menüs werden mit ActionScript dynamisch erstellt.
3 Geben Sie im Bedienfeld Aktionen im ersten Bild folgenden Code ein, um ein Menü zu
erstellen und Elemente hinzuzufügen:
// XML-Objekt erstellen, das als Factory dienen soll
var xml = new XML();
// Das als nächstes erstellte Element erscheint nicht im Menü.
// Der Methodenaufruf 'createMenu' (unten) erwartet
// den Empfang eines Stammelements, dessen Unterobjekte
// zu den Elementen werden. Dies ist eine einfache Methode, um das
// Stammelement zu erstellen und ihm gleichzeitig
// einen praktischen Namen zu geben.
var theMenuElement = xml.addMenuItem("Edit");
412
Kapitel 4: Komponenten-Referenz
// Menüelemente hinzufügen
theMenuElement.addMenuItem({label:"Undo"});
theMenuElement.addMenuItem({type:"separator"});
theMenuElement.addMenuItem({label:"Cut"});
theMenuElement.addMenuItem({label:"Copy"});
theMenuElement.addMenuItem({label:"Paste"});
theMenuElement.addMenuItem({label:"Clear", enabled:"false"});
theMenuElement.addMenuItem({type:"separator"});
theMenuElement.addMenuItem({label:"Select All"});
// Menu-Objekt erstellen
var theMenuControl = mx.controls.Menu.createMenu(_root, theMenuElement);
4 Wählen Sie Steuerung > Film testen.
Menu-Komponenten anpassen
Das Menü passt seine Größe horizontal so an, dass es seinen breitesten Text einpassen kann. Sie
können auch die Methode setSize() aufrufen, um die Größe der Komponente anzupassen.
Symbole sollten eine maximale Größe von 16 x 16 Pixel aufweisen.
Stile mit der Menu-Komponente verwenden
Sie können die Methode setStyle() aufrufen, um den Stils des Menüs sowie seiner
Menüelemente und Untermenüs zu ändern. Menu-Komponenten unterstützen folgende KranzStile:
Stil
Beschreibung
themeColor
Die Hintergrundfarbe des Menüs. Dies ist der einzige Farbstil, der
den Wert nicht übernimmt.
color
Farbe des Beschriftungstexts eines Menüelements.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil: mögliche Werte sind normal und italic (kursiv).
fontWeight
Das Schriftgewicht: mögliche Werte sind normal und bold (fett).
rollOverColor
Die Rollover-Farbe von Menüelementen.
selectionColor
Ausgewählte Elemente und Elemente, die Untermenüs enthalten.
selectionDisabledColor
Ausgewählte Elemente und Elemente, die Untermenüs enthalten und
die deaktiviert sind.
textRollOverColor
Die Textfarbe, wenn Sie den Mauszeiger darüber ziehen.
textDecoration
Textauszeichnung; mögliche Werte sind none (keine) und underline
(unterstrichen).
textDisabledColor
Die Farbe von deaktiviertem Text.
textSelectedColor
Die Textfarbe eines ausgewählten Menüelements.
popupDuration
Die Dauer des Übergangs beim Öffnen eines Menüs. Der Wert 0 legt
fest, dass kein Übergang stattfindet.
Menu-Komponente (nur Flash Professional)
413
Skins mit der Menu-Komponente verwenden
Aktuelle Informationen zu diesem Merkmal können Sie über den Befehl Aktualisieren auf der
Registerkarte Hilfe abrufen.
Menu-Klasse (nur Flash Professional)
Vererbung
UIObject > UIComponent > View > ScrollView > ScrollSelectList > Menu
ActionScript-Klassenname
mx.controls.Menu
Übersicht: Methoden der Menu-Klasse
Methode
Beschreibung
Menu.addMenuItem()
Fügt dem Menü ein Menüelement hinzu.
Menu.addMenuItemAt()
Fügt dem Menü ein Menüelement an einer bestimmten Position
hinzu.
Menu.createMenu()
Erstellt eine Instanz der Menu-Klasse. Dies ist eine statische
Methode.
Menu.getMenuItemAt()
Ruft eine Referenz auf ein Menüelement an einer bestimmten
Position ab.
Menu.hide()
Schließt ein Menü.
Menu.indexOf()
Gibt den Index eines Menüelements zurück.
Menu.removeAll()
Entfernt alle Elemente aus einem Menü.
Menu.removeMenuItemAt()
Entfernt ein Menüelement an einer bestimmten Position.
Menu.setMenuItemEnabled()
Gibt an, ob ein Menüelement aktiviert ist (true) oder nicht (false).
Menu.setMenuItemSelected() Gibt an, ob ein Menüelement ausgewählt ist (true) oder nicht (false).
Menu.show()
Öffnet ein Menü an einer bestimmten Position oder an seiner
vorherigen Position.
Erbt alle Methoden von UIObject, UIComponent, ScrollView und ScrollSelectList.
Übersicht: Eigenschaften der Menu-Klasse
Eigenschaft
Beschreibung
Menu.dataProvider
Die Datenquelle für ein Menü.
Erbt alle Eigenschaften von UIObject, UIComponent, ScrollView und ScrollSelectList.
414
Kapitel 4: Komponenten-Referenz
Übersicht: Ereignisse der Menu-Klasse
Ereignis
Beschreibung
Menu.change
Broadcastübertragung, wenn ein Benutzer ein Element auswählt.
Menu.menuHide
Broadcastübertragung, wenn ein Menü geschlossen wird.
Menu.menuShow
Broadcastübertragung, wenn ein Menü geöffnet wird.
Menu.rollOut
Broadcastübertragung, wenn der Mauszeiger von einem Element
weggezogen wird.
Menu.rollOver
Broadcastübertragung, wenn der Mauszeiger über ein Element
gezogen wird.
Erbt alle Ereignisse von UIObject, UIComponent, ScrollView und ScrollSelectList.
Menu.addMenuItem()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
meinMenu.addMenu(initObject)
Verwendung 2:
meinMenu.addMenu(childMenuItem)
Parameter
Ein Objekt, das Eigenschaften enthält, die die Attribute eines Menüelements
initialisieren. Weitere Informationen hierzu finden Sie unter „XML-Attribute von
Menüelementen“ auf Seite 406.
initObject
childMenuItem
Ein XML-Knotenobjekt.
Rückgaben
Eine dem XML-Knoten hinzugefügte Referenz.
Beschreibung
Methode; Mit Verwendung 1 wird ein Menüelement am Ende des Menüs hinzugefügt. Das
Menüelement wird aus den im initObject-Parameter bereitgestellten Werten erstellt. Mit
Verwendung 2 wird ein Menüelement, bei dem es sich um einen vorgefertigten XML-Knoten (in
Form eines XML-Objekts) handelt, an das Ende des Menüs hinzugefügt. Durch das Hinzufügen
eines vorgefertigten Knotens wird der Knoten aus seiner vorherigen Position entfernt.
Menu-Komponente (nur Flash Professional)
415
Beispiel
Verwendung 1: Im folgenden Beispiel wird ein Menüelement an ein Menü angehängt:
meinMenu.addMenuItem({ label:"Item 1", type:"radio", selected:false,
enabled:true, instanceName:"radioItem1", groupName:"meineRadioGroup" } );
Verwendung 2: Im folgenden Beispiel wird ein Knoten aus einem Menü in ein anderes Menü
verschoben:
meinMenu.addMenuItem(meinSecondMenu.getMenuItemAt(meinSecondMenu, 3));
Menu.addMenuItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
meinMenu.addMenuItemAt(index, initObject)
Verwendung 2:
meinMenu.addMenuItemAt(index, childMenuItem)
Parameter
index Eine Ganzzahl, die angibt, an welcher Stelle (unter den untergeordneten Knoten) ein
Element hinzugefügt wird.
Ein Objekt, das Eigenschaften enthält, die die Attribute eines Menüelements
initialisieren. Weitere Informationen hierzu finden Sie unter „XML-Attribute von
Menüelementen“ auf Seite 406.
initObject
childMenuItem
Ein XML-Knotenobjekt.
Rückgaben
Eine dem XML-Knoten hinzugefügte Referenz.
Beschreibung
Methode; Mit Verwendung 1 wird ein Menüelement (untergeordneter Knoten) an der
angegebenen Position im Menü hinzugefügt. Das Menüelement wird aus den im initObjectParameter bereitgestellten Werten erstellt. Mit Verwendung 2 wird ein Menüelement, bei dem es
sich um einen vorgefertigten XML-Knoten (in Form eines XML-Objekts) handelt, an der
angegebenen Position im Menü hinzugefügt. Durch das Hinzufügen eines vorgefertigten Knotens
wird der Knoten aus seiner vorherigen Position entfernt.
416
Kapitel 4: Komponenten-Referenz
Beispiel
Verwendung 1: Im folgenden Beispiel wird ein neuer Knoten als zweiter untergeordneter Knoten
im Stamm des Menüs hinzugefügt:
meinMenu.addMenuItemAt(1, { label:"Item 1", instanceName:"radioItem1",
type:"radio", selected:false, enabled:true, groupName:"meineRadioGroup" } );
Verwendung 2: Im folgenden Beispiel wird ein Knoten aus einem Menü zum vierten
untergeordneten Knoten im Stamm eines anderen Menüs verschoben:
meinMenu.addMenuItemAt(3, meinSecondMenu.getMenuItemAt(meinSecondMenu, 3));
Menu.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.change = function(eventObject){
// Hier Code eingeben
}
meinMenu.addEventListener("change", listenerObject)
Beschreibung
Ereignis. Broadcastübertragung an alle registrierten Listener, wann immer ein Benutzer eine
Änderung in dem Menü hervorruft.
V2-Komponenten verwenden ein Dispatcher/Listener-Ereignismodell. Wenn eine MenuKomponente per Broadcast ein change-Ereignis überträgt, wird das Ereignis von einer Funktion
(auch als Prozedur bezeichnet) verarbeitet, die einem von Ihnen erstellten Listener-Objekt
(listenerObject) zugewiesen ist. Rufen Sie die Methode addEventListener() auf, und
übergeben Sie ihr den Namen der Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Menu.change-Ereignisses weist die folgenden
zusätzlichen Eigenschaften auf:
•
•
•
•
Eine Referenz auf die MenuBar-Instanz, die dem Zielmenü übergeordnet ist. Wenn
das Zielmenü keinem anderen Menü angehört, ist dieser Wert undefined.
menu Eine Referenz auf die Menu-Instanz, in der sich das Zielelement befindet.
menuItem Ein XML-Knoten, bei dem es sich um das ausgewählte Menüelement handelt.
groupName Eine Zeichenfolge, die den Namen der Optionsfeldgruppe angibt, zu der das
Element gehört. Wenn das Element sich nicht in einer Optionsfeldgruppe befindet, ist dieser
Wert undefined.
menuBar
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Menu-Komponente (nur Flash Professional)
417
Beispiel
Im folgenden Beispiel wird eine Prozedur namens listener definiert und an die Methode
meinMenu.addEventListener() als zweiter Parameter weitergegeben. Das Ereignisobjekt wird
von der change-Prozedur im Parameter event erfasst. Wenn das change-Ereignis als
Broadcastübertragung verteilt wird, wird eine trace-Anweisung an das Bedienfeld Ausgabe
gesendet.
listener = new Object();
listener.change = function(evt){
trace("Ausgewähltes Menüelement: "+evt.menuItem.attributes.label);
}
meinMenu.addEventListener("change", listener);
Menu.createMenu()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Menu.createMenu(parent, mdp)
Parameter
parent Eine MovieClip-Instanz. Der Movieclip ist die übergeordnete Komponente, die die
neue Menu-Instanz enthält. Dieser Parameter ist optional.
Die MenuDataProvider-Instanz, die diese Menu-Instanz beschreibt. Dieser Parameter ist
optional.
mdp
Rückgaben
Eine Referenz auf die neue Menu-Instanz.
Beschreibung
Methode (statisch). Instanziiert eine Menu-Instanz und weist diese optional der angegebenen
übergeordneten Instanz (parent) zu, wobei die angegebene MenuDataProvider-Instanz als
Datenquelle für die Menüelemente dient.
Wenn das Argument parent ausgelassen wird oder keinen Wert aufweist, wird das Menü der
Zeitleiste _root zugewiesen.
Wenn das Argument mdp ausgelassen wird oder keinen Wert aufweist, hat das Menü keine
Elemente. Sie müssen die Methoden addMenu() oder setDataProvider() aufrufen, um das
Menü mit Elementen zu füllen.
418
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird mit Zeile 1 eine MenuDataProvider-Instanz erstellt, bei der es sich um
ein XML-Objekt handelt, das mit den Methoden der MenuDataProvider-Klasse ausgestattet ist.
In der nächsten Zeile wird ein Menüelement New (Neu) mit einem Untermenü File (Datei),
Project (Projekt) und Resource (Ressource) hinzugefügt. Im nächsten Codeblock werden dem
Hauptmenü weitere Elemente hinzugefügt. Der dritte Codeblock erstellt ein leeres Menü, das
meinParentClip zugewiesen ist, füllt es mit der Datenquelle meinMDP und öffnet es an den
Koordinaten 100, 20:
var meinMDP = new XML();
var newItem = meinMDP.addMenuItem({label:"New"});
newItem.addMenuItem({label:"File..."});
newItem.addMenuItem({label:"Project..."});
newItem.addMenuItem({label:"Resource..."});
meinMDP.addMenuItem({label:"Open", instanceName:"miOpen"});
meinMDP.addMenuItem({label:"Save", instanceName:"miSave"});
meinMDP.addMenuItem({type:"separator"});
meinMDP.addMenuItem({label:"Quit", instanceName:"miQuit"});
var meinMenu = mx.controls.Menu.createMenu(meinParentClip, meinMDP);
meinMenu.show(100, 20);
Testen Sie diesen Code, indem Sie ihn im Bedienfeld Aktionen in Bild 1 der Hauptzeitleiste
platzieren. Ziehen Sie eine Menu-Komponente aus dem Bedienfeld Komponenten auf die
Bühne, und löschen Sie sie. Dadurch wird die Komponente der Bibliothek hinzugefügt, ohne sie
im Dokument zu platzieren.
Menu.dataProvider
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.dataProvider
Beschreibung
Eigenschaft; Die Datenquelle für Elemente in einer Menu-Komponente.
Menu.dataProvider ist ein XML-Knotenobjekt. Durch Festlegen dieser Eigenschaft wird die
bestehende Datenquelle des Menüs ersetzt.
Der Standardwert ist undefined.
Hinweis: Allen XML- oder XMLNode-Instanzen werden automatisch die Methoden und
Eigenschaften der MenuDataProvider-API zugewiesen, wenn sie mit der Menu-Komponente
verwendet werden.
Menu-Komponente (nur Flash Professional)
419
Beispiel
Im folgenden Beispiel wird eine XML-Datei importiert und der Menu.dataProviderEigenschaft zugewiesen:
var meinMenuDP = new XML();
meinMenuDP.load("http://meinServer.meineDomaene.com/source.xml");
meinMenuDP.onLoad = function(){
meinMenuControl.dataProvider = meinMenuDP;
}
Menu.getMenuItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.getMenuItemAt(index)
Parameter
index
Eine Ganzzahl, die den Index des Knotens im Menü angibt.
Rückgaben
Eine Referenz auf den angegebenen Knoten.
Beschreibung
Methode; Gibt eine Referenz auf den angegebenen untergeordneten Knoten (Child-Knoten) des
Menüs zurück.
Beispiel
Im folgenden Beispiel wird eine Referenz auf den zweiten Child-Knoten in meinMenu abgerufen
und der Wert in die Variable meinItem kopiert:
var meinItem = meinMenu.getMenuItemAt(1);
Menu.hide()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.hide()
Parameter
index
420
Der Index des Menüelements.
Kapitel 4: Komponenten-Referenz
Rückgaben
Keine.
Beschreibung
Methode; Schließt ein Menü mit optionalen Übergangseffekten.
Beispiel
Im folgenden Beispiel wird ein erweitertes Menü geschlossen:
meinMenu.hide();
Siehe auch
Menu.show()
Menu.indexOf()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.indexOf(item)
Parameter
item
Eine Referenz auf einen XML-Knoten, der ein Menüelement beschreibt.
Rückgaben
Der Index des angegebenen Menüelements. Wenn das Element nicht zu diesem Menü gehört,
wird undefined zurückgegeben.
Beschreibung
Methode; Gibt den Index des angegebenen Menüelements innerhalb dieser Menüinstanz zurück.
Beispiel
Im folgenden Beispiel wird dem übergeordneten Element (Parent) ein Menüelement hinzugefügt.
Anschließend wird der Index des Elements innerhalb seines übergeordneten Elements abgerufen:
var meinItem = meinMenu.addMenuItem({label:"That item"});
var meinIndex = meinMenu.indexOf(meinItem);
Menu-Komponente (nur Flash Professional)
421
Menu.menuHide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.menuHide = function(eventObject){
// Hier Code eingeben
}
meinMenu.addEventListener("menuHide", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wann immer ein Menü geschlossen
wird.
V2-Komponenten verwenden ein Dispatcher/Listener-Ereignismodell. Wenn eine MenuKomponente ein menuHide-Ereignis absetzt, wird das Ereignis von einer Funktion (auch als
Prozedur bezeichnet), verarbeitet, die einem von Ihnen erstellten Listener-Objekt
(listenerObject) zugewiesen ist. Sie rufen die addEventListener()-Methode auf und
übergeben ihr den Namen der Prozedur sowie den Namen des Listener-Objekts in Form von
Parametern.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Menu.menuHide-Ereignisses verfügt über zwei
zusätzliche Eigenschaften:
•
•
menuBar Eine Referenz auf die MenuBar-Instanz, die dem Zielmenü übergeordnet ist. Wenn
das Zielmenü zu keiner MenuBar-Instanz gehört, ist dieser Wert undefined.
menu Eine Referenz auf die Menu-Instanz, die ausgeblendet ist.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird eine Prozedur namens form definiert und als zweiter Parameter an die
Methode meinMenu.addEventListener() übergegeben. Das Ereignisobjekt wird von der
menuHide-Prozedur im Parameter event erfasst. Bei einer Broadcastübertragung des menuHideEreignisses wird eine trace-Anweisung wie folgt an das Bedienfeld Ausgabe gesendet:
form = new Object();
form.menuHide = function(evt){
trace("Menü geschlossen: "+evt.menu);
}
meinMenu.addEventListener("menuHide", form);
Siehe auch
Menu.menuShow
422
Kapitel 4: Komponenten-Referenz
Menu.menuShow
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.menuShow = function(eventObject){
// Hier Code eingeben
}
meinMenu.addEventListener("menuShow", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wann immer ein Menü geöffnet
wird. Alle übergeordneten Knoten enthalten Menüs mit untergeordneten Knoten.
V2-Komponenten verwenden ein Dispatcher/Listener-Ereignismodell. Wenn eine MenuKomponente ein menuShow-Ereignis absetzt, wird das Ereignis von einer Funktion (auch als
Prozedur bezeichnet), verarbeitet, die einem von Ihnen erstellten Listener-Objekt
(listenerObject) zugewiesen ist. Sie rufen die addEventListener()-Methode auf und
übergeben ihr die Namen der Prozedur und des Listener-Objekts in Form von Parametern.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Menu.menuShow-Ereignisses verfügt über zwei
zusätzliche Eigenschaften:
•
•
Eine Referenz auf die MenuBar-Instanz, die dem Zielmenü übergeordnet ist. Wenn
das Zielmenü nicht zu einem Menü gehört, ist dieser Wert undefined.
menu Eine Referenz auf die Menu-Instanz, die angezeigt wird.
menuBar
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird eine Prozedur namens form definiert und als zweiter Parameter an die
Methode meinMenu.addEventListener() übergegeben. Das Ereignisobjekt wird von der
menuShow-Prozedur im Parameter evtObject erfasst. Bei einer Broadcastübertragung des
menuShow-Ereignisses wird eine trace-Anweisung wie folgt an das Bedienfeld Ausgabe gesendet:
form = new Object();
form.menuShow = function(evt){
trace("Menü geöffnet: "+evt.menu);
}
meinMenu.addEventListener("menuShow", form);
Siehe auch
Menu.menuHide
Menu-Komponente (nur Flash Professional)
423
Menu.removeAll()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.removeAll()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; Entfernt alle Elemente und aktualisiert das Menü.
Beispiel
Im folgenden Beispiel werden alle Knoten aus dem Menü entfernt:
meinMenu.removeAll();
Menu.removeMenuItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.removeMenuItemAt(index)
Parameter
index
Der Index des zu entfernenden Menüelements.
Rückgaben
Eine Referenz auf das zurückgegebene Menüelement (XML-Knoten). Wenn an dieser Position
kein Element vorhanden ist, wird der Wert undefined zurückgegeben.
Beschreibung
Methode; Entfernt das Menüelement und alle ihm untergeordneten Elemente an der
angegebenen Indexposition. Wenn an dieser Indexposition kein Menüelement vorhanden ist, hat
der Aufruf dieser Methode keine Auswirkungen.
424
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird ein Menüelement an Indexposition 3 entfernt:
var item = meinMenu.removeMenuItemAt(3);
Menu.rollOut
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.rollOut = function(eventObject){
// Hier Code eingeben
}
meinMenu.addEventListener("rollOut", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wenn der Mauszeiger von einem
Menüelement weggezogen wird.
V2-Komponenten verwenden ein Dispatcher/Listener-Ereignismodell. Wenn eine MenuKomponente per Broadcast ein rollOut-Ereignis überträgt, wird das Ereignis von einer Funktion
(auch als Prozedur bezeichnet) verarbeitet, die einem von Ihnen erstellten Listener-Objekt
(listenerObject) zugewiesen ist. Rufen Sie die Methode addEventListener() auf, und
übergeben Sie ihr den Namen der Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Menu.rollOut-Ereignisses verfügt über eine
zusätzliche Eigenschaft:
•
Eine Referenz auf das Menüelement (XML-Knoten), von dem der Mauszeiger
weggezogen wurde.
menuItem
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird eine Prozedur namens form definiert und als zweiter Parameter an die
Methode meinMenu.addEventListener() übergegeben. Das Ereignisobjekt wird von der
rollOut-Prozedur im Parameter event erfasst. Bei einer Broadcastübertragung des rollOutEreignisses wird eine trace-Anweisung wie folgt an das Bedienfeld Ausgabe gesendet:
form = new Object();
form.rollOut = function(evt){
trace("Menü rollOut: "+evt.menuItem.attributes.label);
}
meinMenu.addEventListener("rollOut", form);
Menu-Komponente (nur Flash Professional)
425
Menu.rollOver
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
listenerObject = new Object();
listenerObject.rollOver = function(eventObject){
// Hier Code eingeben
}
meinMenu.addEventListener("rollOver", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wenn der Mauszeiger über ein
Menüelement gezogen wird.
V2-Komponenten verwenden ein Dispatcher/Listener-Ereignismodell. Wenn eine MenuKomponente per Broadcast ein change-Ereignis überträgt, wird das Ereignis von einer Funktion
(auch als Prozedur bezeichnet) verarbeitet, die einem von Ihnen erstellten Listener-Objekt
(listenerObject) zugewiesen ist. Rufen Sie die Methode addEventListener() auf, und
übergeben Sie ihr den Namen der Prozedur als Parameter.
Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt (eventObject) an die
Prozedur übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten
zum Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf
das Ereignis reagiert. Das Ereignisobjekt des Menu.rollOver-Ereignisses verfügt über eine
zusätzliche Eigenschaft:
Eine Referenz auf das Menüelement (XML-Knoten), über das der Mauszeiger
gezogen wurde.
menuItem
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird eine Prozedur namens form definiert und als zweiter Parameter an die
Methode meinMenu.addEventListener() übergegeben. Das Ereignisobjekt wird von der
rollOver-Prozedur im Parameter event erfasst. Bei einer Broadcastübertragung des rollOverEreignisses wird eine trace-Anweisung wie folgt an das Bedienfeld Ausgabe gesendet:
form = new Object();
form.rollOver = function(evt){
trace("Menü rollOver: "+evt.menuItem.attributes.label);
}
meinMenu.addEventListener("rollOver", form);
426
Kapitel 4: Komponenten-Referenz
Menu.setMenuItemEnabled()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.setMenuItemEnabled(item, enable)
Parameter
item
Ein XML-Knoten. Der Knoten des Zielmenüelements im Datenprovider.
enable
(false).
Ein Boolescher Wert, der angibt, ob ein Element aktiviert ist (true) oder nicht
Rückgaben
Keine.
Beschreibung
Methode; Ändert das enabled-Attribut des Zielelements in den durch den Parameter enable
angegebenen Status. Wenn dieser Aufruf zu einer Statusänderung führt, wird das Element mit
seinem neuen Status dargestellt.
Beispiel
Im folgenden Beispiel wird das zweite untergeordnete Element von meinMenu deaktiviert:
var meinItem = meinMenu.getMenuItemAt(1);
meinMenu.setMenuItemEnabled(meinItem, false);
Siehe auch
Menu.setMenuItemSelected()
Menu.setMenuItemSelected()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.setMenuItemSelected(item, select)
Menu-Komponente (nur Flash Professional)
427
Parameter
item
Ein XML-Knoten. Der Knoten des Zielmenüelements im Datenprovider.
Ein Boolescher Wert, der angibt, ob das Element ausgewählt ist (true) oder nicht
Wenn es sich bei dem Element um ein Kontrollkästchen handelt, ist das Häkchen
entweder sichtbar oder nicht sichtbar. Ist das Element ein Optionsfeld, wird das Element in der
Optionsfeldgruppe zur aktuellen Auswahl.
select
(false).
Rückgaben
Keine.
Beschreibung
Methode; Ändert das selected-Attribut des Elements in den durch den select-Parameter
angegebenen Status. Wenn dieser Aufruf zu einer Statusänderung führt, wird das Element mit
seinem neuen Status dargestellt. Dies ist nur für Elemente von Bedeutung, deren type-Attribut
auf radio oder check gesetzt ist, da veranlasst wird, dass der Auswahlpunkt bzw. das Häkchen
angezeigt oder nicht angezeigt werden. Wenn Sie diese Methode für ein Element aufrufen, dessen
type-Attribut auf normal oder separator eingestellt ist, hat sie keine Auswirkungen.
Beispiel
Im folgenden Beispiel wird die Auswahl des zweiten untergeordneten Elements von meinMenu
aufgehoben:
var meinItem = meinMenu.getMenuItemAt(1);
meinMenu.setMenuItemSelected(meinItem, false);
Menu.show()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.show(x, y)
Parameter
x
Die x-Koordinate.
y
Die y-Koordinate.
Rückgaben
Keine.
428
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; Öffnet ein Menü an einer bestimmten Position. Die Größe des Menüs wird
automatisch angepasst, sodass alle Elemente der obersten Ebene sichtbar sind. Die obere linke
Ecke wird an der Position im Koordinatensystem platziert, die durch die übergeordnete Instanz
der Komponente bereitgestellt wird.
Wenn die x- und y-Parameter ausgelassen werden, wird das Menü an seiner vorherigen Position
angezeigt.
Beispiel
Im folgenden Beispiel wird ein Menü erweitert:
meinMenu.show(10, 10);
Siehe auch
Menu.hide()
MenuDataProvider-Klasse
Die MenuDataProvider-Klasse ist eine Decorator-API (Mix-In), die der globalen XMLNodeKlasse Funktionalität hinzufügt. Durch diese Funktionalität können XML-Instanzen, die einer
dataProvider-Menüeigenschaft zugewiesen sind, sowohl ihre eigenen Daten als auch die
zugehörigen Menüansichten über die MenuDataProvider-API manipulieren.
Konzepte:
• Die MenuDataProvider-Klasse ist eine Decorator-API (Mix-In). Zu ihrer Verwendung ist
keine Instanziierung erforderlich.
• Menüs akzeptieren XML nativ als dataProvider-Eigenschaft.
• Wenn eine Menu-Klasse instanziiert wird, werden alle XML-Instanzen in der SWF-Datei
•
•
•
durch die MenuDataProvider-API ausgestattet.
Eine Broadcastübertragung der Ereignisse an die Steuerelemente des Menüs erfolgt
ausschließlich durch Methoden der MenuDataProvider-API. Sie können dennoch native
XML-Methoden einsetzen, jedoch handelt es sich hierbei nicht um Broadcastereignisse, die die
Menüansichten aktualisieren.
■ Verwenden Sie Methoden der MenuDataProvider-API zur Steuerung des Datenmodells.
■ Verwenden Sie XML-Methoden für schreibgeschützte Vorgänge, wie z. B. das Navigieren in
der Menühierarchie.
Bei allen Elementen im Menü handelt es sich um XML-Objekte, die mit der
MenuDataProvider-API ausgestattet sind.
Änderungen an den Elementattributen werden auf dem Bildschirm erst dann reflektiert, wenn
eine Aktualisierung stattgefunden hat.
Menu-Komponente (nur Flash Professional)
429
Übersicht: Methoden der MenuDataProvider-Klasse
Methode
Beschreibung
MenuDataProvider.addMenuItem()
Fügt ein untergeordnetes Element hinzu.
MenuDataProvider.addMenuItemAt()
Fügt ein untergeordnetes Element an einer bestimmten
Stelle hinzu.
MenuDataProvider.getMenuItemAt()
Ruft eine Referenz auf ein Menüelement an einer
bestimmten Position ab.
MenuDataProvider.indexOf()
Gibt den Index eines angegebenen Menüelements
zurück.
MenuDataProvider.removeMenuItem()
Entfernt ein Menüelement.
MenuDataProvider.removeMenuItemAt()
Entfernt ein Menüelement an einer bestimmten Position.
MenuDataProvider.addMenuItem()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
meinMenu.addMenuItem(initObject)
Verwendung 2:
meinMenu.addMenuItem(childMenuItem)
Parameter
Ein Objekt, das bestimmte Attribute enthält, die die Attribute eines
Menüelements initialisieren. Weitere Informationen finden Sie unter „XML-Attribute von
Menüelementen“ auf Seite 406.
initObject
childMenuItem
Ein XML-Knoten.
Rückgaben
Eine Referenz auf ein XMLNode-Objekt.
Beschreibung
Methode; Mit Verwendung 1 wird dem Ende eines übergeordneten Menüelements (bei dem es
sich um das Menü selbst handeln kann) ein untergeordnetes Element hinzugefügt. Das
Menüelement wird aus den im Parameter initObject übergebenen Werten erstellt. Mit
Verwendung 2 wird ein untergeordnetes Element, das im angegebenen XML-Parameter
childMenuItem definiert ist, an das Ende eines übergeordneten Menüelements hinzugefügt.
430
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird einem angegebenen Knoten in dem Menü ein neuer Knoten
hinzugefügt:
meinMenuDP.firstChild.addMenuItem("Inbox", { label:"Item 1",
icon:"radioItemIcon", type:"radio", selected:false, enabled:true,
instanceName:"radioItem1", groupName:"meineRadioGroup" } );
MenuDataProvider.addMenuItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
meinMenu.addMenuItemAt(index, initObject)
Verwendung 2:
meinMenu.addMenuItemAt(index, childMenuItem)
Parameter
index
Eine Ganzzahl.
Ein Objekt, das bestimmte Attribute enthält, die die Attribute eines
Menüelements initialisieren. Weitere Informationen finden Sie unter „XML-Attribute von
Menüelementen“ auf Seite 406.
initObject
childMenuItem
Ein XML-Knoten.
Rückgaben
Eine dem XML-Knoten hinzugefügte Referenz.
Beschreibung
Methode; Mit Verwendung 1 wird ein untergeordnetes Objekt an der angegebenen Indexposition
im übergeordneten Menüelement (bei dem es sich um das Menü selbst handeln kann)
hinzugefügt. Das Menüelement wird aus den im Parameter initObject übergebenen Werten
erstellt. Mit Verwendung 2 wird ein untergeordnetes Element, das im angegebenen XMLParameter childMenuItem definiert ist, an der angegebenen Indexposition eines übergeordneten
Menüelements hinzugefügt.
Beispiel
Verwendung 1: Im folgenden Beispiel wird ein neuer Knoten als zweiter untergeordneter Knoten
im Stamm des Menüs hinzugefügt:
meinMenu.addMenuItemAt(1, { label:"Item 1", type:"radio", selected:false,
enabled:true, instanceName:"radioItem1", groupName:"meineRadioGroup" } );
Menu-Komponente (nur Flash Professional)
431
MenuDataProvider.getMenuItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.getMenuItemAt(index)
Parameter
Eine Ganzzahl, die die Position des Menüs angibt.
index
Rückgaben
Eine Referenz auf den angegebenen XML-Knoten.
Beschreibung
Methode; Gibt eine Referenz auf das angegebene untergeordnete Menüelement des aktuellen
Menüelements zurück.
Beispiel
Im folgenden Beispiel wird der abzurufende Knoten gefunden und anschließend das zweite
untergeordnete Element von meinMenuItem abgerufen:
var meinMenuItem = meinMenuDP.firstChild.firstChild;
meinMenuItem.getMenuItemAt(1);
MenuDataProvider.indexOf()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.indexOf(item)
Parameter
item
Eine Referenz auf den XML-Knoten, der das Menüelement beschreibt.
Rückgaben
Der Index des angegebenen Menüelements. Wenn das Element nicht zu diesem Menü gehört,
wird der Wert undefined zurückgegeben.
Beschreibung
Methode; Gibt den Index des angegebenen Menüelements innerhalb dieses übergeordneten
Menüelements zurück.
432
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird ein Menüelement zu einem übergeordneten Menüelement
hinzugefügt und der Index des Elements abgerufen:
var meinItem = meinParentItem.addMenuItem({label:"Element"});
var meinIndex = meinParentItem.indexOf(meinItem);
MenuDataProvider.removeMenuItem()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.removeMenuItem()
Parameter
Keine.
Rückgaben
Eine Referenz auf das entfernte Menüelement (XML-Knoten); sollte ein Fehler auftreten, wird
undefined zurückgegeben.
Beschreibung
Methode; Entfernt das Zielelement und jegliche untergeordnete Knoten.
Beispiel
Im folgenden Beispiel wird meinMenuItem aus seinem übergeordneten Element entfernt:
meinMenuItem.removeMenuItem();
MenuDataProvider.removeMenuItemAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinMenu.removeMenuItemAt(index)
Parameter
index
Der Index des Menüelements.
Rückgaben
Eine Referenz auf das entfernte Menüelement. Wenn an dieser Position kein Element vorhanden
ist, wird der Wert undefined zurückgegeben.
Menu-Komponente (nur Flash Professional)
433
Beschreibung
Methode; Entfernt das untergeordnete Element des durch den index-Parameter angegebenen
Menüelements. Wenn an dieser Indexposition kein Menüelement vorhanden ist, hat der Aufruf
dieser Methode keine Auswirkungen.
Beispiel
Im folgenden Beispiel wird das vierte Element entfernt:
meinMenuDP.removeMenuItemAt(3);
MenuBar-Komponente (nur Flash Professional)
Mit Hilfe der MenuBar-Komponente können Sie eine horizontale Menüleiste mit Popupmenüs
und Befehlen erstellen, wie etwa die Menüleisten Datei und Bearbeiten, die in den meisten
gängigen Softwareanwendungen (z. B. Macromedia Flash) zu finden sind. Die Menüleiste ergänzt
die Menu-Komponente, indem sie eine anklickbare Oberfläche bereitstellt, über die Menüs
angezeigt und ausgeblendet werden können, die bei Maus- und Tastaturaktivitäten eine Gruppe
bilden.
Mit Hilfe der Menüleiste können Sie in wenigen Schritten ein Anwendungsmenü erstellen. Um
eine Menüleiste zu erstellen, können Sie ihr entweder einen XML-Datenprovider zuweisen, der
eine Reihe von Menüs beschreibt, oder die Methode MenuBar.addMenu() verwenden, um
Menüinstanzen nacheinander hinzuzufügen.
Jedes Menü in der Menüleiste setzt sich aus zwei Teilen zusammen: dem Menü und der
Schaltfläche, die das Öffnen des Menüs verursacht (dem sogenannten Menüaktivator). Diese
anklickbaren Menüaktivatoren werden in der Menüleiste als Bezeichnungstext dargestellt, dessen
Hervorhebungszustände durch eingelassenen und nach außen gestellten Rand gekennzeichnet
sind und auf eine Interaktion durch Maus oder Tastatur reagieren.
Wenn Sie auf einen Menüaktivator klicken, wird das entsprechende Menü darunter geöffnet. Das
Menü bleibt solange aktiviert, bis erneut auf den Aktivator geklickt, ein Menüelement ausgewählt
oder auf eine Stelle außerhalb des Menübereichs geklickt wird.
Abgesehen von der Erstellung von Menüaktivatoren, die Menüs anzeigen und ausblenden, wird
über die Menüleiste das Gruppenverhalten für eine Reihe von Menüs definiert. Auf diese Weise
kann ein Benutzer eine große Anzahl von Befehlen überblicken, indem er den Mauszeiger über
eine Reihe von Aktivatoren zieht oder mit Hilfe der Pfeiltasten durch die Listen navigiert. Mausund Tastaturinteraktivität wirken zusammen, sodass der Benutzer innerhalb der MenuBarKomponente von einem Menü zum nächsten springen kann.
Ein Benutzer kann keinen Bildlauf durch die Menüs auf einer Menüleiste durchführen. Sollten
Menüs die Breite der Menüleiste überschreiten, werden sie maskiert.
Sie können die MenuBar-Komponente nicht für Bildschirmleseprogramme verfügbar machen.
434
Kapitel 4: Komponenten-Referenz
Mit der MenuBar-Komponente interagieren (nur Flash Professional)
Sie können Maus und Tastatur verwenden, um mit einer MenuBar-Komponente zu interagieren.
Wenn Sie den Mauszeiger über einen Menüaktivator ziehen, wird die Beschriftung des Aktivators
durch einen nach außen gestellten Rand hervorgehoben.
Verfügt eine MenuBar-Instanz über den Eingabefokus (entweder durch Klicken oder
Verwendung der Tabulatortaste), kann sie mit Hilfe der folgenden Tasten gesteuert werden:
Taste
Beschreibung
Nach-unten-Taste
Verschiebt die Auswahl um eine Menüzeile nach unten.
Nach-oben-Taste
Verschiebt die Auswahl um eine Menüzeile nach oben.
Nach-rechts-Taste
Verschiebt die Auswahl zur nächsten Schaltfläche.
Nach-links-Taste
Verschiebt die Auswahl zur vorherigen Schaltfläche.
Eingabe-/Escape-Taste
Schließt ein geöffnetes Menü.
Hinweis: Ein geöffnetes Menü kann nicht durch Drücken der Tabulatortaste geschlossen werden.
Sie müssen entweder ein Element auswählen oder das Menü durch Drücken der Escape-Taste
schließen.
MenuBar-Komponente verwenden (nur Flash Professional)
Mit der MenuBar-Komponente können Sie dem oberen Rand einer Anwendung einen Satz von
Menüs hinzufügen (zum Beispiel Datei, Bearbeiten, Fenster usw.).
Parameter der MenuBar-Komponente
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder KomponentenInspektor für jede MenuBar-Komponenteninstanz festlegen:
Ein Array, das der MenuBar-Komponente Menüaktivatoren mit bestimmten
Beschriftungen hinzufügt. Der Standardwert ist [] (leeres Array).
labels
Mit Hilfe von ActionScript-Anweisungen können Sie diese und weitere Optionen für die
MenuBar-Komponente über deren Eigenschaften, Methoden und Ereignisse steuern. Weitere
Informationen finden Sie unter „MenuBar-Klasse“ auf Seite 438.
Anwendungen mit der MenuBar-Komponente erstellen
In diesem Beispiel ziehen Sie eine MenuBar-Komponente auf die Bühne, fügen Code hinzu, um
die Instanz mit Menüs zu verwenden, und weisen den Menüs Listener zu, die auf die Auswahl
von Menüelementen reagieren sollen.
So verwenden Sie eine MenuBar-Komponente in einer Anwendung:
1 Wählen Sie Datei > Neu, um ein neues Flash-Dokument zu erstellen.
2 Ziehen Sie die MenuBar-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
3 Positionieren Sie das Menü im oberen Bereich der Bühne, um ein Standard-Layout zu erstellen.
4 Wählen Sie die MenuBar-Komponente aus, und geben Sie im Eigenschafteninspektor den
Instanznamen meineMenuBar ein.
MenuBar-Komponente (nur Flash Professional)
435
5 Geben Sie im Bedienfeld Aktionen in Bild 1 den folgenden Code ein:
var menu = meineMenuBar.addMenu("File");
menu.addMenuItem({label:"New", instanceName:"newInstance"});
menu.addMenuItem({label:"Open", instanceName:"openInstance"});
menu.addMenuItem({label:"Close", instanceName:"closeInstance"});
Dieser Code fügt der Menüleiste ein Menü File (Datei) hinzu. Anschließend fügt er über die
Menu-API drei weitere Menüelemente hinzu: New (Neu), Open (Öffnen) und Close
(Schließen).
6 Geben Sie im Bedienfeld Aktionen in Bild 1 den folgenden Code ein:
var listen = new Object();
listen.change = function(evt){
var menu = evt.menu;
var item = evt.menuItem
if (item == menu.newInstance){
meinNew();
trace(item);
}else if (item == menu.openInstance){
meinOpen()
trace(item);
}
}
menu.addEventListener("change",listen);
Dieser Code erstellt das Listener-Objekt listen, das das Ereignisobjekt evt einsetzt, um die
Auswahl von Menüelementen abzufangen.
Hinweis: Sie müssen die Methode addEventListener aufrufen, um den Listener mit der
Menüinstanz, nicht mit der Menüleisteninstanz, zu registrieren.
7 Wählen Sie Steuerung > Film testen, um die MenuBar-Komponente zu testen.
MenuBar-Komponenten anpassen (nur Flash Professional)
Diese Komponente passt seine Größe entsprechend der Aktivatorbeschriftungen an, die über die
dataProvider-Eigenschaft oder die Methoden der MenuBar-Klasse bereitgestellt werden. Wenn
sich eine Aktivatorschaltfläche in einer Menüleiste befindet, behält sie eine feste Größe, die von
Schriftstilen und Textlänge abhängig ist.
Stile mit der MenuBar-Komponente verwenden
Die MenuBar-Komponente erstellt für jedes Menü in einer Gruppe eine Aktivatorbeschriftung.
Mit Hilfe von Stilen können Sie die Darstellung von Aktivatorbeschriftungen ändern. MenuBarKomponenten unterstützen folgende Kranz-Stile:
436
Stil
Beschreibung
themeColor
Die Hervorhebungsfarbe für ausgewählte Elemente. Dies ist der
einzige Farbstil, der den Wert nicht übernimmt. Mögliche Wert sind
„haloGreen“, „haloBlue“ und „haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
Kapitel 4: Komponenten-Referenz
Stil
Beschreibung
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“ (kursiv).
fontWeight
Das Schriftgewicht für den Text: „normal“ oder „bold“ (fett).
textDecoration
Textauszeichnung; mögliche Werte sind „none“ (keine) und
„underline“ (unterstrichen).
popupDuration
Die Anzahl von Millisekunden, nach denen ein Menü eingeblendet
wird. Der Standardwert ist 0.
Die MenuBar-Komponente verwendet zudem die RectBorder-Klasse, um eingelassene oder nach
außen gestellte Hervorhebungen um die Beschriftung zu zeichnen, wenn ein Benutzer damit
interagiert. Mit der Methode setStyle() (siehe UIObject.setStyle()) können Sie die
folgenden RectBorder-Stileigenschaften ändern:
RectBorder-Stile
Randposition
borderColor
a
highlightColor
b
borderColor
c
shadowColor
d
borderCapColor
e
shadowCapColor
f
shadowCapColor
g
borderCapColor
h
Mit den Stileigenschaften werden die folgenden Positionen für den Rand festgelegt:
Skins mit der MenuBar-Komponente verwenden
Die visuellen Zustände der MenuBar-Komponente werden mit Hilfe der Skins der MenuKomponente dargestellt. Weitere Informationen zu den Skins von Menu-Komponenten finden
Sie unter „Skins mit der Menu-Komponente verwenden“ auf Seite 414.
MenuBar-Komponente (nur Flash Professional)
437
MenuBar-Klasse
Vererbung
UIObject > UIComponent > MenuBar
ActionScript-Klassenname
mx.controls.MenuBar
Übersicht: Methoden der MenuBar-Klasse
Methode
Beschreibung
MenuBar.addMenu()
Fügt der Menüleiste ein Menü hinzu.
MenuBar.addMenuAt()
Fügt der Menüleiste ein Menü an einer bestimmten Position hinzu.
MenuBar.getMenuAt()
Ruft eine Referenz auf ein Menü an einer bestimmten Position ab.
MenuBar.getMenuEnabledAt() Gibt einen Booleschen Wert zurück, der angibt, ob ein Menü aktiviert
ist (true) oder nicht (false).
MenuBar.removeMenuAt()
Entfernt ein Menü an einer bestimmten Position aus einer Menüleiste.
MenuBar.setMenuEnabledAt() Ein Boolescher Wert, der angibt, ob ein Menü aktiviert ist (true) oder
nicht (false).
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der MenuBar-Klasse
Eigenschaft
Beschreibung
MenuBar.dataProvider
Das Datenmodell für eine Menüleiste.
MenuBar.labelField
Ein String, der jeweils bestimmt, welche Attribute von XMLNodeInstanzen als Beschriftungstext des Menüleistenelements dienen
sollen.
MenuBar.labelFunction
Eine Funktion, die bestimmt, was jeweils als Beschriftung eines
Menüleistenelements dargestellt werden soll.
Erbt alle Methoden von UIObject und UIComponent.
MenuBar.addMenu()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
meineMenuBar.addMenu(label)
Verwendung 2:
meineMenuBar.addMenu(label, menuDataProvider)
438
Kapitel 4: Komponenten-Referenz
Parameter
label
Ein String, der die Beschriftung des neuen Menüs angibt.
Eine XML- oder XMLNode-Instanz, die das Menü und seine Elemente
beschreibt. Wenn es sich bei dem Wert um eine XML-Instanz handelt, wird das firstChild der
Instanz verwendet.
menuDataProvider
Rückgaben
Eine Referenz auf das neue Menüobjekt.
Beschreibung
Methode; Mit Verwendung 1 wird ein einzelnes Menü und ein Menüaktivator mit dem im
Parameter label angegebenen Wert an das Ende der Menüleiste angefügt. Mit Verwendung 2
wird ein einzelnes Menü und ein Menüaktivator hinzugefügt, die in dem angegebenen XMLParameter menuDataProvider definiert werden.
Beispiel
Verwendung 1: Im folgenden Beispiel wird ein Menü File (Datei) hinzugefügt. Anschließend
werden mit der Menu.addMenuItem()-Methode die Menüelemente New (Neu) und Open
(Öffnen) hinzugefügt:
menu = meineMenuBar.addMenu("File");
menu.addMenuItem({label:"New", instanceName:newInstance"});
menu.addMenuItem("{label:"Open", instanceName:"openInstance"}");
Verwendung 2: Im folgenden Beispiel wird ein Menü Font (Schriftart) mit den Menüelementen
Bold (Fett) und Italic (Kursiv) hinzugefügt, die im menuDataProvider meinMenuDP2 definiert
werden:
var meinMenuDP2 = new XML();
meinMenuDP2.addMenuItem({type:"check", label:"Bold", instanceName:"check1"});
meinMenuDP2.addMenuItem({type:"check", label:"Italic",
instanceName:"check2"});
menu = meineMenuBar.addMenu("Font",meinMenuDP2);
MenuBar.addMenuAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
Verwendung 1:
meineMenuBar.addMenuAt(index, label)
Verwendung 2:
meineMenuBar.addMenuAt(index, label, menuDataProvider)
MenuBar-Komponente (nur Flash Professional)
439
Parameter
index Eine Ganzzahl, die angibt, an welcher Position das Menü eingefügt werden soll. Die erste
Position ist 0. Um das Menü an das Ende der Menüleiste anzufügen, rufen Sie
MenuBar.addMenu(label) auf.
label
Ein String, der die Beschriftung des neuen Menüs angibt.
Eine XML- oder XMLNode-Instanz, die das Menü beschreibt. Wenn es
sich bei dem Wert um eine XML-Instanz handelt, wird das firstChild der Instanz verwendet.
menuDataProvider
Rückgaben
Eine Referenz auf das neue Menüobjekt.
Beschreibung
Methode; Mit Verwendung 1 wird ein einzelnes Menü und ein Menüaktivator am angegebenen
index mit dem im label-Parameter festgelegten Wert hinzugefügt. Mit Verwendung 2 wird ein
einzelnes Menü und ein beschrifteter Menüaktivator an der angegebenen Indexposition
hinzugefügt. Der Inhalt des Menüs wird im menuDataProvider-Parameter definiert.
Beispiel
Verwendung 1: Im folgenden Beispiel wird ein Menü links von allen Menüs platziert:
menu = meineMenuBar.addMenuAt(0,"Toreador");
menu.addMenuItem("About Macromedia Flash", instanceName:"aboutInst");
menu.addMenuItem("Preferences", instanceName:"PrefInst");
Verwendung 2: Im folgenden Beispiel wird ein Menü Edit (Bearbeiten) mit den Menüelementen
Undo (Rückgängig), Redo (Wiederherstellen), Cut (Ausschneiden) und Copy (Kopieren)
hinzugefügt, die im menuDataProvider meinMenuDP definiert werden.
var meinMenuDP = new XML();
meinMenuDP.addMenuItem({label:"Undo", instanceName:"undoInst"});
meinMenuDP.addMenuItem({label:"Redo", instanceName:"redoInst"});
meinMenuDP.addMenuItem({type:"separator"});
meinMenuDP.addMenuItem({label:"Cut", instanceName:"cutInst"});
meinMenuDP.addMenuItem({label:"Copy", instanceName:"copyInst"});
meineMenuBar.addMenuAt(0,"Edit",meinMenuDP);
MenuBar.dataProvider
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineMenuBar.dataProvider
Beschreibung
Eigenschaft; das Datenmodell für Elemente in einer MenuBar-Komponente.
440
Kapitel 4: Komponenten-Referenz
Der menuBar.dataProvider ist ein XML-Knotenobjekt. Durch das Festlegen dieser Eigenschaft
wird das vorhandene Datenmodell der MenuBar-Komponente ersetzt. Jegliche Child-Knoten, die
der Datenprovider eventuell besitzt, werden als Elemente für die Menüleiste verwendet; jegliche
untergeordneten Knoten dieser Child-Knoten werden als Elemente für die entsprechenden
Menüs verwendet.
Der Standardwert ist undefined.
Hinweis: Allen XML- oder XMLNode-Instanzen werden automatisch die Methoden und
Eigenschaften der MenuDataProvider-API zugewiesen, wenn sie mit der MenuBar-Komponente
verwendet werden.
Beispiel
Im folgenden Beispiel wird eine XML-Datei importiert und der Eigenschaft
MenuBar.dataProvider zugewiesen.
var meinMenuBarDP = new XML();
meinMenuBarDP.load("http://meinServer.meineDomaene.com/source.xml");
meinMenuBarDP.onLoad = function(success){
if(success){
meineMenuBar.dataProvider = meinMenuBarDP;
} else {
trace("Fehler beim Laden der XML-Datei");
}
}
MenuBar.getMenuAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineMenuBar.getMenuAt(index)
Parameter
index
Eine Ganzzahl, die die Position des Menüs angibt.
Rückgaben
Ein Verweis auf das Menü an der angegebenen Indexposition. Dieser Wert ist undefined, sollte
sich an dieser Position kein Menü befinden.
Beschreibung
Methode; gibt eine Referenz auf das Menü an der angegebenen Indexposition zurück.
MenuBar-Komponente (nur Flash Professional)
441
Beispiel
Da die Methode getMenuAt() eine Instanz zurückgibt, ist es möglich, einem Menü an der
angegebenen Indexposition Elemente hinzuzufügen. Nachdem mit Hilfe des AuthoringParameters Label die Menüaktivatoren „File“ (Datei), „Edit“ (Bearbeiten) und „View“ (Ansicht)
erstellt wurden, fügt dieser Code im folgenden Beispiel dem Datei-Menü zur Laufzeit die
Elemente „New“ (Neu) und „Open“ (Öffnen) hinzu:
menu = meineMenuBar.getMenuAt(0);
menu.addMenuItem({label:"New",instanceName:"newInst"});
menu.addMenuItem({label:"Open",instanceName:"openInst"});
MenuBar.getMenuEnabledAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineMenuBar.getMenuEnabledAt(index)
Parameter
index
Der Index des MenuBar-Elements.
Rückgaben
Ein Boolescher Wert, der angibt, ob dieses Menü ausgewählt werden kann (true) oder nicht
(false).
Beschreibung
Methode; gibt einen Booleschen Wert zurück, der angibt, ob dieses Menü ausgewählt werden
kann (true) oder nicht (false).
Beispiel
Im folgenden Beispiel wird die Methode für das Menü an der ersten Stelle von meineMenuBar
aufgerufen:
meineMenuBar.getMenuEnabledAt(0);
MenuBar.labelField
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineMenuBar.labelField
442
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; ein String, der festlegt, welches Attribut des jeweiligen XML-Knotens als
Bezeichnungstext des Menüs verwendet werden soll. Diese Eigenschaft wird außerdem von der
Menüleiste an alle erstellten Menüs weitergegeben. Der Standardwert lautet label.
Nachdem die Eigenschaft dataProvider eingestellt wurde, ist diese Eigenschaft schreibgeschützt.
Beispiel
Im folgenden Beispiel wird das Attribut name jedes Knotens als Bezeichnungstext verwendet.
meineMenuBar.labelField = "name";
MenuBar.labelFunction
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineMenuBar.labelFunction
Beschreibung
Eigenschaft; eine Funktion, die festlegt, was in jedem Bezeichnungstext des Menüs dargestellt
werden soll. Die Funktion akzeptiert den XML-Knoten, der mit einem Element verknüpft ist, als
Parameter und gibt einen String zurück, der als Bezeichnungstext verwendet werden soll. Diese
Eigenschaft wird von der Menüleiste an alle erstellten Menüs weitergegeben. Der Standardwert ist
undefined.
Nachdem die Eigenschaft dataProvider eingestellt wurde, ist diese Eigenschaft schreibgeschützt.
Beispiel
Im folgenden Beispiel wird eine benutzerdefinierte Bezeichnung aus den Attributen der Knoten
erstellt.
meineMenuBar.labelFunction = function(node){
var a = node.attributes;
return "Der Preis für " + a.name + " beträgt " + a.price;
};
MenuBar.removeMenuAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineMenuBar.removeMenuAt(index)
MenuBar-Komponente (nur Flash Professional)
443
Parameter
index
Der Index des MenuBar-Elements.
Rückgaben
Ein Verweis auf das zurückgegebene MenuBar-Element. Wenn an dieser Position kein Element
vorhanden ist, wird der Wert undefined zurückgegeben.
Beschreibung
Methode; entfernt das Menü an der angegebenen Indexposition. Wenn an dieser Indexposition
kein Menüelement vorhanden ist, hat der Aufruf dieser Methode keine Auswirkungen.
Beispiel
Im folgenden Beispiel wird das Menü an der Indexposition 4 entfernt:
meineMenuBar.removeMenuAt(4);
MenuBar.setMenuEnabledAt()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineMenuBar.setMenuEnabledAt(index, boolean)
Parameter
index
Der Index des MenuBar-Elements, das festgelegt werden soll.
Ein Boolescher Wert, der angibt, ob das Menüelement an der angegebenen
Indexposition aktiviert ist (true) oder nicht (false).
boolean
Rückgaben
Keine.
Beschreibung
Methode; aktiviert das Menü an der angegebenen Indexposition. Sollte sich an dieser
Indexposition kein Menü befinden, hat das Aufrufen dieser Methode keine Wirkung.
Beispiel
Im folgenden Beispiel wird das MenuBarColumn-Objekt an der Indexposition 3 abgerufen:
meineMenuBar.setMenuEnabledAt(3);
444
Kapitel 4: Komponenten-Referenz
NumericStepper-Komponente
Die NumericStepper-Komponente ermöglicht es dem Benutzer, eine geordnete Zahlenmenge
schrittweise durchzugehen. Die Komponente besteht aus einer Zahl, die neben kleinen
Pfeilschaltflächen nach oben und unten angezeigt wird. Wenn ein Benutzer auf die Schaltflächen
klickt, wird die Zahl schrittweise erhöht oder gesenkt. Wenn der Benutzer auf eine der
Pfeilschaltflächen klickt, wird die Nummer um den Wert des Parameters stepSize erhöht, bis der
Benutzer entweder die Maus loslässt oder der Höchst- oder Mindestwert erreicht ist.
Der NumericStepper verarbeitet nur numerische Daten. Außerdem müssen Sie die Größe des
Steppers beim Authoring anpassen, wenn Sie mehr als zwei Ziffern anzeigen möchten (z. B. die
Zahlen 5246 oder 1,34).
Ein Stepper kann in einer Anwendung aktiviert oder deaktiviert werden. Im deaktivierten
Zustand kann der Stepper keine Maus- oder Tastatureingaben entgegen nehmen. Ein aktivierter
Stepper erhält den Fokus, wenn Sie darauf klicken oder ihn mit der Tabulatortaste ansteuern; der
interne Fokus wird auf das Textfeld gelegt. Wenn eine NumericStepper-Instanz den Fokus hat,
kann sie mit den folgenden Tasten gesteuert werden:
Taste
Beschreibung
<Nach-unten>
Der Wert ändert sich um eine Einheit.
<Links>
Verschiebt die Einfügemarke im Textfeld nach links.
<Rechts>
Verschiebt die Einfügemarke im Textfeld nach rechts.
<Umschalt>+<Tab>
Verschiebt den Fokus auf das vorherige Objekt.
<Tab>
Verschiebt den Fokus auf das nächste Objekt.
<Nach-oben>
Der Wert ändert sich um eine Einheit.
Weitere Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte
Fokusnavigation erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
Eine Live-Vorschau der einzelnen Stepperinstanzen spiegelt den Wert des Parameters value
wieder, der im Eigenschafteninspektor oder Komponenten-Inspektor beim Authoring angegeben
wurde. In der Live-Vorschau können die Stepper-Schaltflächen jedoch nicht mit der Maus oder
der Tastatur bedient werden.
Wenn Sie einer Anwendung die NumericStepper-Komponente hinzufügen, können Sie sie mit
Hilfe des Bedienfelds Eingabehilfen für Bildschirmleseprogramme zugänglich machen. Dazu
brauchen Sie lediglich die folgende Codezeile einzufügen:
mx.accessibility.NumericStepperAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie in der Hilfe „Flash verwenden“ unter
„Barrierefreie Inhalte erstellen“.
NumericStepper-Komponente
445
Mit der NumericStepper-Komponente arbeiten
Der NumericStepper kann überall verwendet werden, wo der Benutzer einen Zahlenwert
auswählen soll. Beispielsweise können Sie die NumericStepper-Komponente in einem Formular
einsetzen, damit ein Benutzer das Ablaufdatum seiner Kreditkarte eingeben kann. Oder Sie fügen
einen NumericStepper ein, damit der Benutzer eine Schriftgröße vergrößern oder verkleinern
kann.
NumericStepper-Parameter
Im Folgenden sind die Authoring-Parameter aufgeführt, die Sie für die einzelnen Instanzen der
NumericStepper-Komponente im Eigenschafteninspektor oder Komponenten-Inspektor
festlegen können:
value
legt den Wert des aktuellen Schritts fest. Der Standardwert ist 0.
legt den Mindestwert des Schritts fest. Der Standardwert ist 0.
minimum
maximum
stepSize
legt den Höchstwert des Schritts fest. Der Standardwert ist 10.
legt die Änderungseinheit für den Schritt fest. Der Standardwert ist 1.
Mit Hilfe von ActionScript-Anweisungen können Sie diese und weitere Optionen für die
NumericStepper-Komponenten über deren Eigenschaften, Methoden und Ereignisse steuern.
Weitere Informationen finden Sie unter NumericStepper-Klasse.
Eine Anwendung mit der NumericStepper-Komponente erstellen
Im folgenden Verfahren wird erklärt, wie Sie einer Anwendung beim Authoring die
NumericStepper-Komponente hinzufügen. In diesem Beispiel ermöglicht der Stepper einem
Benutzer, einem Film eine Bewertung zu geben; dabei können 0 bis 5 Sterne in Schritten von
einem halben Stern vergeben werden.
Führen Sie die folgenden Schritte aus, um eine Anwendung mit einer Button-Komponente
zu erstellen:
1 Ziehen Sie die NumericStepper-Komponente aus dem Bedienfeld Komponenten auf die
Bühne.
2 Geben Sie im Eigenschafteninspektor den Instanznamen starStepper ein.
3 Führen Sie im Eigenschafteninspektor die folgenden Schritte durch:
■ Geben Sie als Parameter minimum den Wert 0 ein.
■ Geben Sie als Parameter maximum den Wert 5 ein.
■ Geben Sie als Parameter stepSize den Wert 0,5 ein.
■ Geben Sie als Parameter value den Wert 0 ein.
4 Wählen Sie in der Zeitleiste das erste Bild aus, öffnen Sie das Bedienfeld Aktionen, und geben
Sie den folgenden Code ein:
movieRate = new Object();
movieRate.change = function (eventObject){
starChart.value = eventObject.target.value;
}
starStepper.addEventListener("change", movieRate);
446
Kapitel 4: Komponenten-Referenz
Die letzte Codezeile fügt der Instanz starStepper die Ereignisprozedur change hinzu. Die
Prozedur legt fest, dass der Movieclip starChart die Anzahl der Sterne anzeigt, die von der
Instanz starStepper angegeben wird. (Um diesen Code in Aktion zu sehen, müssen Sie den
Movieclip starChart mit der Eigenschaft value erstellen, der die Sterne anzeigt.)
Die NumericStepper-Komponente anpassen
Sie können die NumericStepper-Komponente sowohl beim Authoring als auch zur Laufzeit
horizontal und vertikal transformieren. Beim Authoring wählen Sie hierzu die Komponente auf
der Bühne aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle
unter Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode setSize()
(siehe UIObject.setSize()) oder beliebige anwendbare Eigenschaften und Methoden der
NumericStepper-Klasse. Weitere Informationen hierzu finden Sie unter NumericStepper-Klasse.
Wenn Sie die Größe der NumericStepper-Komponente ändern, wird dadurch die Größe der
Pfeilschaltflächen nach oben und unten nicht geändert. Wenn der Stepper so stark vergrößert
wird, dass er die Standardhöhe überschreitet, werden die Stepperschaltflächen oben und unten an
der Komponente fixiert. Die Stepperschaltflächen werden immer rechts vom Textfeld angezeigt.
Stile mit der NumericStepper-Komponente verwenden
Sie können Stileigenschaften festlegen, um das Erscheinungsbild einer Stepperinstanz zu ändern.
Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Die NumericStepper-Komponente unterstützt die folgenden Kranz-Stile:
Stil
Beschreibung
themeColor
Der Hintergrund einer Komponente. Dies ist der einzige Farbstil,
der den Wert nicht übernimmt. Mögliche Wert sind „haloGreen“,
„haloBlue“ und „haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“ (kursiv).
fontWeight
Das Schriftgewicht für den Text: „normal“ oder „bold“ (fett).
textDecoration
Textauszeichnung; mögliche Werte sind „none“ (keine) und
„underline“ (unterstrichen).
textAlign
Die Textausrichtung; entweder „left“, „right“ oder „center“.
NumericStepper-Komponente
447
Skins mit der NumericStepper-Komponente verwenden
Die visuellen Zustände der NumericStepper-Komponente werden mit Hilfe von Skins dargestellt.
Um die Skins der NumericStepper-Komponente beim Authoring darzustellen, ändern Sie die
Skinsymbole in der Bibliothek und exportieren dann die Komponente erneut als SWC-Datei.
Die Skinsymbole befinden sich im Ordner Flash UI Components 2/Themes/MMDefault/
Stepper Elements/states in der Bibliothek. Weitere Informationen finden Sie unter „SkinningKomponenten“ auf Seite 42.
Wenn ein Stepper aktiviert wird, werden die Schaltflächen nach oben und unten im Zustand
Over angezeigt, wenn der Zeiger über sie hinweg bewegt wird. Wenn auf die Schaltflächen
geklickt wird, werden sie im Zustand Down angezeigt. Wenn die Maustaste losgelassen wird,
kehren die Schaltflächen zum Zustand Over zurück. Wenn der Zeiger von den Schaltflächen weg
bewegt wird, während die Maustaste noch gedrückt ist, kehren die Schaltflächen zu ihrem
ursprünglichen Zustand zurück.
Wenn ein Stepper deaktiviert ist, wird unabhängig von der Benutzerinteraktion der Zustand
Disabled angezeigt.
Die NumericStepper-Komponente verwendet die folgenden Skineigenschaften:
448
Eigenschaft
Beschreibung
upArrowUp
Der Up-Status des Pfeils nach oben. Der Standardwert ist
StepUpArrowUp.
upArrowDown
Der Pressed-Status des Pfeils nach oben. Der Standardwert ist
StepUpArrowDown.
upArrowOver
Der Over-Status des Pfeils nach oben. Der Standardwert ist
StepUpArrowOver.
upArrowDisabled
Der Disabled-Status des Pfeils nach oben. Der Standardwert ist
StepUpArrowDisabled.
downArrowUp
Nach-unten-Pfeil im Up-Status (Schaltfläche nicht geklickt). Der
Standardwert ist StepDownArrowUp.
downArrowDown
Nach-unten-Pfeil im Down-Status (Schaltfläche geklickt). Der
Standardwert ist StepDownArrowDown.
downArrowOver
Nach-unten-Pfeil im Over-Status (Mauszeiger über der
Schaltfläche). Der Standardwert ist StepDownArrowOver.
downArrowDisabled
Nach-unten-Pfeil im Disabled-Status (Schaltfläche deaktiviert).
Der Standardwert ist StepDownArrowDisabled.
Kapitel 4: Komponenten-Referenz
NumericStepper-Klasse
Vererbung
UIObject > UIComponent > NumericStepper
ActionScript-Klassenname
mx.controls.NumericStepper
Die Eigenschaften der NumericStepper-Klasse ermöglichen Ihnen, den Mindest- und
Höchstschrittwert, die Größe der einzelnen Schritte und den aktuellen Wert des Schritts zur
Laufzeit anzugeben.
Wenn Sie eine Eigenschaft der NumericStepper-Klasse mit ActionScript einstellen, werden die
Parameter mit dem gleichen Namen im Eigenschafteninspektor und Komponenten-Inspektor
außer Kraft gesetzt.
Die NumericStepper-Komponente setzt das Standard-Fokusrechteck des Flash Players mit Hilfe
von FocusManager außer Kraft, um ein Fokusrechteck mit abgerundeten Ecken zu zeichnen.
Weitere Informationen finden Sie unter „Benutzerdefinierte Fokusnavigation erstellen“
auf Seite 28.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.NumericStepper.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meineNumericStepperInstance.version);.
Übersicht: Methoden der NumericStepper-Klasse
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der NumericStepper-Klasse
Eigenschaft
Beschreibung
NumericStepper.maximum
Eine Zahl, die den Höchstwert angibt.
NumericStepper.minimum
Eine Zahl, die den Mindestwert angibt.
NumericStepper.nextValue
Eine Zahl, die den nächsten Wert in der Folge angibt. Diese
Eigenschaft ist schreibgeschützt.
NumericStepper.previousValue Eine Zahl, die den vorherigen Wert in der Folge angibt. Diese
Eigenschaft ist schreibgeschützt.
NumericStepper.stepSize
Eine Zahl, die die Änderungseinheit für die einzelnen Schritte
festlegt.
NumericStepper.value
Eine Zahl, die den aktuellen Wert des Steppers angibt.
Erbt alle Eigenschaften von UIObject und UIComponent.
NumericStepper-Komponente
449
Übersicht: Ereignisse der NumericStepper-Klasse
Ereignis
Beschreibung
NumericStepper.change
Wird ausgelöst, wenn sich der Wert des Schritts ändert.
Erbt alle Ereignisse von UIObject und UIComponent.
NumericStepper.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(click){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.change = function(eventObject){
...
}
stepperInstance.addEventListener("change", listenerObject)
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn sich der Wert des Steppers
ändert.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
NumericStepper-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der
folgende Code, der an den Stepper meinStepper angehängt wird, sendet „_level0.meinStepper“
an das Bedienfeld Ausgabe:
on(click){
trace(this);
}
450
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (stepperInstance) setzt ein Ereignis (in diesem Fall change) ab, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel, das für ein Bild der Zeitleiste geschrieben wurde, wird eine Meldung an
das Bedienfeld Ausgabe gesendet, wenn ein Stepper namens meinNumericStepper geändert
wird. In der ersten Codezeile wird ein Listener-Objekt mit der Bezeichnung form erzeugt. In der
zweiten Zeile wird eine Funktion für das Ereignis change im Listener-Objekt definiert. Eine
trace-Aktion innerhalb der Funktion erzeugt anhand des automatisch übergebenen
Ereignisobjekts (in diesem Fall eventObj) eine Meldung. Die Eigenschaft target eines
Ereignisobjekts ist die Komponente, die das Ereignis generiert hat, in diesem Beispiel
meinNumericStepper. Der Zugriff auf die Eigenschaft NumericStepper.value erfolgt über die
Eigenschaft target des Ereignisobjekts. In der letzten Zeile wird die Methode
UIEventDispatcher.addEventListener() von meinNumericStepper aus aufgerufen, und das
Ereignis change und das Listener-Objekt form werden als Parameter an sie übergeben:
form = new Object();
form.change = function(eventObj){
// eventObj.target ist die Komponente, die das change-Ereignis generiert hat
// d. h. der NumericStepper.
trace("Wert geändert in " + eventObj.target.value);
}
meinNumericStepper.addEventListener("change", form);
NumericStepper.maximum
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
stepperInstance.maximum
Beschreibung
Eigenschaft; der Höchstwert des Steppers. Diese Eigenschaft kann eine Zahl mit bis zu drei
Dezimalstellen enthalten. Der Standardwert ist 10.
NumericStepper-Komponente
451
Beispiel
Im folgenden Beispiel wird der Höchstwert des Stepperbereichs auf 20 eingestellt:
meinStepper.maximum = 20;
Siehe auch
NumericStepper.minimum
NumericStepper.minimum
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
stepperInstance.minimum
Beschreibung
Eigenschaft; der Mindestwert des Steppers. Diese Eigenschaft kann eine Zahl mit bis zu drei
Dezimalstellen enthalten. Der Standardwert ist 0.
Beispiel
Im folgenden Beispiel wird der Mindestwert des Stepperbereichs auf 100 eingestellt:
meinStepper.minimum = 100;
Siehe auch
NumericStepper.maximum
NumericStepper.nextValue
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
stepperInstance.nextValue
Beschreibung
Eigenschaft (schreibgeschützt); der nächste Wert in der Folge. Diese Eigenschaft kann eine Zahl
mit bis zu drei Dezimalstellen enthalten.
452
Kapitel 4: Komponenten-Referenz
Beispiel
Im folgenden Beispiel wird die Eigenschaft stepSize auf 1 und der Anfangswert auf 4 eingestellt,
wodurch sich als Wert von nextValue 5 ergibt:
meinStepper.stepSize = 1;
meinStepper.value = 4;
trace(meinStepper.nextValue);
Siehe auch
NumericStepper.previousValue
NumericStepper.previousValue
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
stepperInstance.previousValue
Beschreibung
Eigenschaft (schreibgeschützt); der vorherige Wert in der Folge. Diese Eigenschaft kann eine Zahl
mit bis zu drei Dezimalstellen enthalten.
Beispiel
Im folgenden Beispiel wird die Eigenschaft stepSize auf 1 und der Anfangswert auf 4 eingestellt,
wodurch sich als Wert von previousValue 3 ergibt:
meinStepper.stepSize = 1;
meinStepper.value = 4;
trace(meinStepper.previousValue);
Siehe auch
NumericStepper.nextValue
NumericStepper.stepSize
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
stepperInstance.stepSize
NumericStepper-Komponente
453
Beschreibung
Eigenschaft; gibt an, um wie viel der aktuelle Wert geändert wird. Der Standardwert ist 1. Dieser
Wert kann nicht 0 sein. Diese Eigenschaft kann eine Zahl mit bis zu drei Dezimalstellen
enthalten.
Beispiel
Im folgenden Beispiel wird er aktuelle Wert auf 2 und die Einheit für stepSize ebenfalls auf 2
gesetzt. Der Wert von nextValue ist 4:
meinStepper.value = 2;
meinStepper.stepSize = 2;
trace(meinStepper.nextValue);
NumericStepper.value
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
stepperInstance.value
Beschreibung
Eigenschaft; der aktuelle Wert, der im Textbereich des Steppers angezeigt wird. Der Wert wird
nicht zugewiesen, wenn er nicht dem Bereich und der Schrittgröße des Steppers entspricht, die in
der Eigenschaft stepSize definiert sind. Diese Eigenschaft kann eine Zahl mit bis zu drei
Dezimalstellen enthalten.
Beispiel
Im folgenden Beispiel wird der aktuelle Wert value des Steppers auf 10 eingestellt, und der Wert
wird an das Bedienfeld Ausgabe gesendet:
meinStepper.value = 10;
trace(meinStepper.value);
454
Kapitel 4: Komponenten-Referenz
PopUpManager-Klasse
ActionScript-Klassenname
mx.managers.PopUpManager
Mit der PopUpManager-Klasse können Sie überlappende Fenster erstellen, die modal oder nicht
modal sein können. (Ein modusabhängiges Fenster erlaubt, während es aktiv ist, keine
Interaktion mit anderen Fenstern.) Sie können PopUpManager.createPopUp() aufrufen, um ein
überlappendes Fenster zu erstellen, und PopUpManager.deletePopUp() in der Fenster-Instanz
aufrufen, um ein Popupfenster zu löschen.
Übersicht: Methoden der PopUpManager-Klasse
Ereignis
Beschreibung
PopUpManager.createPopUp()
Erstellt ein Popupfenster.
PopUpManager.deletePopUp()
Löscht ein Popupfenster, das durch einen Aufruf an
PopUpManager.createPopUp() erstellt wurde.
PopUpManager.createPopUp()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
PopUpManager.createPopUp(parent, class, modal [, initobj, outsideEvents])
Parameter
Eine Referenz auf ein übergeordnetes Popupfenster.
parent
class
Eine Referenz auf die zu erstellende Objektklasse.
modal
Ein Boolescher Wert, der angibt, ob das Fenster modal (true) oder nicht modal ist
(false).
initobj
Ein Objekt, das die Initialisierungseigenschaften enthält. Dieser Parameter ist
optional.
Ein Boolescher Wert, der angibt, ob ein Ereignis ausgelöst wird, wenn der
Benutzer außerhalb des Fensters klickt (true), oder ob kein Ereignis ausgelöst wird (false).
Dieser Parameter ist optional.
outsideEvents
Rückgaben
Eine Referenz auf das erstellte Fenster.
Beschreibung
Methode; im Falle eines modusabhängigen Fensters wird bei einem Aufruf an createPopUp()
das oberste Parent-Fenster gesucht und eine Instanz der Klasse erstellt. Im Falle eines
modusunabhängigen Fensters erstellt ein Aufruf an createPopUp() eine Instanz der Klasse als
Child des Parent-Fensters.
PopUpManager-Klasse
455
Beispiel
Mit dem folgenden Code wird ein modusabhängiges Fenster erstellt, wenn auf die Schaltfläche
geklickt wird:
lo = new Object();
lo.click = function(){
mx.managers.PopUpManager.createPopUp(_root, mx.containers.Window, true);
}
button.addEventListener("click", lo);
PopUpManager.deletePopUp()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004 und Flash MX Professional 2004
Verwendung
windowInstance.deletePopUp();
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; löscht ein Popupfenster und entfernt den modusabhängigen Zustand. Der Aufruf an
PopUpManager.deletePopUp() muss vom überlappten Fenster vorgenommen werden, wenn es
entfernt wird.
Beispiel
Mit dem folgenden Code wird ein modusabhängiges Fenster namens win mit einer Schaltfläche
zum Schließen erstellt und das Fenster geschlossen, wenn auf die Schaltfläche geklickt wird:
import mx.managers.PopUpManager
import mx.containers.Window
win = PopUpManager.createPopUp(_root, Window, true, {closeButton:true});
lo = new Object();
lo.click = function(){
win.deletePopUp();
}
win.addEventListener("click", lo);
456
Kapitel 4: Komponenten-Referenz
ProgressBar-Komponente
Die ProgressBar-Komponente zeigt den Fortschritt an, während der Benutzer darauf wartet, dass
der Inhalt geladen wird. Der Fortschritt beim Laden kann bestimmt oder unbestimmt sein. Eine
bestimmte Fortschrittleiste ist eine lineare Darstellung des Fortschritts einer Aufgabe im
Zeitverlauf; sie wird verwendet, wenn bekannt ist, wie groß der geladene Inhalt ist. Eine
unbestimmte Fortschrittleiste wird verwendet, wenn die Größe des geladenen Inhalts nicht
bekannt ist. Sie können eine Bezeichnung hinzufügen, um den Fortschritt beim Laden des Inhalts
anzuzeigen.
Komponenten werden standardmäßig in das erste Bild exportiert. Das bedeutet, dass
Komponenten vor dem Rendern des ersten Bildes in eine Anwendung geladen werden. Wenn Sie
eine Vorablade-Funktion für eine Anwendung erstellen möchten, müssen Sie in den einzelnen
Dialogfeldern für die Verknüpfungseigenschaften die Option In erstes Bild exportieren
deaktivieren. (Optionen im Bedienfeld Bibliothek > Verknüpfung). Für die ProgressBar wählen
Sie allerdings In erstes Bild exportieren, da diese beim Streamen anderer Inhalte in den Flash
Player zuerst angezeigt werden muss.
Eine Live-Vorschau der einzelnen ProgressBar-Instanzen spiegelt die Änderungen wieder, die im
Eigenschafteninspektor oder Komponenten-Inspektor beim Authoring vorgenommen wurden.
Die folgenden Parameter werden in der Live-Vorschau dargestellt: conversion, direction, label,
labelPlacement, mode und source.
Mit der ProgressBar-Komponente arbeiten
Mit einer Fortschrittleiste können Sie den Fortschritt des Ladevorgangs anzeigen. Für den
Benutzer ist dieses Feedback bei der Interaktion mit einer Anwendung unerlässlich.
Es gibt mehrere Modi, in denen Sie die ProgressBar-Komponente verwenden können; den Modus
stellen Sie mit dem Parameter mode ein. Am häufigsten werden die Modi event und polled
verwendet. Diese Modi geben mit dem Parameter source an, ob der Ladevorgang die Ereignisse
progress und complete erzeugt (Ereignismodus) oder die Methoden getBytesLoaded und
getsBytesTotal übergibt (Abfragemodus). Außerdem können Sie die ProgressBar-Komponente
im manuellen Modus einsetzen, indem Sie die Eigenschaften maximum, minimum und
indeterminate zusammen mit Aufrufen an die Methode ProgressBar.setProgress()
einstellen.
ProgressBar-Parameter
Im Folgenden sind die Authoring-Parameter aufgeführt, die Sie für die einzelnen Instanzen der
ProgressBar-Komponente im Eigenschafteninspektor oder Komponenten-Inspektor festlegen
können:
Der Modus, in dem die Fortschrittleiste betrieben wird. Dieser Parameter kann folgende
Werte annehmen: event, polled oder manual. Der Standardwert lautet event.
mode
source
Ein String, der in ein Objekt konvertiert wird, das den Instanznamen der Quelle
darstellt.
Die Richtung, in der die Fortschrittleiste gefüllt wird. Dieser Wert kann right oder
left sein; der Standardwert ist right.
direction
ProgressBar-Komponente
457
Der Text, der den Ladevorgang meldet. Dieser Parameter ist ein String im Format „%1
von %2 geladen (%3%%)“; %1 ist ein Platzhalter für die Anzahl der bisher geladenen Byte,
%2 ein Platzhalter für die Gesamtzahl an Byte und %3 ein Platzhalter für den Prozentsatz des
bereits geladenen Inhalts. Die Zeichen „%%“ sind ein Platzhalter für das Zeichen „%“. Wenn der
Wert für %2 unbekannt ist, wird er durch „??“ ersetzt. Wenn ein Wert undefined ist, wird die
Bezeichnung nicht angezeigt.
label
labelPlacement Die Position der Bezeichnung relativ zur Fortschrittleiste. Dieser Parameter
kann folgende Werte annehmen: top, bottom, left, right, center. Der Standardwert ist bottom.
Eine Zahl, durch die die Werte %1 und %2 im Bezeichnungsstring vor der Anzeige
dividiert werden. Der Standardwert ist 1.
conversion
Sie können diese und zusätzliche Optionen für die ProgressBar-Komponente mit den
Eigenschaften, Methoden und Ereignissen von ActionScript steuern. Weitere Informationen
finden Sie unter ProgressBar-Klasse.
Eine Anwendung mit der ProgressBar-Komponente erstellen
Im folgenden Verfahren wird erklärt, wie Sie einer Anwendung beim Authoring eine ProgressBarKomponente hinzufügen. Im folgenden Beispiel wird die Fortschrittleiste im Ereignismodus
verwendet. Im Ereignismodus muss der geladene Inhalt die Ereignisse progress und complete
erzeugen, mit denen die Fortschrittleiste den Fortschritt anzeigt. Diese Ereignisse werden von der
Loader-Komponente erzeugt. Weitere Informationen finden Sie unter „Loader-Komponente“
auf Seite 349.
So erstellen Sie eine Anwendung mit der ProgressBar-Komponente im Ereignismodus:
1 Ziehen Sie die ProgressBar-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Führen Sie im Eigenschafteninspektor die folgenden Schritte durch:
Geben Sie den Instanznamen pBar ein.
■ Wählen Sie event für den Parameter mode.
Ziehen Sie die Loader-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
Geben Sie im Eigenschafteninspektor als Instanznamen loader ein.
Wählen Sie die Fortschrittleiste auf der Bühne aus, und geben Sie im Eigenschafteninspektor
für den Parameter source die Angabe loader ein.
Wählen Sie das erste Bild in der Zeitleiste aus, öffnen Sie das Bedienfeld Aktionen, und geben
Sie den folgenden Code ein, mit dem eine JPEG-Datei in die Loader-Komponente geladen
wird:
■
3
4
5
6
loader.autoLoad = false;
loader.contentPath = "http://imagecache2.allposters.com/images/86/
017_PP0240.jpg";
pBar.source = loader;
// Der Ladevorgang beginnt erst, wenn die Methode „load“ aufgerufen wird
loader.load();
Im folgenden Beispiel wird die Fortschrittleiste im Abfragemodus verwendet. Im Abfragemodus
zeigt die Fortschrittleiste den Fortschritt mit Hilfe der Methoden getBytesLoaded und
getBytesTotal des Quellobjekts an.
458
Kapitel 4: Komponenten-Referenz
So erstellen Sie eine Anwendung mit der ProgressBar-Komponente im Abfragemodus:
1 Ziehen Sie die ProgressBar-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Führen Sie im Eigenschafteninspektor die folgenden Schritte durch:
Geben Sie den Instanznamen pBar ein.
Wählen Sie polled für den Parameter mode.
■ Geben Sie loader für den Parameter source ein.
3 Wählen Sie Bild 1 in der Zeitleiste aus, öffnen Sie das Bedienfeld Aktionen, und geben Sie den
folgenden Code ein, mit dem ein Soundobjekt namens loader erstellt und die Methode
loadSound() aufgerufen wird, um einen Sound in das Soundobjekt zu laden:
■
■
var loader:Object = new Sound();
loader.loadSound("http://www.neuerordner.de/mx2004.wav", true);
Im folgenden Beispiel wird die Fortschrittleiste im manuellen Modus verwendet. Im manuellen
Modus müssen Sie die Eigenschaften maximum, minimum und indeterminate in Verbindung mit
der Methode setProgress() festlegen, um den Fortschritt anzuzeigen. Die Eigenschaft source
stellen Sie im manuellen Modus nicht ein.
So erstellen Sie eine Anwendung mit der ProgressBar-Komponente im Ereignismodus:
1 Ziehen Sie die ProgressBar-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Führen Sie im Eigenschafteninspektor die folgenden Schritte durch:
Geben Sie den Instanznamen pBar ein.
Wählen Sie manual für den Parameter mode.
3 Wählen Sie Bild 1 in der Zeitleiste aus, öffnen Sie das Bedienfeld Aktionen, und geben Sie den
folgenden Code ein, mit dem die Fortschrittleiste für jeden Dateidownload, der einen Aufruf
an die Methode setProgress() verwendet, manuell aktualisiert wird:
■
■
for(var:Number i=1;
// Code zum Laden
// Code zum Laden
pBar.setProgress(i,
}
i <= total; i++){
der Datei einfügen
der Datei einfügen
total);
Die ProgressBar-Komponente anpassen
Sie können die ProgressBar-Komponente sowohl beim Authoring als auch zur Laufzeit horizontal
transformieren. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne aus und
verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit verwenden Sie UIObject.setSize().
Die Größe des linken und rechten Endes der Fortschrittleiste und der Grafik sind fixiert. Wenn
Sie die Größe einer Fortschrittleiste ändern, wird der mittlere Bereich der Fortschrittleiste
vergrößert bzw. verkleinert, bis er zwischen die beiden Enden passt. Wenn eine Fortschrittleiste zu
klein ist, wird sie möglicherweise nicht korrekt dargestellt.
ProgressBar-Komponente
459
Stile mit der ProgressBar-Komponente verwenden
Sie können Stileigenschaften festlegen, um das Erscheinungsbild einer Fortschrittleisten-Instanz
zu ändern. Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Die ProgressBar-Komponente unterstützt die folgenden Kranz-Stile:
Stil
Beschreibung
themeColor
Der Hintergrund einer Komponente. Dies ist der einzige Farbstil, der
den Wert nicht übernimmt. Mögliche Wert sind „haloGreen“,
„haloBlue“ und „haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“ (kursiv).
fontWeight
Das Schriftgewicht für den Text: „normal“ oder „bold“ (fett).
textDecoration
Textauszeichnung; mögliche Werte sind „none“ (keine) und
„underline“ (unterstrichen).
Skins mit der ProgressBar-Komponente verwenden
Die ProgressBar-Komponente zeigt ihre Zustände mit Hilfe der folgenden Movieclipsymbole an:
TrackMiddle, TrackLeftCap, TrackRightCap und BarMiddle, BarLeftCap, BarRightCap und
IndBar. Das Symbol IndBar wird für eine unbestimmte Fortschrittleiste verwendet. Um die Skins
der ProgressBar-Komponente beim Authoring darzustellen, ändern Sie die Symbole in der
Bibliothek und exportieren dann die Komponente erneut als SWC-Datei. Die Symbole befinden
sich im Ordner Flash UI Components 2/Themes/MMDefault/ProgressBar Elements in der
Bibliothek der Datei HaloTheme.fla oder SampleTheme.fla. Weitere Informationen finden Sie
unter „Skinning-Komponenten“ auf Seite 42.
Wenn Sie mit der Methode UIObject.createClassObject() eine Instanz der ProgressBarKomponente dynamisch (zur Laufzeit) erstellen, können Sie auch die Skins dynamisch erzeugen.
Sie können einer Komponente zur Laufzeit Skins zuweisen, indem Sie die Skin-Eigenschaften des
Parameters initObject anpassen, der an die Methode createClassObject() übergeben wird.
Über die Skin-Eigenschaften werden die Namen für die Symbole definiert, die den Zustand der
Fortschrittleiste beschreiben.
460
Kapitel 4: Komponenten-Referenz
Die ProgressBar-Komponente verwendet die folgenden Skineigenschaften:
Eigenschaft
Beschreibung
progTrackMiddleName
Der Mittelteil der Spur, der erweitert werden kann. Der
Standardwert ist ProgTrackMiddle.
progTrackLeftName
Das linke Ende, das eine feste Größe hat. Der Standardwert ist
ProgTrackLeft.
progTrackRightName
Das rechte Ende, das eine feste Größe hat. Der Standardwert ist
ProgTrackRight.
progBarMiddleName
Die Grafik in der Mitte der Leiste, die erweitert werden kann. Der
Standardwert ist ProgBarMiddle.
progBarLeftName
Das linke Ende der Leiste, das eine feste Größe hat. Der
Standardwert ist ProgBarLeft.
progBarRightName
Das rechte Ende der Leiste, das eine feste Größe hat. Der
Standardwert ist ProgBarRight.
progIndBarName
Die Grafik für eine unbestimmte Leiste. Der Standardwert ist
ProgIndBar.
ProgressBar-Klasse
Vererbung
UIObject > ProgressBar
ActionScript-Klassenname
mx.controls.ProgressBar
Wenn Sie eine Eigenschaft der ProgressBar-Klasse mit ActionScript einstellen, werden die
Parameter mit dem gleichen Namen im Eigenschafteninspektor und Komponenten-Inspektor
außer Kraft gesetzt.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.ProgressBar.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meinProgressBarInstance.version);
Übersicht: Methoden der ProgressBar-Klasse
Methode
Beschreibung
ProgressBar.setProgress()
Legt den Fortschritt der Leiste im manuellen Modus fest.
Erbt alle Methoden von UIObject.
ProgressBar-Komponente
461
Übersicht: Eigenschaften der ProgressBar-Klasse
Eigenschaft
Beschreibung
ProgressBar.conversion
Eine Zahl, mit der die Werte für die bisher geladenen Byte und die
insgesamt zu ladenden Byte konvertiert werden.
ProgressBar.direction
Die Füllungsrichtung der Fortschrittleiste.
ProgressBar.indeterminate
Gibt an, dass nicht bekannt ist, wie viel Byte die Quelle insgesamt
hat.
ProgressBar.label
Der Begleittext für die Fortschrittleiste.
ProgressBar.labelPlacement
Die Position der Bezeichnung relativ zur Fortschrittleiste.
ProgressBar.maximum
Der Höchstwert der Fortschrittleiste im manuellen Modus.
ProgressBar.minimum
Der Mindestwert der Fortschrittleiste im manuellen Modus.
ProgressBar.mode
Der Modus, in dem die Fortschrittleiste den Inhalt lädt.
ProgressBar.percentComplete Eine Zahl, die angibt, wie viel Prozent bereits geladen wurde.
ProgressBar.source
Der zu ladende Inhalt, dessen Fortschritt von der Fortschrittleiste
überwacht wird.
ProgressBar.value
Gibt an, wie weit der Ladevorgang bereits fortgeschritten ist. Diese
Eigenschaft ist schreibgeschützt.
Erbt alle Eigenschaften von UIObject.
Übersicht: Ereignisse der ProgressBar-Klasse
Ereignis
Beschreibung
ProgressBar.complete
Wird ausgelöst, wenn der Ladevorgang abgeschlossen ist.
ProgressBar.progress
Wird ausgelöst, während der Inhalt im Ereignis- oder Abfragemodus
geladen wird.
Erbt alle Ereignisse von UIObject.
ProgressBar.complete
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
462
Kapitel 4: Komponenten-Referenz
Verwendung
Verwendung 1:
on(complete){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.complete = function(eventObject){
...
}
pBar.addEventListener("complete", listenerObject)
Ereignisobjekt
Zusätzlich zu den standardmäßigen Eigenschaften von Ereignisobjekten sind für das Ereignis
ProgressBar.complete noch zwei weitere Eigenschaften definiert: current (der geladene Wert
gleich total), und total (der Gesamtwert).
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn der Ladevorgang
abgeschlossen ist.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
ProgressBar-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der
folgende Code, der an die Instanz pBar angehängt wird, sendet „_level0.pBar“ an das Bedienfeld
Ausgabe:
on(complete){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (pBar) setzt ein Ereignis (in diesem Fall complete) ab, und das Ereignis
wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten ListenerObjekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von Ihnen
definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf das
Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
ProgressBar-Komponente
463
Beispiel
Im folgenden Beispiel wird das Listener-Objekt form mit der Rückruffunktion complete erstellt,
das eine Meldung mit dem Wert der Instanz pBar an das Bedienfeld Ausgabe sendet:
form.complete = function(eventObj){
// eventObj.target ist die Komponente, die das change-Ereignis generiert hat
// d. h. die Fortschrittleiste.
trace("Wert geändert in " + eventObj.target.value);
}
pBar.addEventListener("complete", form);
Siehe auch
UIEventDispatcher.addEventListener()
ProgressBar.conversion
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.conversion
Beschreibung
Eigenschaft; eine Zahl, die einen Konvertierungswert für die empfangenen Werte festlegt. Sie
dividiert die aktuellen und Gesamtwerte, rundet sie ab und zeigt den konvertierten Wert in der
Eigenschaft label an. Der Standardwert ist 1.
Beispiel
Der folgende Code zeigt den Wert des Fortschritts beim Ladevorgang in Kilobyte an:
pBar.conversion = 1024;
ProgressBar.direction
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.direction
Beschreibung
Eigenschaft; gibt die Füllungsrichtung der Fortschrittleiste an. Der Standardwert ist right.
464
Kapitel 4: Komponenten-Referenz
Beispiel
Mit dem folgenden Code wird die Fortschrittleiste von rechts nach links gefüllt:
pBar.direction = "left";
ProgressBar.indeterminate
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.indeterminate
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob die Fortschrittleiste eine gestreifte Füllung
aufweist und die Größe der geladenen Quelle unbekannt ist (true) oder ob die Leiste eine
durchgängige Füllung aufweist und die Größe der geladenen Quelle bekannt ist (false).
Beispiel
Mit dem folgenden Code wird eine bestimmte Fortschrittleiste mit einer durchgängigen Füllung
erstellt, die von links nach rechts fortschreitet:
pBar.direction = "right";
pBar.indeterminate = false;
ProgressBar.label
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.label
Beschreibung
Eigenschaft; Text, der den Fortschritt beim Ladevorgang angibt. Diese Eigenschaft ist ein String
im Format „%1 von %2 geladen (%3%%)“; %1 ist ein Platzhalter für die Anzahl der bisher
geladenen Byte, %2 ein Platzhalter für die Gesamtzahl an Byte und %3 ein Platzhalter für den
Prozentsatz des bereits geladenen Inhalts. Die Zeichen „%%“ sind ein Platzhalter für das Zeichen
„%“. Wenn der Wert für %2 unbekannt ist, wird er durch „??“ ersetzt. Wenn ein Wert undefined
ist, wird die Bezeichnung nicht angezeigt. Der Standardwert ist LOADING %3%%
ProgressBar-Komponente
465
Beispiel
Mit dem folgenden Code wird für den Text, der neben der Fortschrittleiste angezeigt wird, das
Format „4 Dateien geladen“ festgelegt:
pBar.label = "%1 Dateien geladen";
Siehe auch
ProgressBar.labelPlacement
ProgressBar.labelPlacement
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.labelPlacement
Beschreibung
Eigenschaft; legt die Position der Bezeichnung relativ zur Fortschrittleiste fest. Mögliche Werte
sind left, right, top, bottom, und center.
Beispiel
Mit dem folgenden Code wird die Bezeichnung über der Fortschrittleiste angezeigt:
pBar.label = "%1 von %2 geladen (%3%%)";
pBar.labelPlacement = "top";
Siehe auch
ProgressBar.label
ProgressBar.maximum
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.maximum
Beschreibung
Eigenschaft; der größte Wert für die Fortschrittleiste, wenn die Eigenschaft ProgressBar.mode
auf manual eingestellt ist.
466
Kapitel 4: Komponenten-Referenz
Beispiel
Mit dem folgenden Code wird die Eigenschaft maximum auf die Gesamtbildzahl einer zu
ladenden Flash-Anwendung eingestellt:
pBar.maximum = _totalframes;
Siehe auch
ProgressBar.minimum, ProgressBar.mode
ProgressBar.minimum
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.minimum
Beschreibung
Eigenschaft; der kleinste Fortschrittwert für die Fortschrittleiste, wenn die Eigenschaft
ProgressBar.mode auf manual eingestellt ist.
Beispiel
Mit dem folgenden Code wird der Mindestwert für die Fortschrittleiste festgelegt:
pBar.minimum = 0;
Siehe auch
ProgressBar.maximum, ProgressBar.mode
ProgressBar.mode
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.mode
ProgressBar-Komponente
467
Beschreibung
Eigenschaft; der Modus, in dem die Fortschrittleiste den Inhalt lädt. Dieser Parameter kann
folgende Werte annehmen: event, polled oder manual. Am häufigsten werden die Modi event
und polled verwendet. Diese Modi geben mit dem Parameter source an, ob beim Ladevorgang
wie bei einer Loader-Komponente die Ereignisse progress und complete erzeugt
(Ereignismodus) oder wie bei einem MovieClip-Objekt die Methoden getBytesLoaded und
getsBytesTotal übergeben werden (Abfragemodus). Außerdem können Sie die ProgressBarKomponente im manuellen Modus einsetzen, indem Sie die Eigenschaften maximum, minimum
und indeterminate zusammen mit Aufrufen an die Methode ProgressBar.setProgress()
einstellen.
Im Ereignismodus sollten Loader-Objekte als Quelle verwendet werden. Objekte, welche die
Methoden getBytesLoaded() und getBytesTotal() übergeben, können im Abfragemodus als
Quelle genutzt werden. Dazu zählen auch benutzerdefinierte Objekte oder das _root-Objekt.
Beispiel
Mit dem folgenden Code wird die Fortschrittleiste in den Ereignismodus gesetzt:
pBar.mode = "event";
ProgressBar.percentComplete
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.percentComplete
Beschreibung
Eigenschaft (schreibgeschützt); gibt einen Prozentwert zurück, der angibt, wie weit der
Ladevorgang bereits fortgeschritten ist. Dieser Wert wird abgerundet. Der Prozentwert wird mit
der folgenden Formel berechnet:
100*(Wert-Mindestwert)/(Höchstwert-Mindestwert)
Beispiel
Der folgende Code sendet den Wert der Eigenschaft percentComplete an das Bedienfeld
Ausgabe:
trace("Prozent geladen = " + pBar.percentComplete);
468
Kapitel 4: Komponenten-Referenz
ProgressBar.progress
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(progress){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.progress = function(eventObject){
...
}
pBarInstance.addEventListener("progress", listenerObject)
Ereignisobjekt
Zusätzlich zu den standardmäßigen Ereignisobjekteigenschaften sind für das Ereignis
ProgressBar.progress noch zwei weitere Eigenschaften definiert: current (der geladene Wert
gleich total), und total (der Gesamtwert).
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn sich der Wert der
Fortschrittleiste ändert. Dieses Ereignis wird nur dann gesendet, wenn ProgressBar.mode auf
manual oder polled eingestellt ist.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
ProgressBar-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der
folgende Code, der an die Instanz meinePBar angehängt wird, sendet „_level0.meinePBar“ an das
Bedienfeld Ausgabe:
on(progress){
trace(this);
}
ProgressBar-Komponente
469
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (pBarInstance) setzt ein Ereignis (in diesem Fall progress) ab, und das
Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, eines von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel wird das Listener-Objekt form erstellt und die Ereignisprozedur progress
dafür definiert. Der Listener form wird in der letzten Zeile des Codes für die Instanz pBar
registriert. Wenn das Ereignis progress ausgelöst wird, sendet pBar das Ereignis per Broadcast an
den Listener form, der die Rückruffunktion progress aufruft:
var form:Object = new Object();
form.progress = function(eventObj){
// eventObj.target ist die Komponente, die das change-Ereignis generiert hat
// d. h. die Fortschrittleiste.
trace("Wert geändert in " + eventObj.target.value);
}
pBar.addEventListener("progress", form);
Siehe auch
UIEventDispatcher.addEventListener()
ProgressBar.setProgress()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.setProgress(completed, total)
Parameter
Eine Zahl, die angibt, wie weit der Ladevorgang bereits fortgeschritten ist. Die
Eigenschaften ProgressBar.label und ProgressBar.conversion lassen sich zum Anzeigen
der Zahlen als Prozentteile oder in beliebigen anderen Einheiten einsetzen. Ausschlaggebend ist
dabei die Quelle der Fortschrittleiste.
completed
total Eine Zahl, die angibt, wie weit der Ladevorgang insgesamt fortschreiten muss, damit
100 Prozent erreicht werden.
470
Kapitel 4: Komponenten-Referenz
Rückgaben
Eine Zahl, die angibt, wie weit der Ladevorgang bereits fortgeschritten ist.
Beschreibung
Methode; legt den Zustand der Leiste fest, der darstellt, wie weit der Ladevorgang bereits
fortgeschritten ist, wenn die Eigenschaft ProgressBar.mode auf manual eingestellt ist. Sie
können diese Methode aufrufen, damit die Leiste statt des Fortschritts beim Laden einen anderen
Zustand darstellt. Das Argument completed wird der Eigenschaft value zugewiesen und das
Argument total der Eigenschaft maximum. Die Eigenschaft minimum wird nicht geändert.
Beispiel
Mit dem folgenden Code wird die Methode setProgress() basierend auf dem Fortschritt in der
Zeitleiste einer Flash-Anwendung aufgerufen:
pBar.setProgress(_currentFrame, _totalFrames);
ProgressBar.source
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.source
Beschreibung
Eigenschaft; eine Referenz auf die zu ladende Instanz, deren Ladefortschritt angezeigt werden soll.
Der geladene Inhalt löst das Ereignis progress aus, aus dem der aktuelle Wert und der
Gesamtwert abgerufen werden. Dieses Ereignis wird nur dann verwendet, wenn
ProgressBar.mode auf event oder polled eingestellt ist. Der Standardwert ist undefined.
Die ProgressBar kann mit Inhalten innerhalb einer Anwendung eingesetzt werden. Das gilt auch
für _root.
Beispiel
In diesem Beispiel wird die Instanz pBar zum Anzeigen des Ladevorgangs einer LoaderKomponente mit dem Namen loader herangezogen:
pBar.source = loader;
Siehe auch
ProgressBar.mode
ProgressBar-Komponente
471
ProgressBar.value
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
pBarInstance.value
Beschreibung
Eigenschaft (schreibgeschützt); gibt an, wie weit der Ladevorgang bereits fortgeschritten ist. Diese
Eigenschaft ist eine Zahl zwischen dem Wert von ProgressBar.minimum und
ProgressBar.maximum. Der Standardwert ist 0.
RadioButton-Komponente
Mit der RadioButton-Komponente können Sie erzwingen, dass Benutzer aus einer Reihe von
Optionen nur eine einzige auswählen. Die RadioButton-Komponente muss in einer Gruppe von
mindestens zwei RadioButton-Instanzen verwendet werden. Es kann immer nur ein Mitglied der
Gruppe ausgewählt sein. Wenn der Benutzer ein Optionsfeld in einer Gruppe auswählt, wird die
Auswahl des derzeit ausgewählten Optionsfelds aufgehoben. Mit dem Parameter groupName
können Sie angeben, zu welcher Gruppe ein Optionsfeld gehört.
Ein Optionsfeld kann aktiviert oder deaktiviert sein. Wenn ein Benutzer eine Optionsfeldgruppe
mit der Tabulatortaste ansteuert, erhält nur das ausgewählte Optionsfeld den Fokus. Ein Benutzer
kann die Pfeiltasten drücken, um den Fokus innerhalb der Gruppe zu ändern. Im deaktivierten
Zustand kann ein Optionsfeld keine Maus- oder Tastatureingaben entgegen nehmen.
Eine Gruppe von Komponenten des Typs „RadioButton“ erhält den Fokus, wenn Sie darauf
klicken oder sie mit der Tabulatortaste ansteuern. Wenn eine Optionsfeldgruppe den Fokus hat,
kann sie mit den folgenden Tasten gesteuert werden:
Taste
Beschreibung
<Nach-oben>/
<Nach-rechts>
Die Auswahl wird auf das vorherige Optionsfeld innerhalb der Optionsfeldgruppe
verschoben.
<Nach-unten>/
<Nach-links>
Die Auswahl wird auf das nächste Optionsfeld innerhalb der Optionsfeldgruppe
verschoben.
<Tab>
Der Fokus wird von der Optionsfeldgruppe auf die nächste Komponente
verschoben.
Weitere Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte
Fokusnavigation erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
472
Kapitel 4: Komponenten-Referenz
Eine Live-Vorschau der einzelnen RadioButton-Instanzen auf der Bühne spiegelt die Änderungen
wieder, die im Eigenschafteninspektor oder Komponenten-Inspektor beim Authoring
vorgenommen wurden. Der Umstand, dass immer nur ein Optionsfeld ausgewählt sein kann, ist
in der Live-Vorschau jedoch nicht sichtbar. Wenn Sie den Parameter selected für zwei
Optionsfelder in der gleichen Gruppe auf true setzen, werden beide als ausgewählt angezeigt,
obwohl zur Laufzeit nur die zuletzt erstellte Instanz als ausgewählt angezeigt wird. Weitere
Informationen finden Sie unter „RadioButton-Parameter“ auf Seite 473.
Wenn Sie einer Anwendung die RadioButton-Komponente hinzufügen, können Sie sie mit Hilfe
des Bedienfelds Eingabehilfen für Bildschirmleseprogramme zugänglich machen. Dazu brauchen
Sie lediglich die folgende Codezeile einzufügen:
mx.accessibility.RadioButtonAccImpl.enableAccessibility();
Diese Anweisung ist unabhängig von der Anzahl der Instanzen nur einmal pro Komponente
erforderlich. Weitere Informationen finden Sie in der Hilfe „Flash verwenden“ unter
„Barrierefreie Inhalte erstellen“.
Mit der RadioButton-Komponente arbeiten
Ein Optionsfeld ist ein grundlegender Bestandteil jedes Formulars und jeder Webanwendung. Sie
können Optionsfelder immer dann verwenden, wenn ein Benutzer aus einer Gruppe von
Optionen eine einzige auswählen soll. So würden Sie Optionsfelder beispielsweise einsetzen, um
auf einem Formular zu fragen, mit welcher Kreditkarte ein Kunde zahlen möchte.
RadioButton-Parameter
Im Folgenden sind die Authoring-Parameter aufgeführt, die Sie für die einzelnen Instanzen der
RadioButton-Komponente im Eigenschafteninspektor oder Komponenten-Inspektor festlegen
können:
label
legt den Wert des Texts für das Optionsfeld fest; der Standardwert ist Radio Button.
data
ist der Wert, der mit dem Optionsfeld verknüpft ist. Hierfür gibt es keinen Standardwert.
groupName
ist der Gruppenname des Optionsfelds. Der Standardwert ist radioGroup.
selected legt fest, ob der Anfangszustand des Optionsfelds ausgewählt (true) oder nicht
ausgewählt (false) ist. Ein ausgewähltes Optionsfeld wird ausgefüllt angezeigt. Der Wert von
selected kann jeweils nur für ein Optionsfeld in einer Gruppe true sein. Wenn mehrere
Optionsfelder innerhalb einer Gruppe auf true eingestellt sind, wird das Optionsfeld ausgewählt,
das zuletzt als Instanz erstellt wurde. Der Standardwert lautet false.
labelPlacement richtet den Bezeichnungstext des Optionsfelds aus. Diesem Parameter können
die vier Werte left (links), right (rechts), top (oben) und bottom (unten) zugewiesen werden. Der
Standardwert ist right. Weitere Informationen finden Sie unter RadioButton.labelPlacement.
Sie können ein ActionScript erstellen, um zusätzliche Optionen für RadioButton-Instanzen mit
Methoden, Eigenschaften und Ereignissen der RadioButton-Klasse festzulegen. Weitere
Informationen finden Sie unter RadioButton-Klasse.
RadioButton-Komponente
473
Eine Anwendung mit der RadioButton-Komponente erstellen
Im folgenden Verfahren wird erklärt, wie Sie einer Anwendung beim Authoring RadioButtonKomponenten hinzufügen. Im folgenden Beispiel stellen die Optionsfelder eine
Entscheidungsfrage: „Mögen Sie Flash?“. Die Daten aus der Optionsfeldgruppe werden in der
TextArea-Komponente mit dem Instanznamen theVerdict angezeigt.
So erstellen Sie eine Anwendung mit der RadioButton-Komponente:
1 Ziehen Sie zwei RadioButton-Komponenten aus dem Bedienfeld Komponenten auf die Bühne.
2 Wählen Sie eines der Optionsfelder auf der Bühne aus, und führen Sie im Komponenten-
Inspektor folgende Schritte durch:
■ Geben Sie Ja für den Parameter label ein.
■ Geben Sie MagFlash für den Parameter data ein.
3 Wählen Sie das andere Optionsfeld aus, und führen Sie im Komponenten-Inspektor folgende
Schritte durch:
■ Geben Sie Nein für den Parameter label ein.
■ Geben Sie MagFlashNicht für den Parameter data ein.
4 Wählen Sie in der Zeitleiste das erste Bild aus, öffnen Sie das Bedienfeld Aktionen, und geben
Sie den folgenden Code ein:
MagFlashListener = new Object();
MagFlashListener.click = function (evt){
theVerdict.text = evt.target.selection.data
}
radioGroup.addEventListener("click", MagFlashListener);
Die letzte Codezeile fügt der Optionsfeldgruppe radioGroup die Ereignisprozedur click
hinzu. Die Prozedur legt die Eigenschaft text der Instanz theVerdict der TextAreaKomponente auf den Wert der Eigenschaft data des ausgewählten Optionsfelds in der
Optionsfeldgruppe radioGroup fest. Weitere Informationen finden Sie unter
RadioButton.click.
Die RadioButton-Komponente anpassen
Sie können die RadioButton-Komponente sowohl beim Authoring als auch zur Laufzeit
horizontal und vertikal transformieren. Beim Authoring wählen Sie hierzu die Komponente auf
der Bühne aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle
unter Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode setSize()
(siehe „UIObject.setSize()“ auf Seite 634).
Die Begrenzungsbox der RadioButton-Komponente ist unsichtbar und definiert außerdem den
Kollisionsbereich der Komponente. Wenn Sie die Komponente vergrößern, vergrößert sich auch
die Größe des Kollisionsbereichs.
Wenn die Begrenzungsbox der Komponente zu klein ist, um die Komponentenbezeichnung
aufzunehmen, wird die Bezeichnung abgeschnitten.
474
Kapitel 4: Komponenten-Referenz
Stile mit der RadioButton-Komponente verwenden
Sie können Stileigenschaften festlegen, um das Erscheinungsbild eines Optionsfelds zu ändern.
Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
Die RadioButton-Komponente verwendet die folgenden Kranz-Stile:
Stil
Beschreibung
themeColor
Der Hintergrund einer Komponente. Dies ist der einzige Farbstil, der
den Wert nicht übernimmt. Mögliche Wert sind „haloGreen“,
„haloBlue“ und „haloOrange“.
color
Der Text einer Komponentenbezeichnung.
disabledColor
Die Farbe für deaktivierten Text.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“ (kursiv).
fontWeight
Das Schriftgewicht für den Text: „normal“ oder „bold“ (fett).
Skins mit der RadioButton-Komponente verwenden
Die RadioButton-Komponente kann beim Authoring mit Skins versehen werden, indem Sie die
Symbole der Komponente in der Bibliothek ändern. Die Skins für die RadioButton-Komponente
befinden sich im folgenden Ordner in der Bibliothek von HaloTheme.fla oder
SampleTheme.fla: Flash UI Components 2/Themes/MMDefault/RadioButton Assets/States.
Weitere Informationen hierzu finden Sie unter „Skinning-Komponenten“ auf Seite 42.
Wenn ein Optionsfeld aktiviert, aber nicht ausgewählt ist, zeigt es den Zustand Rollover an, wenn
ein Benutzer den Mauszeiger darauf setzt. Wenn ein Benutzer auf ein nicht ausgewähltes
Optionsfeld klickt, erhält das Optionsfeld den Eingabefokus und zeigt den Pressed-Zustand
(false) an. Wenn ein Benutzer die Maustaste loslässt, zeigt das Optionsfeld den Zustand true an,
und das zuvor ausgewählte Optionsfeld in der Gruppe kehrt zum Zustand false zurück. Wenn ein
Benutzer den Zeiger bei gedrückter Maustaste vom Optionsfeld weg bewegt, kehrt das
Erscheinungsbild des Optionsfeld zum Zustand false zurück und behält den Eingabefokus.
Wenn ein Optionsfeld oder eine Optionsfeldgruppe deaktiviert ist, wird unabhängig von der
Benutzerinteraktion der Disabled-Zustand angezeigt.
Wenn Sie mit der Methode UIObject.createClassObject() eine Instanz der RadioButtonKomponente dynamisch erstellen, können Sie auch die Skins der Komponente dynamisch
erzeugen. Um Skins für die RadioButton-Komponente dynamisch zu erzeugen, übergeben Sie die
Skineigenschaften an die Methode UIObject.createClassObject(). Weitere Informationen
finden Sie unter „Skinning-Komponenten“ auf Seite 42. Anhand der Skineigenschaften erkennen
Sie, welches Symbol zum Anzeigen einer Komponente verwendet werden soll.
RadioButton-Komponente
475
Die RadioButton-Komponente verwendet die folgenden Skineigenschaften:
Name
Beschreibung
falseUpIcon
Der Status Nicht ausgewählt. Der Standardwert ist
radioButtonFalseUp.
falseDownIcon
Der Status Gedrückt und nicht ausgewählt. Der Standardwert ist
radioButtonFalseDown.
falseOverIcon
Der Status Über und nicht ausgewählt. Der Standardwert ist
radioButtonFalseOver.
falseDisabledIcon
Der Status Deaktiviert und nicht ausgewählt. Der Standardwert
ist radioButtonFalseDisabled.
trueUpIcon
Der Status Ausgewählt. Der Standardwert ist radioButtonTrueUp.
trueDisabledIcon
Der Status Deaktiviert und ausgewählt. Der Standardwert ist
radioButtonTrueDisabled.
RadioButton-Klasse
Vererbung
UIObject > UIComponent > SimpleButton > Button > RadioButton
ActionScript-Paketname
mx.controls.RadioButton
Mit den Eigenschaften der RadioButton-Klasse können Sie zur Laufzeit eine Textbezeichnung
erstellen und sie relativ zum Optionsfeld platzieren. Außerdem können Sie Optionsfeldern
Datenwerte und Gruppen zuweisen und sie anhand des Datenwerts oder des Instanznamens
auswählen.
Wenn Sie eine Eigenschaft der RadioButton-Klasse mit ActionScript einstellen, werden die
Parameter mit dem gleichen Namen im Eigenschafteninspektor und Komponenten-Inspektor
außer Kraft gesetzt.
Die RadioButton-Komponente überschreibt mit Hilfe des FocusManagers das standardmäßige
Fokusrechteck des Flash Players und zeigt stattdessen ein angepasstes Fokusrechteck mit
abgerundeten Ecken an. Weitere Informationen zur Erstellung der Fokusnavigation finden Sie
unter „Benutzerdefinierte Fokusnavigation erstellen“ auf Seite 28.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.RadioButton.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meineRadioButtonInstance.version);.
Übersicht: Methoden der RadioButton-Klasse
Erbt alle Methoden von UIObject, UIComponent, SimpleButton und Button-Klasse.
476
Kapitel 4: Komponenten-Referenz
Übersicht: Eigenschaften der RadioButton-Klasse
Eigenschaft
Beschreibung
RadioButton.data
Der Wert, der mit einer Optionsfeldinstanz verknüpft ist.
RadioButton.groupName
Der Gruppenname für eine Optionsfeldgruppe oder eine
Optionsfeldinstanz.
RadioButton.label
Der Text, der neben dem Optionsfeld angezeigt wird.
RadioButton.labelPlacement Die Ausrichtung des Bezeichnungstextes relativ zum Optionsfeld.
RadioButton.selected
Stellt den Zustand der Optionsfeldinstanz auf ausgewählt ein und
hebt die Auswahl des zuvor ausgewählten Optionsfelds auf.
RadioButton.selectedData
Wählt das Optionsfeld in einer Optionsfeldgruppe mit dem
angegebenen Datenwert aus.
RadioButton.selection
Eine Referenz auf das derzeit ausgewählte Optionsfeld in einer
Optionsfeldgruppe.
Erbt alle Eigenschaften von UIObject, UIComponent, SimpleButton und Button-Klasse.
Übersicht: Ereignisse der RadioButton-Klasse
Ereignis
Beschreibung
RadioButton.click
Wird ausgelöst, wenn die Maustaste über einer Schaltflächeninstanz
losgelassen wird.
Erbt alle Ereignisse von UIObject, UIComponent, SimpleButton und Button-Klasse.
RadioButton.click
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(click){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.click = function(eventObject){
...
}
radioButtonGroup.addEventListener("click", listenerObject)
RadioButton-Komponente
477
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn die Maus über dem
Optionsfeld geklickt (gedrückt und wieder losgelassen) wird oder wenn das Optionsfeld über die
Pfeiltasten ausgewählt wird. Das Ereignis wird ebenfalls per Broadcast gesendet, wenn die
Leertaste oder die Pfeiltasten gedrückt werden, während eine Optionsfeldgruppe den Fokus hat,
obwohl keines der Optionsfelder in der Gruppe ausgewählt wird.
Das erste Verwendungsbeispiel enthält die Prozedur on() und muss direkt an eine Instanz der
RadioButton-Komponente angehängt werden. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Beispiel: Der
folgende Code, der an das Optionsfeld meinRadioButton angehängt wird, sendet
„_level0.meinRadiobutton“ an das Bedienfeld Ausgabe:
on(click){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (radioButtonInstance) setzt ein Ereignis (in diesem Fall click) ab, und
das Ereignis wird durch eine Funktion, auch als Prozedur bezeichnet, des von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Das Ereignisobjekt verfügt über
einen Satz von Eigenschaften mit Informationen zum Ereignis. Mit Hilfe dieser Eigenschaften
können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen Sie die Methode
UIEventDispatcher.addEventListener() für die Komponenteninstanz auf, die das Ereignis
überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis absetzt, wird
der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
Im folgenden Beispiel, das für ein Bild der Zeitleiste geschrieben wurde, wird eine Meldung an
das Bedienfeld Ausgabe gesendet, wenn auf ein Optionsfeld in der radioGroup geklickt wird. In
der ersten Codezeile wird ein Listener-Objekt mit der Bezeichnung form erzeugt. In der zweiten
Zeile wird eine Funktion für das click-Ereignis des Listener-Objekts definiert. Eine traceAktion innerhalb der Funktion erzeugt anhand des automatisch übergebenen Ereignisobjekts (in
diesem Fall eventObj) eine Meldung. Die Eigenschaft target eines Ereignisobjekts ist die
Komponente, die das Ereignis generiert hat. Sie können von der Eigenschaft target aus auf die
Instanzeigenschaften zugreifen (in diesem Beispiel wird auf die Eigenschaft
RadioButton.selection zugegriffen). In der letzten Zeile wird die Methode
UIEventDispatcher.addEventListener() von radioGroup aus aufgerufen, und das Ereignis
click und das Listener-Objekt form werden als Parameter an sie übergeben:
form = new Object();
form.click = function(eventObj){
trace("Die ausgewählte Optionsfeldinstanz ist " +
eventObj.target.selection);
}
radioGroup.addEventListener("click", form);
478
Kapitel 4: Komponenten-Referenz
Mit dem folgenden Code wird eine Meldung an das Bedienfeld Ausgabe gesendet, wenn auf
radioButtonInstance geklickt wird. Die Prozedur on() muss direkt an radioButtonInstance
angehängt werden, wie im folgenden Code:
on(click){
trace("Es wurde auf die Optionsfeldkomponente geklickt");
}
RadioButton.data
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
radioButtonInstance.data
Beschreibung
Eigenschaft; gibt die Daten an, die mit einer Optionsfeldinstanz verknüpft werden sollen. Wenn
Sie diese Eigenschaft einstellen, wird der Wert des Parameters data beim Authoring im
Eigenschafteninspektor oder Komponenten-Inspektor außer Kraft gesetzt. Die Eigenschaft data
kann einen beliebigen Datentyp haben.
Beispiel
Im folgenden Beispiel wird der Datenwert #FF00FF der Optionsfeldinstanz radioOne
zugewiesen:
radioOne.data = "#FF00FF";
RadioButton.groupName
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
radioButtonInstance.groupName
radioButtonGroup.groupName
Beschreibung
Eigenschaft; legt den Gruppennamen für eine Optionsfeldinstanz oder -gruppe fest. Mit dieser
Eigenschaft können Sie einen Gruppennamen für eine Optionsfeldinstanz oder für eine
Optionsfeldgruppe festlegen. Beim Aufruf dieser Methode wird der Wert des beim Authoring
angegebenen Parameters groupName überschrieben. Der Standardwert ist radioGroup.
RadioButton-Komponente
479
Beispiel
Im folgenden Beispiel wird der Gruppenname einer Optionsfeldinstanz auf colorChoice
eingestellt und dann der Gruppenname auf sizeChoice geändert. Um dieses Beispiel zu testen,
platzieren Sie ein Optionsfeld mit dem Instanznamen meinRadioButton auf der Bühne, und
geben Sie in Bild 1 den folgenden Code ein:
meinRadioButton.groupName = "colorChoice";
trace(meinRadioButton.groupName);
colorChoice.groupName = "sizeChoice";
trace(colorChoice.groupName);
RadioButton.label
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
radioButtonInstance.label
Beschreibung
Eigenschaft; gibt die Textbezeichnung für das Optionsfeld an. Als Standard wird die Bezeichnung
rechts neben dem Optionsfeld angezeigt. Beim Aufruf dieser Methode wird der beim Authoring
angegebene Parameter label überschrieben. Wenn der Bezeichnungstext zu lang ist, um in die
Begrenzungsbox der Komponente zu passen, wird der Text abgeschnitten.
Beispiel
Im folgenden Beispiel wird die Eigenschaft label der Instanz radioButton festgelegt:
radioButton.label = "Aus Liste entfernen";
RadioButton.labelPlacement
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
radioButtonInstance.labelPlacement
radioButtonGroup.labelPlacement
Beschreibung
Eigenschaft; ein String, der die Position der Bezeichnung relativ zum Optionsfeld angibt. Sie
können diese Eigenschaft für eine einzelne Instanz oder für eine Optionsfeldgruppe einstellen.
Wenn Sie die Eigenschaft für eine Gruppe einstellen, wird die Bezeichnung für jedes Optionsfeld
in der Gruppe an der entsprechenden Position platziert.
480
Kapitel 4: Komponenten-Referenz
Die folgenden Werte können angegeben werden:
•
•
•
•
Das Optionsfeld wird in der linken oberen Ecke des Begrenzungsbereichs fixiert. Die
Bezeichnung wird rechts neben dem Optionsfeld angezeigt.
left Das Optionsfeld wird in der rechten oberen Ecke des Begrenzungsbereichs fixiert. Die
Bezeichnung wird links neben dem Optionsfeld angezeigt.
bottom Die Bezeichnung wird unter dem Optionsfeld platziert. Die Gruppe aus Optionsfeld
und Bezeichnung wird horizontal und vertikal zentriert. Wenn die Begrenzungsbox des
Optionsfelds nicht groß genug ist, wird die Bezeichnung abgeschnitten.
top Die Bezeichnung wird über dem Optionsfeld platziert. Die Gruppe aus Optionsfeld und
Bezeichnung wird horizontal und vertikal zentriert. Wenn die Begrenzungsbox des
Optionsfelds nicht groß genug ist, wird die Bezeichnung abgeschnitten.
right
Beispiel
Mit dem folgenden Code wird die Bezeichnung links neben den einzelnen Optionsfeldern in der
radioGroup platziert:
radioGroup.labelPlacement = "left";
RadioButton.selected
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
radioButtonInstance.selected
radioButtonGroup.selected
Beschreibung
Eigenschaft; ein Boolescher Wert, der den Zustand des Optionsfelds auf ausgewählt (true)
einstellt und die Auswahl des zuvor ausgewählten Optionsfelds aufhebt, oder die Auswahl des
Optionsfelds aufhebt (false).
Beispiel
In der ersten Codezeile wird die Instanz mcButton auf true eingestellt. In der zweiten Codezeile
wird der Wert der Eigenschaft selected zurückgegeben:
mcButton.selected = true;
trace(mcButton.selected);
RadioButton.selectedData
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
RadioButton-Komponente
481
Verwendung
radioButtonGroup.selectedData
Beschreibung
Eigenschaft; wählt das Optionsfeld mit dem angegebenen Datenwert aus und hebt die Auswahl
des zuvor ausgewählten Optionsfelds auf. Wenn die Eigenschaft data für eine ausgewählte
Instanz nicht angegeben ist, wird der Bezeichnungswert der ausgewählten Instanz ausgewählt und
zurückgegeben. Die Eigenschaft selectedData kann einen beliebigen Datentyp haben.
Beispiel
Im folgenden Beispiel wird das Optionsfeld mit dem Wert #FF00FF aus der Optionsfeldgruppe
colorGroup ausgewählt und der Wert an das Bedienfeld Ausgabe gesendet:
colorGroup.selectedData = "#FF00FF";
trace(colorGroup.selectedData);
RadioButton.selection
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
radioButtonInstance.selection
radioButtonGroup.selection
Beschreibung
Eigenschaft; verhält sich unterschiedlich, je nachdem, ob Sie die Eigenschaft abrufen oder
einstellen. Wenn Sie die Eigenschaft abrufen, wird die Objektreferenz des derzeit ausgewählten
Optionsfelds in einer Optionsfeldgruppe zurückgegeben. Wenn Sie die Eigenschaft einstellen,
wird das angegebene Optionsfeld (das als Objektreferenz übergeben wird) in einer
Optionsfeldgruppe ausgewählt und die Auswahl des zuvor ausgewählten Optionsfelds
aufgehoben.
Beispiel
Im folgenden Beispiel wird das Optionsfeld mit dem Instanznamen color1 ausgewählt und sein
Instanzname an das Bedienfeld Ausgabe gesendet:
colorGroup.selection = color1;
trace(colorGroup.selection._name)
482
Kapitel 4: Komponenten-Referenz
RDBMSResolver-Komponente (nur Flash Professional)
Die Resolver-Komponenten werden in Verbindung mit der DataSet-Komponente verwendet
(Teil der Datenverwaltungsfunktionalität der Flash-Datenarchitektur). Mit den ResolverKomponenten können Sie die an den Daten in der Anwendung vorgenommenen Änderungen in
ein Format umwandeln, das für die zu aktualisierende externe Datenquelle geeignet ist. Diese
Komponenten sind zur Laufzeit nicht sichtbar.
Wenn Sie eine DataSet-Komponente in einer Anwendung verwenden, erzeugt sie einen
optimierten Anweisungssatz (DeltaPacket), der die während der Laufzeit an den Daten
vorgenommenen Änderungen beschreibt. Dieser Anweisungssatz wird von den ResolverKomponenten in das erforderliche Format (Aktualisierungspaket) umgewandelt. Wenn Sie eine
Aktualisierung an den Server senden, schickt dieser eine Antwort (Ergebnispaket), die aus der
Aktualisierung resultierende zusätzliche Aktualisierungen oder Fehler enthält. Die ResolverKomponenten können diese Informationen wieder in ein DeltaPacket umwandeln, das dann auf
die DataSet-Komponente angewendet werden kann, um diese mit der externen Datenquelle
abzugleichen. Mit Resolver-Komponenten können Sie eine Anwendung und eine externe
Datenquelle abgleichen, ohne dass dafür zusätzlicher ActionScript-Code erforderlich ist.
Die RDBMSResolver-Komponente übersetzt die XML, die von einem Webdienst, von JavaBean,
einem Servlet oder einer ASP-Seite empfangen und analysiert werden kann. Die XML enthält die
Informationen und Formatierungen, die zur Aktualisierung beliebiger relationaler SQLStandarddatenbanken erforderlich sind. Für die Rücksendung von Daten an einen XMLbasierten Server gibt es eine parallele Resolver-Komponente (XUpdateResolver; siehe
„XUpdateResolver-Komponente (nur Flash Professional)“ auf Seite 696). Weitere Informationen
über DataSet-Komponenten finden Sie unter „DataSet-Komponente (nur Flash Professional)“
auf Seite 218. Weitere Informationen über Datenverbindungen finden Sie unter
„WebServiceConnector (nur Flash Professional)“ auf Seite 664 und „XMLConnectorKomponente (nur Flash Professional)“ auf Seite 686. Weitere Informationen über die FlashDatenarchitektur finden Sie unter „Resolver-Komponenten (nur Flash Professional)“ in der Hilfe
„Flash verwenden“.
Die RDBMSResolver-Komponente wandelt die an den Daten in einer Anwendung
vorgenommenen Änderungen in ein XML-Paket um, das an eine externe Datenquelle gesendet
werden kann.
Hinweis: Sie können mit der RDBMSResolver-Komponente Datenaktualisierungen an beliebige
externe Datenquellen senden, die XML verarbeiten und SQL-Anweisungen für eine Datenbank
erzeugen können, wie beispielsweise eine ASP-Seite, ein Java-Servlet oder eine ColdFusionKomponente.
Die von der RDBMSResolver-Komponente erzeugten Aktualisierungen werden in Form eines
XML-Aktualisierungspakets gesendet, das über ein Connector-Objekt an die Datenbank geleitet
wird. Die Resolver-Komponente wird mit der DeltaPacket-Eigenschaft der DataSet-Komponente
verbunden, sendet ihr eigenes Aktualisierungspaket an eine Datenverbindung, empfängt von
dieser Meldungen über Server-Fehler und leitet diese zurück an die DataSet-Komponente – all
dies unter Einsatz von bindbaren Eigenschaften.
RDBMSResolver-Komponente (nur Flash Professional)
483
Mit der RDBMSResolver-Komponente arbeiten (nur Flash
Professional)
Diese RDBMSResolver-Komponente sollte nur dann verwendet werden, wenn Ihre FlashAnwendung eine DataSet-Komponente enthält und ein Aktualisierungspaket zurück an die
Datenquelle senden muss. Diese Komponente löst Daten auf, die Sie an eine relationale
Datenbank zurücksenden möchten.
Weitere Informationen über die RDBMSResolver-Komponente finden Sie unter „ResolverKomponenten (nur Flash Professional)“ in der Hilfe „Flash verwenden“.
Parameter der RDBMSResolver-Komponente
TableName Ein String, der den Tabellennamen in der XML für die zu aktualisierende
Datenbanktabelle angibt. Dieser Wert muss mit dem Eingabewert für das zu aktualisierende
Resolver.fieldInfo-Element identisch sein. Gibt es für dieses Feld keine Aktualisierungen,
dann muss dieser Wert leer gelassen werden, was dem Standardwert entspricht.
Enumerator, der festlegt, wie Schlüsselfelder während der Erzeugung des XMLAktualisierungspakets identifiziert werden. Der Standardwert lautet umUsingKey. Es können
folgende Werte angegeben werden:
UpdateMode
•
•
•
Verwendet die alten Werte aller modifizierten Felder, um den zu
aktualisierenden Datensatz zu identifizieren. Dies ist der sicherste Wert für die Aktualisierung,
da Sie so sicherstellen können, dass der abgerufene Datensatz in der Zwischenzeit nicht von
einem anderen Benutzer geändert wurde. Diese Methode ist jedoch zeitaufwändiger und
erzeugt ein größeres Aktualisierungspaket.
umUsingModified Verwendet die alten Werte aller modifizierten Felder, um den zu
aktualisierenden Datensatz zu identifizieren. Mit diesem Wert können Sie sicherstellen, dass
kein anderer Benutzer die gleichen Felder im Datensatz geändert hat, seit Sie den Datensatz
abgerufen haben.
umUsingKey Dies ist der Standardwert für diese Eigenschaft. Bei dieser Einstellung werden
die alten Werte der Schlüsselfelder verwendet. Dies setzt eine optimistische Synchronisation
voraus, was bei den meisten heutigen Datenbanksystemen der Fall ist, und garantiert, dass Sie
denselben Datensatz modifizieren, den Sie auch von der Datenbank abgerufen haben. Die von
Ihnen vorgenommenen Änderungen überschreiben Änderungen, die andere Benutzer an den
gleichen Daten vorgenommen haben.
umUsingAll
Dieser String gibt einen Feldwert von null an. Kann vom Benutzer definiert werden,
um Verwechslungen mit einem leeren String ("") oder einem anderen gültigen Wert zu
vermeiden. Der Standardwert lautet {_NULL_}.
NullValue
Sammlung mit einem oder mehreren Schlüsselfeldern, welche die Datensätze
eindeutig identifizieren. Falls es sich bei der Datenquelle um eine Datenbanktabelle handelt,
besitzt sie ein oder mehrere Schlüsselfelder, mit denen der Datensatz in der Tabelle eindeutig
identifiziert werden kann. Darüber hinaus wurden manche Felder u. U. aus anderen Tabellen
berechnet oder zusammengefügt. Diese Felder müssen identifiziert werden, damit im XMLAktualisierungspaket Schlüsselfelder gesetzt werden können. Alle Felder, die nicht aktualisiert
werden sollen, werden im XML-Aktualisierungspaket ausgelassen.
FieldInfo
484
Kapitel 4: Komponenten-Referenz
Die RDBMSResolver-Komponente besitzt zu diesem Zweck den Parameter FieldInfo. Mit dieser
Sammeleigenschaft können Sie eine unbegrenzte Anzahl von Feldern mit Eigenschaften
definieren, für die eine besondere Verarbeitung erforderlich ist. Jedes FieldInfo-Element der
Sammlung enthält drei Eigenschaften:
•
•
•
FieldName Der Name des Feldes. Dieser Name muss einem Feld in der DataSetKomponente entsprechen.
OwnerName Optionaler Wert. Dient zum Identifizieren von Feldern, die nicht zu der Tabelle
gehören, die im Parameter TableName der Resolver-Komponente angegeben ist. Entspricht
dieser Wert dem Parameter TableName, oder ist er leer, so ist das Feld in der Regel im XMLPaket enthalten. Handelt es sich um einen anderen Wert, ist dieses Feld aus dem
Aktualisierungspaket ausgeschlossen.
IsKey Boolesche Eigenschaft, die Sie mit true belegen müssen, damit alle Schlüsselfelder für
diese Tabelle aktualisiert werden.
Im folgenden Beispiel werden FieldInfo-Elemente gezeigt, welche erstellt werden, um Felder in
der Kunden-Tabelle zu aktualisieren. Sie müssen die Schlüsselfelder in der Kunden-Tabelle
identifizieren. Die Kunden-Tabelle besitzt nur das Schlüsselfeld id. Erstellen Sie daher ein
Feldelement mit folgenden Werten:
FieldName = "id"
OwnerName = <!-- nicht belegen -->
IsKey = "true"
Ferner wird das Feld custType per Join der Abfrage hinzugefügt. Dieses Feld soll bei der
Aktualisierung nicht berücksichtigt werden, deshalb erstellen Sie ein Feld mit folgenden Werten:
FieldName = "custType"
OwnerName = "JoinedField"
IsKey = "false"
Sind die Feldelemente definiert, kann der Flash Player diese zum automatischen Erstellen der
vollständigen XML verwenden, mit deren Hilfe die Tabelle aktualisiert wird.
Übersicht: Eigenschaften der RDBMSResolver-Komponente
Eigenschaft
Beschreibung
RDBMSResolver.deltaPacket
Eine Kopie der DeltaPacket-Eigenschaften der DataSetKomponente.
RDBMSResolver.fieldInfo
Eine unbegrenzte Anzahl von Feldern mit Eigenschaften,
welche die DataSet-Felder identifizieren, für die eine
Sonderverarbeitung entweder als Schlüsselfeld oder als nicht
aktualisierbares Feld erforderlich ist.
RDBMSResolver.nullValue
Indikator dafür, dass der Wert des Felds null ist.
RDBMSResolver.tableName
Der Tabellenname in der XML für die zu aktualisierende
Datenbanktabelle.
RDBMSResolver.updateMode
Der Wert, mit dem bestimmt wird, wie Felder beim Erstellen
des XML-Aktualisierungspakets identifiziert werden.
RDBMSResolver-Komponente (nur Flash Professional)
485
Eigenschaft
Beschreibung
RDBMSResolver.updatePacket
Eine Kopie der updatePacket-Eigenschaft der
Datenverbindung, die die aktuellsten XML-formatierten Daten
zur Rücksendung von der Datenverbindung zur DataSetKomponente enthält, nachdem der Server die
Aktualisierungsanforderung der Anwendung erhalten hat.
RDBMSResolver.updateResults
Eine Kopie der Results-Eigenschaft der Datenverbindung, die
XML-formatierte Fehler oder Aktualisierungen für die
DataSet-Komponente zurückgibt.
Übersicht: Methoden der RDBMSResolver-Komponente
Methode
Beschreibung
RDBMSResolver.addFieldInfo()
Fügt der fieldInfo-Sammlung ein neues Element hinzu. Dies
wird eher für die dynamische Erstellung einer ResolverKomponente zur Laufzeit als für den Einsatz des
Komponenten-Inspektors in der Authoring-Umgebung
verwendet.
Übersicht: Ereignisse der RDBMSResolver-Komponente
Ereignis
Beschreibung
RDBMSResolver.beforeApplyUpdates In Ihrer Anwendung definiert. Wird von der Resolver-
Komponente aufgerufen, um spezielle Modifikationen an der
XML der updatePacket-Eigenschaft vorzunehmen, bevor
diese an die Datenverbindung gebunden wird.
RDBMSResolver.reconcileResults
In Ihrer Anwendung definiert. Wird von der ResolverKomponente aufgerufen, um die Aktualisierungen zwischen
der an den Server gesendeten updatePacket-Eigenschaft und
der vom Server zurückgeschickten updatePacket-Eigenschaft
abzustimmen.
RDBMSResolver.reconcileUpdates
In Ihrer Anwendung definiert. Wird von der ResolverKomponente aufgerufen, um die vom Server gesendete
Aktualisierung mit der noch ausstehenden abzustimmen.
RDBMSResolver.addFieldInfo()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.addFieldInfo("fieldName", "ownerName", "isKey")
486
Kapitel 4: Komponenten-Referenz
Parameter
fieldName String; gibt den Namen des Feldes an, das von diesem Informationsobjekt
beschrieben wird.
ownerName String; gibt den Namen der Tabelle an, der dieses Feld gehört. Braucht nicht belegt
zu werden (""), wenn diese Angabe der tablename-Eigenschaft der Resolver-Instanz entspricht.
isKey
Boolescher Wert; gibt an, ob es sich hierbei um ein Schlüsselfeld handelt.
Rückgaben
Keine.
Beschreibung
Methode; fügt der XML-fieldInfo-Sammlung im Aktualisierungspaket ein neues Element
hinzu. Wenn Sie zur Laufzeit dynamisch eine Resolver-Komponente einrichten müssen,
empfiehlt es sich, anstelle des Komponenten-Inspektor in der Authoring-Umgebung diese
Methode zu verwenden.
Beispiel
Im folgenden Beispiel wird eine Resolver-Komponente erstellt und der Name der Tabelle und des
Schlüsselfelds angegeben. Außerdem wird verhindert, dass das Feld personTypeName aktualisiert
wird:
var meinResolver:RDBMSResolver = new RDBMSResolver();
meinResolver.tableName = "Kunden";
// Richtet das ID-Feld als Schlüsselfeld
// und das Feld personTypeName so ein, dass es nicht aktualisiert wird.
meinResolver.addFieldInfo("id", "", true);
meinResolver.addFieldInfo("personTypeName", "JoinedField", false);
// Richtet die Datenbindungen ein
//...
RDBMSResolver.beforeApplyUpdates
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.beforeApplyUpdates(eventObject)
RDBMSResolver-Komponente (nur Flash Professional)
487
Parameter
Resolver-Ereignisobjekt; beschreibt die Anpassungen, die am XML-Paket
vorgenommen werden, bevor die Aktualisierung über die Datenverbindung an die Datenbank
gesendet wird. Dieses Resolver-Ereignisobjekt sollte folgende Eigenschaften enthalten:
eventObject
Eigenschaft
Beschreibung
target
Objekt; der Resolver, der dieses Ereignis auslöst.
type
String; der Name des Ereignisses.
updatePacket
XML-Objekt; das XML-Objekt, das zur Anwendung kommen
soll.
Rückgaben
Keine.
Beschreibung
Eigenschaft; Eigenschaft vom Typ deltaPacket, die ein deltaPacket erhält, das in ein
xupdatePacket umgewandelt werden soll, und die ein deltaPacket von Server-Ergebnissen
ausgibt, die in die updateResults-Eigenschaft abgelegt wurden. Diese Ereignisprozedur bietet
Ihnen eine Möglichkeit, die XML anzupassen, bevor Sie die aktualisierten Daten an eine
Datenverbindung senden.
Meldungen in der Eigenschaft updateResults werden als Fehler behandelt. Dies bedeutet, dass
dem deltaPacket erneut ein Delta mit Meldungen hinzugefügt wird, damit es beim nächsten
Mal, wenn das deltaPacket an den Server geschickt wird, erneut versendet werden kann. Sie
müssen einen Code schreiben, der Deltas mit Meldungen verarbeitet, damit die Meldungen dem
Benutzer präsentiert und modifiziert werden, bevor sie dem nächsten deltaPacket hinzugefügt
werden.
Beispiel
Im folgenden Beispiel werden die Daten der Benutzerauthentifizierung dem XML-Paket
hinzugefügt:
on (beforeApplyUpdates) {
// Daten der Benutzerauthentifizierung hinzufügen
var userInfo = new XML( ""+getUserId()+ ""+getPassword()+"" );
updatePacket.firstChild.appendChild( userInfo );
}
RDBMSResolver.deltaPacket
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.deltaPacket
488
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; Eigenschaft vom Typ deltaPacket, die ein deltaPacket erhält, das in ein
updatePacket umgewandelt werden soll, und die ein deltaPacket von Server-Ergebnissen
ausgibt, die in die updateResults-Eigenschaft abgelegt wurden.
Meldungen in der Eigenschaft updateResults werden als Fehler behandelt. Dies bedeutet, dass
dem deltaPacket erneut ein Delta mit Meldungen hinzugefügt wird, damit es beim nächsten
Mal, wenn das deltaPacket an den Server geschickt wird, erneut versendet werden kann. Sie
müssen einen Code schreiben, der Deltas mit Meldungen verarbeitet, damit die Meldungen dem
Benutzer präsentiert und modifiziert werden, bevor sie dem nächsten deltaPacket hinzugefügt
werden.
RDBMSResolver.fieldInfo
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.fieldInfo
Beschreibung
Eigenschaft; Eigenschaft vom Typ Collection gibt eine Sammlung einer unbegrenzten Anzahl
von Feldern mit Eigenschaften vor, die DataSet-Felder identifizieren, für die eine
Sonderverarbeitung erforderlich ist; entweder, weil es sich um Schlüsselfelder oder um nicht
aktualisierbare Felder handelt. Jedes FieldInfo-Element der Sammlung enthält drei
Eigenschaften:
Eigenschaft
Beschreibung
fieldName:
Der Name des Sonderfelds. Dieser Feldname muss einem
Feldnamen im DataSet entsprechen.
OwnerName
Diese optionale Eigenschaft ist der Name des
Feldeigentümers, wenn dieses Feld nicht derselben Tabelle
gehört, die im Parameter TableName festgelegt wurde. Wenn
diese Eigenschaft mit dem gleichen Wert wie der Parameter
oder nicht belegt ist, wird das betreffende Feld in der Regel in
das XML-Aktualisierungspaket aufgenommen. Wird diese
Eigenschaft mit einem anderen Wert belegt, wird das Feld aus
dem Aktualisierungspaket ausgeschlossen.
isKey
Boolescher Wert, der für alle zu aktualisierenden
Schlüsselfelder der Tabelle auf true gesetzt wird.
RDBMSResolver-Komponente (nur Flash Professional)
489
RDBMSResolver.nullValue
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.deltaPacket
Beschreibung
Eigenschaft; Eigenschaft vom Typ String, die dazu verwendet wird, um für einen Feldwert den
Wert null einzugeben. Kann vom Benutzer definiert werden, um Verwechslungen mit einem
leeren String ("") oder einem anderen gültigen Wert zu vermeiden. Der Standardstring lautet
{_NULL_}.
RDBMSResolver.reconcileResults
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.reconcileResults(eventObject)
Parameter
eventObject Resolver-Ereignisobjekt; beschreibt das Ereignisobjekt, mit dem zwei
updatePackets verglichen werden. Dieses Resolver-Ereignisobjekt sollte folgende
Eigenschaften enthalten:
Eigenschaft
Beschreibung
target
Objekt; der Resolver, der dieses Ereignis auslöst.
type
String; der Name des Ereignisses.
Rückgaben
Keine.
Beschreibung
Ereignis; wird von der Resolver-Komponente aufgerufen, um zwei Pakete zu vergleichen,
nachdem die Ergebnisse vom Server eingegangen sind und auf das deltaPacket angewendet
wurden.
490
Kapitel 4: Komponenten-Referenz
Ein einzelnes updateResults-Paket kann sowohl Ergebnisse aus Operationen aus dem
deltaPacket als auch Informationen über von anderen Clients durchgeführte Aktualisierungen
enthalten. Wird ein neues updatePacket empfangen, werden die Operationsergebnisse und die
Datenbankaktualisierungen in zwei updatePackets aufgeteilt und separat in die deltaPacketEigenschaft platziert. Das Ereignis reconcileResults wird ausgelöst, unmittelbar bevor das
deltaPacket, das die Operationsergebnisse enthält, mit Hilfe der Datenbindung gesendet wird.
Beispiel
Im folgenden Beispiel werden zwei updatePackets abgeglichen und die Aktualisierungen nach
erfolgreichem Abschluss zurückgegeben und gelöscht:
on (reconcileResults) {
// Ergebnisse analysieren
if( examine( updateResults ))
meinDataSet.purgeUpdates();
else
displayErrors( results );
}
RDBMSResolver.reconcileUpdates
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.reconcileUpdates(eventObject)
Parameter
Resolver-Ereignisobjekt; beschreibt die Anpassungen, die am XML-Paket
vorgenommen werden, bevor die Aktualisierung über die Datenverbindung an die Datenbank
gesendet wird. Dieses Resolver-Ereignisobjekt sollte folgende Eigenschaften enthalten:
eventObject
Eigenschaft
Beschreibung
target
Objekt; der Resolver, der dieses Ereignis auslöst.
type
String; der Name des Ereignisses.
Rückgaben
Keine.
RDBMSResolver-Komponente (nur Flash Professional)
491
Beschreibung
Ereignis; wird von der Resolver-Komponente aufgerufen, wenn nach Anwendung der
Aktualisierungen aus einem deltaPacket Ergebnisse vom Server empfangen wurden. Ein
einzelnes updateResults-Paket kann sowohl Ergebnisse aus Operationen aus dem deltaPacket
als auch Informationen über von anderen Clients durchgeführte Aktualisierungen enthalten.
Wenn ein neues updatePacket empfangen wird, werden die Operationsergebnisse und die
Datenbankaktualisierungen in zwei deltaPackets aufgeteilt und separat in die deltaPacketEigenschaft platziert. Das Ereignis reconcileUpdates wird ausgelöst, unmittelbar bevor das
deltaPacket, das die Datenbankaktualisierungen enthält, mit Hilfe der Datenbindung gesendet
wird.
Beispiel
Im folgenden Beispiel werden zwei Ergebnisse abgeglichen und die Aktualisierungen nach
erfolgreichem Abschluss gelöscht:
on (reconcileUpdates) {
// Ergebnisse analysieren
if( examine( updateResults ))
meinDataSet.purgeUpdates();
else
displayErrors( results );
RDBMSResolver.tableName
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.deltaPacket
Beschreibung
Eigenschaft; eine Eigenschaft vom Typ String, die dazu eingesetzt wird, um den Tabellennamen
in der XML für die zu aktualisierende Datenbanktabelle darzustellen. Damit wird auch festgelegt,
welche Felder im updatePacket gesendet werden sollen. Zu diesem Zweck vergleicht die
Resolver-Komponente den Wert dieser Eigenschaft mit dem für die Eigenschaft
fieldInfo.ownerName angegebenen Wert. Wenn ein Feld in der Sammeleigenschaft fieldInfo
über keinen Eintrag verfügt, wird es in das updatePacket abgelegt. Wenn ein Feld in der
Sammeleigenschaft fieldInfo über einen Eintrag verfügt und der Wert für die Eigenschaft
ownerName null oder mit der Eigenschaft tableName der Resolver-Komponente identisch ist,
dann wird das Feld in das updatePacket abgelegt. Wenn ein Feld in der Sammeleigenschaft
fieldInfo über einen Eintrag verfügt und der Wert für die Eigenschaft ownerName nicht null
oder nicht mit der Eigenschaft tableName der Resolver-Komponente identisch ist, dann wird das
Feld nicht in das updatePacket abgelegt.
492
Kapitel 4: Komponenten-Referenz
RDBMSResolver.updateMode
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.deltaPacket
Beschreibung
Eigenschaft; eine Eigenschaft, die mehrere Werte enthält, welche festlegen, wie Schlüsselfelder bei
der Erstellung des XML-Aktualisierungspakets identifiziert werden. Die drei folgenden Strings
sind Werte für diese Eigenschaft:
Wert
Beschreibung
umUsingAll
Verwendet die alten Werte aller modifizierten Felder, um den
zu aktualisierenden Datensatz zu identifizieren. Dies ist der
sicherste Wert für die Aktualisierung, da Sie so sicherstellen
können, dass der abgerufene Datensatz in der Zwischenzeit
nicht von einem anderen Benutzer geändert wurde. Diese
Methode ist jedoch zeitaufwändiger und erzeugt ein größeres
Aktualisierungspaket.
umUsingModified
Verwendet die alten Werte aller modifizierten Felder, um den
zu aktualisierenden Datensatz zu identifizieren. Mit diesem
Wert können Sie sicherstellen, dass kein anderer Benutzer die
gleichen Felder im Datensatz geändert hat, seit Sie den
Datensatz abgerufen haben.
umUsingKey
Dies ist der Standardwert für diese Eigenschaft. Es werden die
alten Werte der Schlüsselfelder verwendet. Dies setzt eine
optimistische Synchronisation voraus, was bei den meisten
heutigen Datenbanksystemen der Fall ist, und garantiert, dass
Sie denselben Datensatz modifizieren, den Sie auch von der
Datenbank abgerufen haben. Die von Ihnen vorgenommenen
Änderungen überschreiben Änderungen, die andere Benutzer
möglicherweise an den gleichen Daten vorgenommen haben.
RDBMSResolver.updatePacket
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.deltaPacket
RDBMSResolver-Komponente (nur Flash Professional)
493
Beschreibung
Beschreibung
Eigenschaft; eine Eigenschaft vom Typ XML, die dazu eingesetzt wird, um Eigenschaften an eine
Datenverbindung zu binden, mit denen das übersetzte Aktualisierungspaket mit den Änderungen
zur Aktualisierung der Datenquelle zurück an den Server gesendet wird. Das XML-Dokument
enthält das Paket der DataSet-Änderungen.
RDBMSResolver.updateResults
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
resolveData.deltaPacket
Beschreibung
Eigenschaft; eine Eigenschaft vom Typ deltaPacket, die die Ergebnisse einer Aktualisierung
enthält, die über eine Datenverbindung vom Server zurückgegeben wurde. Übermitteln Sie mit
Hilfe dieser Eigenschaft Fehler und aktualisierte Daten vom Server an ein DataSet; beispielsweise,
wenn der Server für ein automatisch zugewiesenes Feld neue IDs zuweist. Binden Sie diese
Eigenschaft an die Results-Eigenschaft einer Datenverbindung, damit diese die Ergebnisse einer
Aktualisierung empfangen und zurück an das DataSet übermitteln kann.
Meldungen in der Eigenschaft updateResults werden als Fehler behandelt. Dies bedeutet, dass
dem deltaPacket erneut ein Delta mit Meldungen hinzugefügt wird, damit es beim nächsten
Mal, wenn das deltaPacket an den Server geschickt wird, erneut versendet werden kann. Sie
müssen einen Code schreiben, der Deltas mit Meldungen verarbeitet, damit die Meldungen dem
Benutzer präsentiert und modifiziert werden, bevor sie dem nächsten deltaPacket hinzugefügt
werden.
494
Kapitel 4: Komponenten-Referenz
Remote Procedure Call (RPC)-Komponenten-API
ActionScript-Klassennamemx.data.components.RPC
Die Remote Procedure Call (RPC)-Komponenten-API ist eine Schnittstelle (eine Gruppe von
Methoden, Eigenschaften und Ereignissen), die von einer Flash MX 2004 v2-Komponente
implementiert werden kann. Die RPC-Komponenten-API definiert eine einfache Möglichkeit,
um Parameter an eine externe Quelle wie z. B. einen Webdienst zu senden und von dieser
Ergebnisse zu empfangen.
Zu den Komponenten, welche die RPC-API implementieren, gehören u. a. die
WebServiceConnector- und die XMLConnector-Komponente. Diese Komponenten fungieren
als Datenverbindungen zwischen einer externen Datenquelle wie einem Webdienst oder einer
XML-Datei und einer UI-Komponente Ihrer Anwendung.
Eine RPC-Komponente kann eine einzelne externe Funktion aufrufen, Parameter einleiten und
Ergebnisse empfangen. Die Komponente kann dieselbe Funktion mehrmals aufrufen. Um
mehrere Funktionen aufzurufen, müssen Sie mehrere Komponenten verwenden.
Übersicht: Eigenschaften der RPC-Komponentenklasse
Eigenschaft
Beschreibung
RPC.multipleSimultaneousAllowed
Zeigt an, ob mehrere Aufrufe gleichzeitig erfolgen können.
RPC.params
Gibt Daten an, die bei Ausführung der nächsten trigger()Operation an den Server gesendet werden.
RPC.results
Identifiziert Daten, die als Ergebnis einer trigger()-Operation
vom Server empfangen wurden.
RPC.suppressInvalidCalls
Gibt an, ob ein Aufruf bei ungültigen Parametern unterdrückt
werden soll.
Übersicht: Methoden der RPC-Komponentenklasse
Methode
Beschreibung
RPC.trigger()
Löst einen Remote Procedure Call aus.
Übersicht: Ereignisse der RPC-Komponentenklasse
Ereignis
Beschreibung
RPC.result
Broadcastübertragung, wenn ein Remote Procedure Call
erfolgreich ausgeführt wurde.
RPC.send
Broadcastübertragung, wenn eine trigger()-Funktion läuft,
nachdem die Parameterdaten erfasst wurden, jedoch bevor
die Daten validiert werden und der Remote Call initiiert wird.
RPC.status
Broadcastübertragung, wenn ein Remote Procedure Call
initiiert wird, um den Benutzer über den Status der Operation
zu informieren.
Remote Procedure Call (RPC)-Komponenten-API
495
RPC.multipleSimultaneousAllowed
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.multipleSimultaneousAllowed;
Beschreibung
Eigenschaft; zeigt an, ob mehrere Aufrufe gleichzeitig erfolgen können. Bei „false“ führt die
trigger()-Funktion einen Aufruf aus, wenn sich bereits ein anderer Aufruf in Bearbeitung
befindet. Es wird ein status-Ereignis mit dem Code CallAlreadyInProgress ausgegeben.
Wenn der Wert „true“ ist, findet der Aufruf statt.
Wenn gleichzeitig mehrere Aufrufe laufen, ist nicht gewährleistet, dass diese in der Reihenfolge
ihrer Auslösung abgeschlossen werden. Außerdem kann der Flash Player die Anzahl der
gleichzeitig ausgeführten Netzwerkoperationen beschränken. Die maximal zulässige Anzahl
richtet sich nach Version und Plattform.
RPC.params
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.params;
Beschreibung
Eigenschaft; gibt Daten an, die bei Ausführung der nächsten trigger()-Operation an den Server
gesendet werden. Jede RPC-Komponente definiert, wie diese Daten verwendet werden und
welche gültigen Typen es gibt.
RPC.result
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.addEventListener("result", meinListenerObject);
496
Kapitel 4: Komponenten-Referenz
Beschreibung
Ereignis; leitet eine Broadcastübertragung ein, wenn eine Remote Procedure Call-Operation
erfolgreich abgeschlossen wurde.
Der Parameter für die Ereignisprozedur ist ein Objekt mit folgenden Feldern:
•
•
type:
Der String "result"
Ein Verweis auf das Objekt, von dem das Ereignis ausgegeben wurde, z. B. eine
WebServiceConnector-Komponente
target:
Sie können den tatsächlichen Ergebniswert mit Hilfe der Eigenschaft results abrufen.
RPC.results
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.results;
Beschreibung
Eigenschaft; identifiziert Daten, die als Ergebnis einer trigger()-Operation vom Server
empfangen wurden. Jede RPC-Komponente definiert, wie diese Daten abgerufen werden und
welche gültigen Typen es gibt. Diese Daten werden angezeigt, wenn die RPC-Operation
erfolgreich abgeschlossen wurde, was durch das Ereignis result signalisiert wird. Die Daten
stehen bis zum Entladen der Komponente oder bis zur nächsten RPC-Operation zur Verfügung.
Es kann sein, dass die zurückgegebenen Daten einen sehr großen Umfang haben. Für die
Verwaltung gibt es 2 Möglichkeiten:
• Wählen Sie als übergeordnetes Element für die RPC-Komponente einen geeigneten Movieclip,
•
eine Zeitleiste oder einen Bildschirm. Der Speicherinhalt der Komponente kann als Abfall
erfasst werden, wenn das übergeordnete Element die Verbindung beendet.
In ActionScript können Sie dieser Eigenschaft jederzeit den Wert null zuweisen.
RPC.send
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.addEventListener("send", meinListenerObject);
Remote Procedure Call (RPC)-Komponenten-API
497
Beschreibung
Ereignis; führt während der Verarbeitung einer trigger()-Operation eine Broadcastübertragung
durch, und zwar nachdem die Parameterdaten erfasst wurden, jedoch bevor diese validiert werden
und der Remote Procedure Call initiiert wird. Hier sollte Code platziert werden, der die
Parameterdaten vor dem Aufruf modifiziert.
Der Parameter für die Ereignisprozedur ist ein Objekt mit folgenden Feldern:
•
•
type:
Der String "send"
target: Ein Verweis auf das Objekt, von dem das Ereignis ausgegeben wurde, z. B. eine
WebServiceConnector-Komponente
Sie können die tatsächlichen Parameterwerte mit Hilfe der Eigenschaft params abrufen oder
modifizieren.
RPC.status
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.addEventListener("status", meinListenerObject);
Beschreibung
Ereignis; Broadcastübertragung, wenn ein Remote Procedure Call initiiert wird, um den Benutzer
über den Status der Operation zu informieren.
Der Parameter für die Ereignisprozedur ist ein Objekt mit folgenden Feldern:
•
•
•
•
498
type:
Der String "status"
Ein Verweis auf das Objekt, von dem das Ereignis ausgegeben wurde, z. B. eine
WebServiceConnector-Komponente
code: Ein String, der den Namen der bestimmten Bedingung angibt, die eingetreten ist.
data: Ein Objekt, dessen Inhalt vom Code abhängt.
target:
Kapitel 4: Komponenten-Referenz
Die folgenden Codes und zugehörigen Daten sind für das Status-Ereignis verfügbar:
Code
Daten
StatusChange
{callsInProgress:nnn} Dieses Ereignis wird ausgegeben, wenn der Aufruf
eines Webdienstes beginnt oder endet. Das Element
"nnn" gibt an, wie viele Aufrufe sich derzeit in
Bearbeitung befinden.
CallAlreadyInProgress Keine Daten
InvalidParams
Keine Daten
Beschreibung
Dieses Ereignis wird ausgegeben, wenn (a) die
Funktion trigger() aufgerufen wird, und (b) der Wert
für multipleSimultaneousAllowed „false“ ist, und (c)
bereits ein Aufruf läuft. Nach Eintreten dieses
Ereignisses gilt der versuchte Aufruf als
abgeschlossen; es gibt kein Ereignis "result" oder
"send".
Dieses Ereignis wird ausgegeben, wenn die Funktion
trigger() festgestellt hat, dass die Eigenschaft
"params" keine gültigen Daten enthielt. Wenn die
Eigenschaft "suppressInvalidCalls" den Wert „true“
hat, gilt der versuchte Aufruf als abgeschlossen; es
gibt kein Ereignis "result" oder "send".
RPC.suppressInvalidCalls
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.suppressInvalidCalls;
Beschreibung
Eigenschaft; gibt an, ob ein Aufruf bei ungültigen Parametern unterdrückt werden soll. Bei true
führt die Funktion trigger() keinen Aufruf durch, wenn bei der Überprüfung der gebundenen
Parameter ein Fehler auftritt. Es wird ein "status"-Ereignis mit dem Code InvalidParams
ausgegeben. Bei false findet der Aufruf statt, wobei bei Bedarf auf die ungültigen Daten Bezug
genommen wird.
RPC.trigger()
Verfügbarkeit
Flash Player 7.
Edition
Flash MX Professional 2004.
Verwendung
componentInstance.trigger();
Remote Procedure Call (RPC)-Komponenten-API
499
Beschreibung
Methode; initiiert einen Remote Procedure Call. Jede RPC-Komponente definiert exakt, was
dafür erforderlich ist. Bei erfolgreicher Operation werden die Ergebnisse in der Eigenschaft
results der RPC-Komponente angezeigt.
Die Methode trigger() führt folgende Schritte aus:
1 Sind Daten an die Eigenschaft params gebunden, führt die Methode alle Bindungen aus um
sicherzustellen, dass aktuelle Daten verfügbar sind. Dadurch wird auch eine Datenvalidierung
veranlasst.
2 Wenn die Daten ungültig sind und suppressInvalidCalls auf den Wert true gesetzt wurde,
wird die Operation nicht fortgesetzt.
3 Wenn die Operation fortgesetzt wird, wird das send-Ereignis abgesetzt.
4 Der tatsächliche Remote Call wird über die angegebene Verbindungsmethode (z. B. HTTP)
initiiert.
Screen-Klasse (nur Flash Professional)
Vererbung
UIObject > UIComponent > View > Loader > Screen
ActionScript-Klassenname
mx.screens.Screen
Die Screen-Klasse ist die Basisklasse für Bildschirme, die Sie im Übersichtsfenster in Flash MX
Professional 2004 erstellen. Bildschirme verfügen über komplexe Behälter für das Erstellen von
Anwendungen und Präsentationen. Eine Übersicht zum Arbeiten mit Bildschirmen finden Sie
unter „Mit Bildschirmen arbeiten (nur Flash Professional)“ in der Hilfe „Flash verwenden“.
Die Screen-Klasse besitzt zwei wichtige Unterklassen: Slide und Form.
Die Slide-Klasse gibt Aufschluss über das Laufzeitverhalten von Folienpräsentationen. Die SlideKlasse enthält integrierte Navigations- und Sequenzierungsfunktionen sowie die Möglichkeit, mit
Hilfe von Verhalten problemlos Übergänge zwischen Folien einzufügen. Bei Folienobjekten wird
ein „Zustand“ erhalten, sodass der Benutzer zur nächsten oder vorherigen Folie bzw. zum
nächsten oder vorherigen Zustand wechseln kann: wird die nächste Folie angezeigt, wird die
vorherige verborgen. Weitere Informationen über die Arbeit mit der Slide-Klasse zur Steuerung
von Folienpräsentationen finden Sie unter „Slide-Klasse (nur Flash Professional)“ auf Seite 529.
Die Form-Klasse schafft die Laufzeitumgebung für Formularanwendungen. Formulare können
sich überlappen und als Behälter anderer Komponenten fungieren oder in anderen Komponenten
enthalten sein. Im Gegensatz zu Folien gibt es bei Formularen keine Sequenzierungs- oder
Navigationsmöglichkeiten. Weitere Informationen zum Arbeiten mit der Form-Klasse finden Sie
unter „Form-Klasse (nur Flash Professional)“ auf Seite 308.
Die Screen-Klasse bietet Funktionen, die Folien und Formularen gemein sind.
Jeder Bildschirm verfügt
über eine integrierte Eigenschaft, bei der es sich um eine Sammlung von Bildschirmen als
Unterobjekte handelt. Diese Sammlung wird durch das Layout der Bildschirmhierarchie im
Bildschirmfenster festgelegt. Bildschirme können eine beliebige Anzahl von Unterobjekten (auch
null) haben, die selbst wiederum untergeordnete Objekte haben können.
Bildschirme wissen, wie sie ihre Unterobjekte verwalten müssen
500
Kapitel 4: Komponenten-Referenz
Bildschirme können ihre Unterobjekte verbergen/anzeigen Da es sich bei Bildschirmen im
Wesentlichen um eine Sammlung verschachtelter Movieclips handelt, kann ein Bildschirm die
Sichtbarkeit seiner Unterobjekte steuern. Bei Formularanwendungen sind standardmäßig alle
Unterobjekte eines Bildschirms gleichzeitig sichtbar; bei Folienpräsentationen werden in der
Regel jeweils Einzelbildschirme gezeigt.
Bildschirme nehmen Broadcastübertragungen von Ereignissen vor Sie können
beispielsweise das Abspielen einer Sound- oder einer Videosequenz auslösen, sobald ein
bestimmter Bildschirm sichtbar wird.
Externe Inhalte in Bildschirme laden (nur Flash Professional)
Die Screen-Klasse erweitert die Loader-Klasse (siehe „Loader-Komponente“ auf Seite 349),
welche die Möglichkeit bietet, externe SWFs (und JPEGs) problemlos zu verwalten und zu laden.
Die Loader-Klasse enthält eine Eigenschaft mit dem Namen contentPath, welche die URL einer
externen SWF- oder JPEG-Datei oder den Verknüpfungsbezeichner eines Movieclips in der
Bibliothek angibt.
Mit Hilfe dieser Funktion können Sie externe Baumstrukturen (oder jede beliebige externe SWF)
als Unterobjekt eines Bildschirmknotens laden. Dies ist eine nützliche Möglichkeit, Ihre
bildschirmbasierten Filme zu modularisieren und sie in mehrere, separate SWFs aufzugliedern.
Angenommen, Sie haben eine Folienpräsentation, zu der drei Leute jeweils einen Abschnitt
beisteuern. Sie können jeden der Präsentatoren darum bitten, eine eigene Folienpräsentation
(SWF) zu erstellen. Anschließend erstellen Sie eine „Master-Folienpräsentation“ mit drei
Platzhalter-Folien für die drei Einzelpräsentationen. Für jede Platzhalter-Folie können Sie deren
Eigenschaft contentPath der jeweiligen SWF zuweisen.
So kann beispielsweise die „Master“-Folienpräsentation so angeordnet werden wie in der
nachfolgenden Illustration dargestellt:
Folie mit
Einleitung
Platzhalter-Folien
der Präsentatoren
Struktur der „Master“-SWF-Folienpräsentation
Angenommen, Sie haben von den Präsentatoren die drei SWFs speaker_1.swf, speaker_2.swf
und speaker_3.swf erhalten. Sie können die Gesamtpräsentation einfach zusammenfügen, indem
Sie für jede Platzhalter-Folie die Eigenschaft contentPath angeben, und zwar entweder mit Hilfe
von ActionScript oder indem Sie für jede Folie die Eigenschaft contentPath im
Eigenschafteninspektor festlegen.
Speaker_1.contentPath = speaker_1.swf;
Speaker_2.contentPath = speaker_2.swf;
Speaker_3.contentPath = speaker_3.swf;
Screen-Klasse (nur Flash Professional)
501
Sie können die Eigenschaft contentPath für die einzelnen Folien auch mit dem
Eigenschafteninspektor festlegen. Beachten Sie Folgendes: Wenn Sie im Eigenschafteninspektor
(oder mittels Code, siehe oben) die Eigenschaft contentPath der Folie einstellen, lädt die
vorgegebene SWF standardmäßig, sobald die SWF der „Master-Präsentation“ geladen ist. Zur
Verkürzung der Anfangsladezeit sollten Sie überlegen, ob Sie die contentPath-Eigenschaft nicht
im Rahmen einer on(reveal)-Prozedur festlegen, die Sie den einzelnen Folien zuweisen.
// Der Folie Speaker_1 zugewiesen
on(reveal) {
this.contentPath="speaker_1.swf";
}
Alternativ dazu haben Sie die Möglichkeit, false für die autoLoad-Eigenschaft der Folie (von
der Loader-Klasse vererbt) einzurichten und dann nach Freigabe der Folie die Methode load()
der Folie (ebenfalls von der Loader-Klasse vererbt) aufzurufen.
// Der Folie Speaker_1 zugewiesen
on(reveal) {
this.load();
}
Mit ActionScript auf geladene Bildschirme verweisen
Die Loader-Klasse erstellt einen internen Movieclip mit dem Namen contentNode, in den sie die
von der Eigenschaft contentPath vorgegebene SWF oder JPEG lädt. Dieser Movieclip fügt in
der Praxis einen zusätzlichen Bildschirmknoten zwischen der „Platzhalter“-Folie (die Sie in der
vorstehend beschriebenen „Master“-Präsentation erstellt haben) und der ersten Folie der
geladenen Folienpräsentation ein.
Angenommen, die für die Platzhalter-Folie Speaker_1 erstellte SWF (siehe Illustration oben) hat
folgende Struktur, wie im Übersichtsfenster dargestellt:
Struktur der SWF-Folienpräsentation Speaker 1
502
Kapitel 4: Komponenten-Referenz
Zur Laufzeit, wenn die SWF Speaker 1 in die Platzhalter-Folie geladen wird, hat die
Gesamtpräsentation nun folgende Struktur:
Zur Laufzeit von der
Loader-Klasse eingefügt
Struktur von „Master“- und „Speaker“-Präsentation (Laufzeit)
Die Eigenschaften und Methoden der Screen-, Slide- und Form-Klasse „ignorieren“ diesen
contentHolder-Knoten, soweit möglich. Gemäß der vorstehenden Illustration ist also die Folie
Meinepräsentation (mit ihren Unterfolien) Teil der aufeinander folgenden Folienstruktur, welche
an der Präsentationsfolie verankert ist, und wird nicht als separate Unterstruktur behandelt.
Übersicht: Methoden der Screen-Klasse
Methode
Beschreibung
Screen.getChildScreen()
Gibt den untergeordneten Bildschirm dieses Bildschirms an einem
bestimmten Index zurück.
Erbt alle Methoden von UIObject, UIComponent, View und Loader-Komponente.
Screen-Klasse (nur Flash Professional)
503
Übersicht: Eigenschaften der Screen-Klasse
Eigenschaft
Beschreibung
Screen.currentFocusedScreen
Gibt den Bildschirm zurück, der den aktuellen globalen Fokus
enthält.
Screen.indexInParent
Gibt den Index des Bildschirms (Bezugsbasis null) in der im
übergeordneten Bildschirm befindlichen Liste der
untergeordneten Bildschirme zurück.
Screen.numChildScreens
Gibt die Anzahl der im Bildschirm enthaltenen untergeordneten
Bildschirme zurück.
Screen.parentIsScreen
Gibt einen Booleschen Wert (true oder false) zurück, der angibt,
ob das übergeordnete Objekt des Bildschirms selbst ein
Bildschirm ist.
Screen.rootScreen
Gibt den Stammbildschirm der (untergeordneten) Struktur zurück,
die den Bildschirm enthält.
Erbt alle Eigenschaften von UIObject, UIComponent, View und Loader-Komponente.
Übersicht: Ereignisse der Screen-Klasse
Ereignis
Beschreibung
Screen.allTransitionsInDone
Broadcastübertragung, wenn alle auf einen Bildschirm
angewendeten „in“-Übergänge beendet sind.
Screen.allTransitionsOutDone Broadcastübertragung, wenn alle auf einen Bildschirm
angewendeten „out“-Übergänge beendet sind.
Screen.mouseDown
Broadcastübertragung, wenn die Maustaste über einem Objekt
(Form oder Movieclip) gedrückt wurde, das direkt dem Bildschirm
gehört.
Screen.mouseDownSomewhere
Broadcastübertragung, wenn die Maustaste irgendwo auf der
Bühne, jedoch nicht unbedingt auf einem Objekt, das diesem
Bildschirm gehört, gedrückt wurde.
Screen.mouseMove
Broadcastübertragung, wenn die Maus bewegt wird, während sie
sich über dem Bildschirm befindet.
Screen.mouseOut
Broadcastübertragung, wenn die Maus von innerhalb des
Bildschirms nach außen bewegt wird.
Screen.mouseOver
Broadcastübertragung, wenn die Maus von außerhalb dieses
Bildschirms nach innen bewegt wird.
Screen.mouseUp
Broadcastübertragung, wenn die Maustaste über einem Objekt
(Form oder Movieclip) losgelassen wurde, das direkt dem
Bildschirm gehört.
Screen.mouseUpSomewhere
Broadcastübertragung, wenn die Maustaste irgendwo auf der
Bühne, jedoch nicht unbedingt auf einem Objekt, das diesem
Bildschirm gehört, losgelassen wurde.
Erbt alle Ereignisse von UIObject, UIComponent, View und Loader-Komponente.
504
Kapitel 4: Komponenten-Referenz
Screen.allTransitionsInDone
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(allTransitionsInDone) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.allTransitionsInDone = function(eventObject){
// Hier Code eingeben
}
screenObj.addEventListener("allTransitionsInDone", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn alle auf einen Bildschirm angewendeten „in“-Übergänge
beendet sind. Das Ereignis allTransitionsInDone wird von dem mit meinScreen verknüpften
Übergangsmanager übertragen.
Beispiel
Im folgenden Beispiel wird eine Schaltfläche (nextSlide_btn), die sich in der Folie mit dem
Namen meineSlide befindet, sichtbar gemacht, nachdem alle auf meineSlide angewendeten
„in“-Übergänge abgeschlossen sind.
// Angehängt an meineSlide:
on(allTransitionsInDone) {
this.nextSlide_btn._visible = true;
}
Siehe auch
Screen.allTransitionsOutDone
Screen.allTransitionsOutDone
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(allTransitionsOutDone) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.allTransitionsOutDone = function(eventObject){
// Hier Code eingeben
}
screenObj.addEventListener("allTransitionsOutDone", listenerObject)
Screen-Klasse (nur Flash Professional)
505
Beschreibung
Ereignis; Broadcastübertragung, wenn alle auf einen Bildschirm angewendeten „out“-Übergänge
beendet sind. Das Ereignis allTransitionsOutDone wird von dem mit meinScreen
verknüpften Übergangsmanager übertragen.
Siehe auch
Screen.currentFocusedScreen
Screen.currentFocusedScreen
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
mx.screens.Screen.currentFocusedScreen
Beschreibung
Statische Eigenschaft (schreibgeschützt); gibt einen Verweis auf das am weitesten verzweigte
Bildschirmobjekt zurück, das den aktuellen globalen Fokus enthält. Der Fokus kann sich auf dem
Bildschirm selbst oder in einem Movieclip, Textobjekt oder in einer Komponente innerhalb dieses
Bildschirms befinden. Die Standardeinstellung ist null, wenn es keinen aktuellen Fokus gibt.
Beispiel
Im folgenden Beispiel wird der Name des aktuell ausgewählten Bildschirms im Ausgabefenster
angezeigt.
var currentFocus:mx.screens.Screen = mx.screens.Screen.currentFocusedScreen;
trace("Der aktuelle Bildschirm ist: " + currentFocus._name);
Screen.getChildScreen()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinScreen.getChildScreen(index)
Parameter
Eine Zahl, die den Index (Bezugsbasis null) des zurückzugebenden
untergeordneten Bildschirms angibt.
childIndex
506
Kapitel 4: Komponenten-Referenz
Rückgaben
Ein Bildschirmobjekt.
Beschreibung
Methode; gibt das untergeordnete Bildschirmobjekt von meinScreen zurück, dessen Index
childIndex ist.
Beispiel
Im folgenden Beispiel sind im Ausgabefenster die Namen aller untergeordneten Bildschirme
angezeigt, die zum Stammbildschirm mit der Bezeichnung präsentation gehören.
for (var i:Number = 0; i < _root.präsentation.numChildScreens; i++) {
var childScreen:mx.screens.Screen = _root.präsentation.getChildScreen(i);
trace(childScreen._name);
}
Screen.indexInParent
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinScreen.indexInParent
Beschreibung
Eigenschaft (schreibgeschützt); sie enthält den Index (Bezugsbasis null) von meinScreen in der
Liste der untergeordneten Bildschirme aus dessen übergeordnetem Bildschirm.
Beispiel
Im folgenden Beispiel ist die relative Position des Bildschirms meinScreen in der Liste der
untergeordneten Bildschirme von dessen übergeordnetem Bildschirm dargestellt.
var numChildren:Number = meinScreen._parent.numChildScreens;
var meinIndex:Number = meinScreen.indexInParent;
trace("Ich bin die untergeordnete Folie Nr. " + meinIndex + " von " +
numChildren + " Bildschirmen.");
Screen.mouseDown
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Screen-Klasse (nur Flash Professional)
507
Verwendung
on(mouseDown) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.mouseDown = function(eventObj){
// Hier Code eingeben
}
screenObj.addEventListener("mouseDown", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn die Maustaste über einem Objekt (z. B. eine Form oder ein
Movieclip) gedrückt wurde, das direkt dem Bildschirm gehört.
Wird das Ereignis ausgelöst, leitet es automatisch ein Ereignisobjekt (eventObj) an die Prozedur
weiter. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis
enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis
reagiert. (Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“
auf Seite 619.)
Beispiel
Im folgenden Code ist der Name des Bildschirms dargestellt, welcher das Mausereignis im
Ausgabefenster erfasste.
on(mouseDown) {
trace("Mouse-down-Ereignis in: " + eventObj.target._name);
}
Screen.mouseDownSomewhere
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(mouseDown) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.mouseDownSomewhere = function(eventObject){
// Hier Code eingeben
}
screenObj.addEventListener("mouseDownSomewhere", listenerObject)
508
Kapitel 4: Komponenten-Referenz
Beschreibung
Ereignis; Broadcastübertragung, wenn die Maustaste gedrückt wird, jedoch nicht unbedingt über
dem angegebenen Bildschirm.
Wird das Ereignis ausgelöst, leitet es automatisch ein Ereignisobjekt (eventObj) an die Prozedur
weiter. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis
enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis
reagiert. (Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“
auf Seite 619.)
Screen.mouseMove
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(mouseDown) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.mouseMove = function(eventObject){
// Hier Code eingeben
}
screenObj.addEventListener("mouseMove", listenerObject)
Beschreibung
Ereignis; Broadcast wenn sich die Maus bewegt, während sie sich über dem Bildschirm befindet.
Dieses Ereignis wird nur dann gesendet, wenn sich die Maus über der Begrenzungsbox dieses
Bildschirms befindet.
Wird das Ereignis ausgelöst, leitet es automatisch ein Ereignisobjekt (eventObj) an die Prozedur
weiter. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis
enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis
reagiert. (Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“
auf Seite 619.)
Hinweis: Der Einsatz dieses Ereignisses kann die Systemleistung beeinträchtigen und sollte
sorgfältig abgewogen werden.
Screen.mouseOut
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Screen-Klasse (nur Flash Professional)
509
Verwendung
on(mouseOut) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.mouseOut = function(eventObject){
// Hier Code eingeben
}
screenObj.addEventListener("mouseOut", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn sich die Maus von innerhalb der Begrenzungsbox des
Bildschirms zu einem Punkt außerhalb desselben bewegt.
Wird das Ereignis ausgelöst, leitet es automatisch ein Ereignisobjekt (eventObj) an die Prozedur
weiter. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis
enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis
reagiert. (Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“
auf Seite 619.)
Hinweis: Der Einsatz dieses Ereignisses kann die Systemleistung beeinträchtigen und sollte
sorgfältig abgewogen werden.
Screen.mouseOver
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(mouseDown) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.mouseOver = function(eventObject){
// Hier Code eingeben
}
screenObj.addEventListener("mouseOver", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn sich die Maus von außerhalb der Begrenzungsbox des
Bildschirms zu einem Punkt innerhalb desselben bewegt.
Wird das Ereignis ausgelöst, leitet es automatisch ein Ereignisobjekt (eventObj) an die Prozedur
weiter. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis
enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis
reagiert. (Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“
auf Seite 619.)
Hinweis: Der Einsatz dieses Ereignisses kann die Systemleistung beeinträchtigen und sollte
sorgfältig abgewogen werden.
510
Kapitel 4: Komponenten-Referenz
Screen.mouseUp
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(mouseUp) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.mouseUP = function(eventObject){
// Hier Code eingeben
}
screenObj.addEventListener("mouseUp", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn die Maus über dem Bildschirm losgelassen wird.
Wird das Ereignis ausgelöst, leitet es automatisch ein Ereignisobjekt (eventObj) an die Prozedur
weiter. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis
enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis
reagiert. (Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“
auf Seite 619.)
Screen.mouseUpSomewhere
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(mouseUpSomewhere) {
// Hier Code eingeben
}
listenerObject = new Object();
listenerObject.mouseUpSomewhere = function(eventObject){
// Hier Code eingeben
}
screenObj.addEventListener("mouseUpSomewhere", listenerObject)
Beschreibung
Ereignis; Broadcastübertragung, wenn die Maustaste gedrückt wird, jedoch nicht unbedingt über
dem angegebenen Bildschirm.
Screen-Klasse (nur Flash Professional)
511
Wird das Ereignis ausgelöst, leitet es automatisch ein Ereignisobjekt (eventObj) an die Prozedur
weiter. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum Ereignis
enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das Ereignis
reagiert. (Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“
auf Seite 619.)
Screen.numChildScreens
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinScreen.numChildScreens
Beschreibung
Eigenschaft (schreibgeschützt); gibt die Zahl der in meinScreen enthaltenen untergeordneten
Bildschirme zurück.
Beispiel
Im folgenden Beispiel sind die Namen aller untergeordneten Bildschirme von meinScreen
angezeigt.
var howManyKids:Number = meinScreen.numChildScreens;
for(i=0; i<howManyKids; i++) {
var childScreen = meinScreen.getChildScreen(i);
trace(childScreen._name);
}
Siehe auch
Screen.getChildScreen()
Screen.parentIsScreen
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinScreen.parentIsScreen
Beschreibung
Eigenschaft (schreibgeschützt): gibt einen Booleschen Wert (true oder false) zurück, der
angibt, ob es sich bei dem übergeordneten Objekt des angegebenen Bildschirms ebenfalls um
einen Bildschirm handelt (true) oder nicht (false). Bei „false“ befindet sich meinScreen am
Fuß seiner Bildschirmhierarchie.
512
Kapitel 4: Komponenten-Referenz
Beispiel
Mit dem folgenden Code wird festgelegt, ob das übergeordnete Objekt des Bildschirms
meinScreen ebenfalls ein Bildschirm ist. Wenn ja, wird davon ausgegangen, dass meinScreen die
Ursprungs- oder Master-Folie in der Präsentation ist und somit keine gleichgeordneten Folien
hat. Andernfalls, wenn meinScreen.parentIsScreen den Wert true hat, wird die Zahl der
gleichgeordneten Folien von meinScreen im Ausgabefenster angezeigt.
wenn (meinScreen.parentIsScreen) {
trace("Ich habe "+meinScreen._parent.numChildScreens+" gleichgeordnete
Bildschirme");
} else {
trace("Ich bin der Ursprungsbildschirm und habe keine gleichgeordneten
Bildschirme");
}
Screen.rootScreen
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meinScreen.rootScreen
Beschreibung
Eigenschaft (schreibgeschützt); gibt den Bildschirm ganz oben in der Bildschirmhierarchie
zurück, der meinScreen enthält.
Beispiel
Im folgenden Beispiel wird der Name des Bildschirms, der meinScreen enthält, angezeigt.
var meinRoot:mx.screens.Screen = meinScreen.rootScreen angezeigt;
ScrollPane-Komponente
Mit der ScrollPane-Komponente werden Movieclips, JPEG-Dateien und SWF-Dateien in einem
Bereich mit Bildlaufleiste angezeigt. Sie können Bildlaufleisten aktivieren, um Bilder in einem
begrenzten Bereich anzuzeigen. Der angezeigte Inhalt kann von einem lokalen Speicherort oder
aus dem Internet geladen werden. Mit Hilfe von ActionScript können Sie den Inhalt für das
Bildlauffenster sowohl beim Authoring als auch zur Laufzeit festlegen.
Wenn der Inhalt des Bildlauffensters gültige Tabstopps enthält, erhalten diese Markierungen den
Fokus, sobald das Bildlauffenster den Fokus besitzt. Nach dem letzten Tabstopp im Inhalt
wechselt der Fokus zur nächsten Komponente. Die vertikalen und horizontalen Bildlaufleisten im
Bildlauffenster erhalten niemals den Fokus.
ScrollPane-Komponente
513
Eine ScrollPane-Instanz erhält den Fokus, wenn ein Benutzer darauf klickt oder mit dem
Tabulator dorthin springt. Wenn eine ScrollPane-Instanz den Fokus hat, können Sie diese mit
Hilfe der folgenden Tasten steuern:
Taste
Beschreibung
<Nach-unten>
Der Inhalt wird vertikal um eine Zeile nach oben verschoben.
<Ende>
Der Inhalt wird an den unteren Rand des Bildlauffensters verschoben.
<Links>
Der Inhalt wird horizontal um eine Zeile nach rechts verschoben.
<Pos 1>
Der Inhalt wird an den oberen Rand des Bildlauffensters verschoben.
Bild-ab-Taste
Der Inhalt wird vertikal um eine Seite nach oben verschoben.
Bild-auf-Taste
Der Inhalt wird vertikal um eine Seite nach unten verschoben.
<Rechts>
Der Inhalt wird horizontal um eine Zeile nach links verschoben.
<Nach-oben>
Der Inhalt wird vertikal um eine Zeile nach unten verschoben.
Weitere Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte
Fokusnavigation erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
In einer Live-Vorschau jeder einzelnen ScrollPane-Instanz werden die Änderungen an Parametern
im Eigenschafteninspektor oder Komponenten-Inspektor beim Authoring dargestellt.
ScrollPane-Komponente verwenden
Mit einem Bildlauffenster kann Inhalt angezeigt werden, der für den Bereich, in den er geladen
wird, zu groß ist. Wenn beispielsweise in einer Anwendung nur ein kleiner Bereich für ein großes
Bild zur Verfügung steht, können Sie es in ein Bildlauffenster laden.
Sie richten Bildlauffenster ein, damit Benutzer den Inhalt innerhalb des Fensters verschieben
können, indem Sie für den Parameter scrollDrag den Wert true angeben. In diesem Fall wird
der Mauszeiger über dem Inhalt als Hand dargestellt. Anders als bei den meisten anderen
Komponenten, wird die Broadcastübertragung der Ereignisse, die durch das Drücken der
Maustaste ausgelöst wird, so lange fortgesetzt, bis die Maustaste wieder losgelassen wird. Wenn
der Inhalt eines Bildlauffensters gültige Tabstopps enthält, muss für den Parameter scrollDrag
der Wert false festgelegt werden, da ansonsten mit jeder Mausbetätigung der Inhalt verschoben
wird.
ScrollPane-Parameter
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder KomponentenInspektor für jede ScrollPane-Komponenteninstanz festlegen:
contentPath gibt an, welcher Inhalt in das Bildlauffenster geladen werden soll. Für diesen Wert
kann der relative Pfad einer lokalen SWF- oder JPEG-Datei oder der relative bzw. absolute Pfad
einer Datei im Internet angegeben werden. Es kann jedoch auch der Verknüpfungsbezeichner
eines Movieclip-Symbols in der Bibliothek mit der Einstellung Export für ActionScript
angegeben werden.
hLineScrollSize gibt die Anzahl der Einheiten an, um die eine horizontale Bildlaufleiste bei
jedem Klick auf eine der Pfeilschaltflächen verschoben wird. Der Standardwert ist 5.
514
Kapitel 4: Komponenten-Referenz
gibt die Anzahl der Einheiten an, um die eine horizontale Bildlaufleiste bei
jedem Klick auf die Spur der Bildlaufleiste verschoben wird. Der Standardwert ist 20.
hPageScrollSize
hScrollPolicy zeigt die horizontalen Bildlaufleisten an. Folgende Werte sind gültig: on, off und
auto. Der Standardwert lautet auto.
ist ein Boolescher Wert, der angibt, ob ein Benutzer den Inhalt innerhalb des
Bildlauffensters verschieben kann (true) oder nicht (false). Der Standardwert lautet false.
scrollDrag
gibt die Anzahl der Einheiten an, um die eine vertikale Bildlaufleiste bei jedem
Klick auf eine der Pfeilschaltflächen verschoben wird. Der Standardwert ist 5.
vLineScrollSize
gibt die Anzahl der Einheiten an, um die eine vertikale Bildlaufleiste bei jedem
Klick auf die Spur der Bildlaufleiste verschoben wird. Der Standardwert ist 20.
vPageScrollSize
vScrollPolicy zeigt die vertikalen Bildlaufleisten an. Folgende Werte sind gültig: on, off und
auto. Der Standardwert lautet auto.
Mit Hilfe von ActionScript-Anweisungen können Sie diese und weitere Optionen für die
ScrollPane-Komponenten mit den Eigenschaften, Methoden und Ereignissen steuern. Weitere
Informationen finden Sie unter ScrollPane-Klasse.
Anwendungen mit der ScrollPane-Komponente erstellen
In der folgenden Anleitung wird erläutert, wie eine ScrollPane-Komponente einer Anwendung
beim Authoring hinzugefügt wird. In diesem Beispiel wird eine SWF-Datei, die ein Logo enthält,
in das Bildlauffenster geladen.
So erstellen Sie eine Anwendung mit einer ScrollPane-Komponente:
1 Ziehen Sie eine ScrollPane-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Geben Sie im Eigenschafteninspektor den Instanznamen meinScrollPane an.
3 Geben Sie im Eigenschafteninspektor für den Parameter contentPath den Wert logo.swf an.
4 Wählen Sie in der Zeitleiste das erste Bild aus, öffnen Sie das Bedienfeld Aktionen, und geben
Sie den folgenden Code ein:
scrollListener = new Object();
scrollListener.scroll = function (evt){
txtPosition.text = meinScrollPane.vPosition;
}
meinScrollPane.addEventListener("scroll", scrollListener);
completeListener = new Object;
completeListener.complete = function() {
trace("logo.swf wurde vollständig geladen.");
}
meinScrollPane.addEventListener("complete", completeListener);
Der erste Codeblock ist eine scroll-Ereignisprozedur für die Instanz meinScrollPane, die
den Wert der Eigenschaft vPosition in einer Textfeldinstanz mit dem Namen txtPosition
anzeigt, die bereits auf der Bühne platziert wurde. Mit dem zweiten Codeblock wird eine
Ereignisprozedur für das complete-Ereignis erstellt, das eine Meldung an das
Ausgabebedienfeld sendet.
ScrollPane-Komponente
515
ScrollPane-Komponente anpassen
Eine ScrollPane-Komponente kann horizontal und vertikal sowohl während des Authorings als
auch zur Laufzeit transformiert werden. Beim Authoring wählen Sie hierzu die Komponente auf
der Bühne aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle
unter Modifizieren > Transformieren. Zur Laufzeit verwenden Sie die Methode setSize()
(siehe UIObject.setSize()) oder beliebige anwendbare Eigenschaften und Methoden der
ScrollPane-Klasse. Weitere Informationen hierzu finden Sie unter ScrollPane-Klasse. Wenn das
Bildlauffenster zu klein ist, werden die Inhalte möglicherweise nicht korrekt angezeigt.
Über ScrollPane wird der Registrierungspunkt der entsprechenden Inhalte links oben im Fenster
gesetzt.
Bei deaktivierter horizontaler Bildlaufleiste wird die vertikale Bildlaufleiste von oben nach unten
an der rechten Seite des Bildlauffensters angezeigt. Bei deaktivierter vertikaler Bildlaufleiste wird
die horizontale Bildlaufleiste von links nach rechts am unteren Rand des Bildlauffensters
angezeigt. Es lassen sich auch beide Bildlaufleisten deaktivieren.
Wenn die Größe des Bildlauffensters geändert wird, behalten die Schaltflächen ihre ursprüngliche
Größe, während die Spur der Bildlaufleiste und das Bildlauffeld entsprechend vergrößert oder
verkleinert und die Größe der Kollisionsbereiche entsprechend angepasst werden.
Stile mit der ScrollPane-Komponente verwenden
Die ScrollPane-Komponente unterstützt im Gegensatz zu den von ihr verwendeten
Bildlaufleisten keine Stile.
Skins mit der ScrollPane-Komponente verwenden
Die ScrollPane-Komponente selbst verfügt über keine eigenen Skins, doch die darin verwendeten
Bildlaufleisten haben Skins.
ScrollPane-Klasse
Vererbung
UIObject > UIComponent > View > ScrollView > ScrollPane
ActionScript-Klassenname
mx.containers.ScrollPane
Mit den Eigenschaften der ScrollPane-Klasse können Sie den Inhalt festlegen, den Ladefortschritt
überwachen und die Größe der Bildlaufverschiebung zur Laufzeit anpassen.
Die mit ActionScript festgelegte Eigenschaft der ScrollPane-Klasse überschreibt den
gleichnamigen Parameter, der in den Bedienfeldern des Eigenschafteninspektors bzw. des
Komponenten-Inspektors festgelegt wurde.
Sie können ein Bildlauffenster einrichten, damit Benutzer den Inhalt innerhalb des Fensters
verschieben können, indem Sie für die Eigenschaft scrollDrag den Wert true angeben. In
diesem Fall wird der Mauszeiger über dem Inhalt als Hand dargestellt. Anders als bei den meisten
anderen Komponenten, wird die Broadcastübertragung der Ereignisse, die durch das Drücken der
Maustaste ausgelöst wird, so lange fortgesetzt, bis die Maustaste wieder losgelassen wird. Wenn
der Inhalt eines Bildlauffensters gültige Tabstopps enthält, muss für den Parameter scrollDrag
der Wert false festgelegt werden, da ansonsten mit jeder Mausbetätigung der Inhalt verschoben
wird.
516
Kapitel 4: Komponenten-Referenz
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.containers.ScrollPane.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meineScrollPaneInstance.version);
Übersicht: Methoden der ScrollPane-Klasse
Methode
Beschreibung
ScrollPane.getBytesLoaded() Gibt die Größe des geladenen Inhalts in Byte zurück.
ScrollPane.getBytesTotal()
Gibt die Gesamtgröße des zu ladenden Inhalts in Byte zurück.
ScrollPane.refreshPane()
Lädt erneut den Inhalt des Bildlauffensters.
Erbt alle Methoden von UIObject und UIComponent.
Übersicht: Eigenschaften der ScrollPane-Klasse
Methode
Beschreibung
ScrollPane.content
Ein Verweis auf den Inhalt, der in das Bildlauffenster geladen
wurde.
ScrollPane.contentPath
Die absolute oder relative URL einer SWF- oder JPEG-Datei, die
in das Bildlauffenster geladen werden soll.
ScrollPane.hLineScrollSize
Die Einheit, um die der Inhalt horizontal verschoben werden soll,
wenn auf eine der Pfeilschaltflächen geklickt wird.
ScrollPane.hPageScrollSize
Die Einheit, um die der Inhalt horizontal verschoben werden soll,
wenn auf die Spur der Bildlaufleiste geklickt wird.
ScrollPane.hPosition
Die horizontale Pixelposition des Bildlauffensters.
ScrollPane.hScrollPolicy
Der Status der horizontalen Bildlaufleiste. Sie kann immer aktiviert
(on), immer deaktiviert (off) oder nur bei Bedarf aktiviert (auto) sein.
Der Standardwert lautet auto.
ScrollPane.scrollDrag
Gibt an, ob der Inhalt verschoben wird (true), wenn ein Benutzer in
das Bildlauffenster klickt und zieht, oder nicht (false). Der
Standardwert lautet false.
ScrollPane.vLineScrollSize
Die Einheit, um die der Inhalt vertikal verschoben werden soll, wenn
auf eine der Pfeilschaltflächen geklickt wird.
ScrollPane.vPageScrollSize
Die Einheit, um die der Inhalt vertikal verschoben werden soll, wenn
auf die Spur der Bildlaufleiste geklickt wird.
ScrollPane.vPosition
Die vertikale Pixelposition des Bildlauffensters.
ScrollPane.vScrollPolicy
Der Status der vertikalen Bildlaufleiste. Sie kann immer aktiviert
(on), immer deaktiviert (off) oder nur bei Bedarf aktiviert (auto) sein.
Der Standardwert lautet auto.
ScrollPane-Komponente
517
Erbt alle Eigenschaften von UIObject und UIComponent.
Übersicht: Ereignisse der ScrollPane-Klasse
Methode
Beschreibung
ScrollPane.complete
Broadcastübertragung ausführen, wenn der Inhalt des
Bildlauffensters geladen wird.
ScrollPane.progress
Broadcastübertragung ausführen, während der Inhalt der
Bildlaufleiste geladen wird.
ScrollPane.scroll
Broadcastübertragung ausführen, wenn auf die Bildlaufleiste
geklickt wird.
Erbt alle Ereignisse von UIObject und UIComponent.
ScrollPane.complete
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(complete){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.complete = function(eventObject){
...
}
scrollPaneInstance.addEventListener("complete", listenerObject)
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, wenn der Inhalt fertig geladen ist.
Im ersten Verwendungsbeispiel wird eine on()-Prozedur verwendet, die direkt einer ScrollPaneKomponenteninstanz zugeordnet werden muss. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Mit dem
folgenden Code, der der ScrollPane-Komponenteninstanz meineScrollPaneComponent
zugeordnet ist, wird beispielsweise „_level0.meineScrollPaneComponent“ an das
Ausgabebedienfeld gesendet:
on(complete){
trace(this);
}
518
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (scrollPaneInstance) setzt ein Ereignis (in diesem Fall complete) ab,
und das Ereignis reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts
(listenerObject). Eine solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen
dieses Ereignisses wird eine von Ihnen definierte Methode aufgerufen, deren Name dem des
Ereignisses entspricht, das sich auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses
wird automatisch ein Ereignisobjekt (eventObject) an die Methode des Listener-Objekts
übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum
Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das
Ereignis reagiert. Anschließend rufen Sie die Methode
UIEventDispatcher.addEventListener() für die Komponenteninstanz auf, die das Ereignis
überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis absetzt, wird
der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
In folgendem Beispiel wird ein Listener-Objekt mit der complete-Ereignisprozedur für die
scrollPane-Instanz erstellt:
form.complete = function(eventObj){
// Code zur Verarbeitung des Ereignisses eingeben
}
scrollPane.addEventListener("complete",form);
ScrollPane.content
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.content
Beschreibung
Eigenschaft (schreibgeschützt); gibt einen Verweis auf den Inhalt des Bildlauffensters an. Der
Wert ist undefined, bis der Ladevorgang beginnt.
Beispiel
In diesem Beispiel wird für die Variable mcLoaded der Wert der Eigenschaft content festgelegt:
var mcLoaded = scrollPane.content;
Siehe auch
ScrollPane.contentPath
ScrollPane-Komponente
519
ScrollPane.contentPath
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.contentPath
Beschreibung
Eigenschaft; ein String, mit dem die absolute oder relative URL einer SWF- oder JPEG-Datei
angegeben wird, die in das Bildlauffenster geladen werden soll. Ein relativer Pfad muss relativ zu
der SWF-Datei angegeben werden, in die der Inhalt geladen wird.
Wenn Sie zum Laden von Inhalt eine relative URL verwenden, muss der geladene Inhalt sich an
einem Speicherort relativ zu der SWF-Datei befinden, die das Bildlauffenster enthält. Eine
Anwendung mit einer ScrollPane-Komponente, die sich beispielsweise im Verzeichnis /
scrollpane/nav/example.swf befindet, könnte Inhalt aus dem Verzeichnis /scrollpane/content/
flash/logo.swf mit folgender contentPath-Eigenschaft laden: "../content/flash/logo.swf"
Beispiel
In folgendem Beispiel wird im Bildlauffenster der Inhalt eines Bildes aus dem Internet angezeigt:
scrollPane.contentPath ="http://imagecache2.allposters.com/images/43/
033_302.jpg";
In folgendem Beispiel wird im Bildlauffenster der Inhalt eines Symbols aus der Bibliothek
angezeigt:
scrollPane.contentPath ="movieClip_Name";
In folgendem Beispiel wird im Bildlauffenster der Inhalt der lokalen Datei logo.swf angezeigt:
scrollPane.contentPath ="logo.swf";
Siehe auch
ScrollPane.content
ScrollPane.getBytesLoaded()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.getBytesLoaded()
Parameter
Keine.
520
Kapitel 4: Komponenten-Referenz
Rückgaben
Die Größe der im Bildlauffenster geladenen Datei in Byte.
Beschreibung
Methode; gibt die Größe der in der ScrollPane-Instanz geladenen Datei in Byte zurück. Sie
können diese Methode beim Laden von Inhalt regelmäßig aufrufen, um den Fortschritt des
Ladevorgangs zu überprüfen.
Beispiel
In diesem Beispiel wird eine Instanz der ScrollPane-Klasse mit dem Namen scrollPane erstellt.
Außerdem wird ein Listener-Objekt mit dem Namen loadListener und einer progressEreignisprozedur definiert, mit der die Methode getBytesLoaded() zur Bestimmung des
Fortschritts beim Ladevorgang aufgerufen wird:
createClassObject(mx.containers.ScrollPane, "scrollPane", 0);
loadListener = new Object();
loadListener.progress = function(eventObj){
// eventObj.target ist die Komponente, mit der das change-Ereignis generiert
// wurde
var bytesLoaded = scrollPane.getBytesLoaded();
var bytesTotal = scrollPane.getBytesTotal();
var percentComplete = Math.floor(bytesLoaded/bytesTotal);
if (percentComplete < 5 ) // Ladevorgang hat gerade erst begonnen
{
trace("Ladevorgang von Inhalt aus dem Internet wird gestartet");
}
else if(percentComplete = 50) // Ladevorgang zu 50 % abgeschlossen
{
trace("50 % des Inhalts wurden heruntergeladen");
}
}
scrollPane.addEventListener("progress", loadListener);
scrollPane.contentPath = "http://www.geocities.com/hcls_matrix/Images/
homeview5.jpg";
ScrollPane.getBytesTotal()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.getBytesTotal()
Parameter
Keine.
Rückgaben
Eine Zahl.
ScrollPane-Komponente
521
Beschreibung
Methode; gibt die Gesamtgröße der Datei, die in die ScrollPane-Instanz geladen werden soll, in
Byte zurück.
Siehe auch
ScrollPane.getBytesLoaded()
ScrollPane.hLineScrollSize
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.hLineScrollSize
Beschreibung
Eigenschaft; gibt die Anzahl der Pixel zurück, um die der Inhalt verschoben wird, wenn auf die
linke oder rechte Pfeilschaltfläche der horizontalen Bildlaufleiste geklickt wird. Der Standardwert
ist 5.
Beispiel
In diesem Beispiel wird die horizontale Bildlaufeinheit auf 10 gesetzt:
scrollPane.hLineScrollSize = 10;
ScrollPane.hPageScrollSize
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.hPageScrollSize
Beschreibung
Eigenschaft; gibt die Anzahl der Pixel zurück, um die der Inhalt verschoben wird, wenn auf die
Spur der horizontalen Bildlaufleiste geklickt wird. Der Standardwert ist 20.
Beispiel
In diesem Beispiel wird die horizontale Seitenbildlaufeinheit auf 30 gesetzt:
scrollPane.hPageScrollSize = 30;
522
Kapitel 4: Komponenten-Referenz
ScrollPane.hPosition
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.hPosition
Beschreibung
Eigenschaft; gibt eine Position auf der horizontalen Bildlaufleiste in Pixel an. Die Position 0
befindet sich auf der linken Seite der Leiste.
Beispiel
In diesem Beispiel wird die Position auf der Bildlaufleiste auf 20 festgelegt:
scrollPane.hPosition = 20;
ScrollPane.hScrollPolicy
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.hScrollPolicy
Beschreibung
Eigenschaft; gibt an, ob die horizontale Bildlaufleiste immer aktiviert ist (on), immer deaktiviert
ist (off ) oder bei entsprechender Größe des Bildes automatisch aktiviert wird (auto). Der
Standardwert lautet auto.
Beispiel
Mit dem folgenden Code werden die Bildlaufleisten immer aktiviert:
scrollPane.hScrollPolicy = "on";
ScrollPane.progress
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
ScrollPane-Komponente
523
Verwendung
Verwendung 1:
on(progress){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.progress = function(eventObject){
...
}
scrollPaneInstance.addEventListener("progress", listenerObject)
Beschreibung
Ereignis; sendet einen Broadcast an alle registrierten Listener, während der Inhalt geladen wird.
Das Ereignis progress wird nicht immer gesendet. Das Ereignis complete kann gesendet werden,
ohne dass Ereignisse des Typs progress gesendet werden. Das kann insbesondere der Fall sein,
wenn es sich beim geladenen Inhalt um eine lokale Datei handelt. Dieses Ereignis wird ausgelöst,
wenn der Ladevorgang des Inhalts durch das Definieren des Werts der Eigenschaft contentPath
gestartet wird.
Im ersten Verwendungsbeispiel wird eine on()-Prozedur verwendet, die direkt einer ScrollPaneKomponenteninstanz zugeordnet werden muss. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Mit dem
folgenden Code, der der ScrollPane-Komponenteninstanz meineSPComponent zugeordnet ist,
wird beispielsweise „_level0.meineSPComponent“ an das Ausgabebedienfeld gesendet:
on(progress){
trace(this);
}
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (scrollPaneInstance) setzt ein Ereignis (in diesem Fall progress) ab,
und das Ereignis reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts
(listenerObject). Eine solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen
dieses Ereignisses wird eine von Ihnen definierte Methode aufgerufen, deren Name dem des
Ereignisses entspricht, das sich auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses
wird automatisch ein Ereignisobjekt (eventObject) an die Methode des Listener-Objekts
übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum
Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das
Ereignis reagiert. Anschließend rufen Sie die Methode
UIEventDispatcher.addEventListener() für die Komponenteninstanz auf, die das Ereignis
überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis absetzt, wird
der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
524
Kapitel 4: Komponenten-Referenz
Beispiel
Mit dem folgenden Code wird eine ScrollPane-Instanz mit dem Namen scrollPane sowie ein
Listener-Objekt mit einer Ereignisprozedur für das progress-Ereignis erstellt, das eine Meldung
an das Ausgabebedienfeld sendet, in der die Größe des bereits geladenen Inhalts in Byte
angegeben ist:
createClassObject(mx.containers.ScrollPane, "scrollPane", 0);
loadListener = new Object();
loadListener.progress = function(eventObj){
// eventObj.target ist die Komponente, mit der das Fortschrittereignis
// generiert wurde,
// in diesem Fall also das Bildlauffenster
trace("Von der Datei logo.swf wurden bereits " + scrollPane.getBytesLoaded()
+ " Bytes geladen.");
// Ladevorgang verfolgen
}
scrollPane.addEventListener("complete", loadListener);
scrollPane.contentPath = "logo.swf";
ScrollPane.refreshPane()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.refreshPane()
Parameter
Keine.
Rückgaben
Keine.
Beschreibung
Methode; aktualisiert das Bildlauffenster, nachdem der Inhalt geladen wurde. Mit dieser Methode
wird Inhalt erneut geladen. Sie können diese Methode beispielsweise verwenden, wenn ein
Formular in ein Bildlauffenster geladen und anschließend eine Eingabeeigenschaft (z. B. in einem
Textfeld) mit ActionScript geändert wurde. Rufen Sie refreshPane() auf, um dasselbe Formular
mit den neuen Werten für die Eingabeeigenschaften erneut zu laden.
Beispiel
Im folgenden Beispiel wird die Bildlauffensterinstanz mit dem Namen sp aktualisiert:
sp.refreshPane();
ScrollPane-Komponente
525
ScrollPane.scroll
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(scroll){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.scroll = function(eventObject){
...
}
scrollPaneInstance.addEventListener("scroll", listenerObject)
Ereignisobjekt
Zusätzlich zu den standardmäßigen Eigenschaften von Ereignisobjekten ist für das scrollEreignis auch eine type-Eigenschaft mit dem Wert scroll definiert. Außerdem gibt es die
direction-Eigenschaft mit den möglichen Werten vertical und horizontal.
Beschreibung
Ereignis; Broadcastübertragung an alle registrierten Listener, wenn ein Benutzer auf die
Bildlaufschaltflächen, das Bildlauffeld oder die Spur der Bildlaufleiste klickt. Anders als bei
anderen Ereignissen, wird die Broadcastübertragung des scroll-Ereignisses, die durch das
Klicken eines Benutzers auf die Bildlaufleiste ausgelöst wird, so lange fortgesetzt, bis die
Maustaste wieder losgelassen wird.
Im ersten Verwendungsbeispiel wird eine on()-Prozedur verwendet, die direkt einer ScrollPaneKomponenteninstanz zugeordnet werden muss. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Mit dem
folgenden Code, der der Instanz sp zugeordnet ist, wird beispielsweise „_level0.sp“ an das
Ausgabebedienfeld gesendet:
on(scroll){
trace(this);
}
526
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (scrollPaneInstance) setzt ein Ereignis (in diesem Fall scroll) ab, und
das Ereignis reagiert auf eine Funktion des von Ihnen erstellten Listener-Objekts
(listenerObject). Eine solche Funktion wird auch als Prozedur bezeichnet. Beim Auslösen
dieses Ereignisses wird eine von Ihnen definierte Methode aufgerufen, deren Name dem des
Ereignisses entspricht, das sich auf das Listener-Objekt bezieht. Beim Auslösen des Ereignisses
wird automatisch ein Ereignisobjekt (eventObject) an die Methode des Listener-Objekts
übergeben. Jedes Ereignisobjekt verfügt über einen Satz von Eigenschaften, die Daten zum
Ereignis enthalten. Mit Hilfe dieser Eigenschaften können Sie den Code erstellen, der auf das
Ereignis reagiert. Anschließend rufen Sie die Methode
UIEventDispatcher.addEventListener() für die Komponenteninstanz auf, die das Ereignis
überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das Ereignis absetzt, wird
der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
In diesem Beispiel wird ein Listener-Objekt form mit einer scroll-Rückruffunktion erstellt, die
für die Instanz spInstance registriert ist: Sie müssen spInstance wie im folgenden Beispiel mit
Inhalten füllen:
spInstance.contentPath = "mouse3.jpg";
form = new Object();
form.scroll = function(eventObj){
trace("Bildlauffenster betätigt");
}
spInstance.addEventListener("scroll", form);
Siehe auch
UIEventDispatcher.addEventListener()
ScrollPane.scrollDrag
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.scrollDrag
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob der Inhalt verschoben wird (true), wenn ein
Benutzer in das Bildlauffenster klickt und zieht, oder nicht (false). Der Standardwert lautet
false.
Beispiel
In diesem Beispiel wird der Bildlauf durch Mausbetätigung innerhalb des Bildlauffensters
aktiviert:
scrollPane.scrollDrag = true;
ScrollPane-Komponente
527
ScrollPane.vLineScrollSize
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.vLineScrollSize
Beschreibung
Eigenschaft; gibt die Anzahl der Pixel an, um die der Anzeigebereich verschoben wird, wenn auf
die Nach-oben- oder Nach-unten-Schaltfläche einer vertikalen Bildlaufleiste geklickt wird. Der
Standardwert ist 5.
Beispiel
Mit diesem Code wird die Einheit, um die der Anzeigebereich verschoben wird, wenn in einer
vertikalen Bildlaufleiste auf eine der Pfeilschaltflächen geklickt wird, auf 10 gesetzt:
scrollPane.vLineScrollSize = 10;
ScrollPane.vPageScrollSize
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
scrollPaneInstance.vPageScrollSize
Beschreibung
Eigenschaft; gibt die Anzahl der Pixel an, um die der Anzeigebereich verschoben wird, wenn auf
die Spur einer vertikalen Bildlaufleiste geklickt wird. Der Standardwert ist 20.
Beispiel
Mit diesem Code wird die Einheit, um die der Anzeigebereich verschoben wird, wenn in einer
vertikalen Bildlaufleiste auf die Spur geklickt wird, auf 30 gesetzt:
scrollPane.vPageScrollSize = 30;
528
Kapitel 4: Komponenten-Referenz
ScrollPane.vPosition
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.vPosition
Beschreibung
Eigenschaft; gibt eine Position auf der vertikalen Bildlaufleiste in Pixel an. Der Standardwert ist 0.
ScrollPane.vScrollPolicy
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
scrollPaneInstance.vScrollPolicy
Beschreibung
Eigenschaft; gibt an, ob die vertikale Bildlaufleiste immer aktiviert ist (on), immer deaktiviert ist
(off ) oder bei entsprechender Größe des Bildes automatisch aktiviert wird (auto). Der
Standardwert lautet auto.
Beispiel
Mit dem folgenden Code werden vertikale Bildlaufleisten immer aktiviert:
scrollPane.vScrollPolicy = "on";
Slide-Klasse (nur Flash Professional)
Vererbung
UIObject > UIComponent > View > Loader > Screen > Slide
ActionScript-Klassenname
mx.screens.Slide
Die Slide-Klasse entspricht einem Knoten in einer hierarchischen Folienpräsentation. In
Flash MX Professional 2004 können Sie Folienpräsentationen mit dem Übersichtsfenster
erstellen. Eine Übersicht zum Arbeiten mit Bildschirmen finden Sie unter „Mit Bildschirmen
arbeiten (nur Flash Professional)“ in der Hilfe „Flash verwenden“.
Die Slide-Klasse ist eine Erweiterung der Screen-Klasse (siehe „Screen-Klasse (nur Flash
Professional)“ auf Seite 500) und verfügt über integrierte Funktionen zur Navigation zwischen
Folien und zur Festlegung der Folienreihenfolge. Sie bietet außerdem die Möglichkeit, mit Hilfe
von Verhalten problemlos Folienübergänge zuzuweisen. Folien bewahren ihren „statischen“
Charakter. Der Benutzer kann in einer Präsentation also die folgende oder die vorherige Folie
aufrufen. Es ist möglich, beim Aufruf der jeweils nächsten Folie die vorhergehende auszublenden.
Slide-Klasse (nur Flash Professional)
529
Beachten Sie, dass Sie nur zu solchen Folien navigieren (oder dort „anhalten“) können, denen
keine Unterfolien zugeordnet sind. Folien dieser Art werden als Endfolien bezeichnet, da sie in
der hierarchischen Struktur einer Folienpräsentation das Ende einer Verzweigung bilden. Die
folgende Abbildung zeigt den Inhalt des Übersichtsfensters für eine Beispielpräsentation:
Wenn diese Präsentation gestartet wird, hält Sie standardmäßig bei der Folie „Finance“ an, da es
sich hierbei um die erste Folie ohne Unterfolien handelt.
Beachten Sie auch, dass Unterfolien das Erscheinungsbild (grafische Elemente und andere
Inhalte) der übergeordneten Folien „erben“. So würde der Benutzer im obigen Beispiel zusätzlich
zum Inhalt der Folie „Finance“ auch die Inhalte der Folien „Intro“ und „präsentation“ sehen.
Hinweis: Die Slide-Klasse erbt die Methoden und Eigenschaften von der Loader-Klasse (siehe
„Loader-Klasse“ auf Seite 351), sodass sich externe SWFs (oder JPEGs) problemlos in eine
beliebige Folie laden lassen. Hierdurch ergibt sich die Möglichkeit zur Modularisierung von
Folienpräsentationen und zur Verkürzung der Downloadzeit. Weitere Informationen finden Sie unter
„Externe Inhalte in Bildschirme laden (nur Flash Professional)“ auf Seite 501.
Slide-Klasse verwenden (nur Flash Professional)
Mit den Methoden und Eigenschaften der Slide-Klasse steuern Sie Folienpräsentationen, die Sie
mit dem Übersichtsfenster erstellen. (Unter Fenster > Bildschirme erhalten Sie Informationen zu
einer Folienpräsentation.) Sie können damit beispielsweise die Anzahl der zu einer Folie
gehörenden Unterfolien festlegen oder in einer Präsentation von einer Folie zur nächsten
navigieren (z. B. durch die Erstellung von Schaltflächen wie Nächste Folie oder Vorherige Folie.
Zur Steuerung von Folienpräsentationen können Sie auch eins der im Bedienfeld Verhalten
verfügbaren Verhalten heranziehen (Fenster > Entwicklungs-Bedienfelder > Verhalten). Weitere
Informationen zum Einsatz von Verhalten im Zusammenhang mit Folien finden Sie unter
„Steuerungen für Bildschirme mit Hilfe von Verhalten hinzufügen (nur Flash Professional)“ in
der Hilfe „Flash verwenden“.
530
Kapitel 4: Komponenten-Referenz
Folienparameter
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder KomponentenInspektor für jede Folie festlegen:
autoKeyNav bestimmt, ob und wie eine Folie auf die Standardnavigation per Tastatur reagieren
soll. Weitere Informationen finden Sie unter Slide.autoKeyNav.
autoload gibt an, ob der vom Parameter contentPath bestimmte Inhalt automatisch geladen
werden soll (true), oder ob mit dem Laden gewartet werden soll, bis die Methode Loader.load()
aufgerufen wird (false). Der Standardwert lautet true.
contentPath gibt den Inhalt der Folie an. Dabei kann es sich um den Verknüpfungsbezeichner
eines Movieclips oder die absolute bzw. relative URL für eine in die Folie zu ladende SWF- oder
JPG-Datei handeln. Standardgemäß wird der geladene Inhalt so abgeschnitten, dass er in die
Folie passt.
overlayChildren legt fest, ob die einer Folie zugehörigen Unterfolien bei der Navigation von einer
Unterfolie zur nächsten weiterhin sichtbar bleiben sollen (true) oder nicht (false).
playHidden legt fest, ob eine Folie weiterhin abgespielt werden soll, wenn sie ausgeblendet ist
(true), oder ob sie angehalten werden soll (false).
Erstellen einer Folienpräsentation mit Hilfe der Slide-Klasse
Die Methoden und Eigenschaften der Slide-Klasse dienen der Steuerung einer
Folienpräsentation, die Sie in der Flash-Authoring-Umgebung im Übersichtsfenster (Fenster >
Bildschirme) erstellt haben. Beachten Sie, dass im Bedienfeld Verhalten (Fenster >
Entwicklungs-Bedienfelder > Verhalten) mehrere Verhalten zur Erstellung der Foliennavigation
zur Verfügung stehen. In diesem Beispiel schreiben Sie Ihr eigenes ActionScript zur Erstellung der
Schaltflächen Nächste Folie und Vorherige Folie.
So erstellen Sie eine Folienpräsentation mit Navigationselementen:
1 Wählen Sie in Flash Datei > Neu.
2 Klicken Sie auf die Registerkarte Allgemein, und wählen Sie unter Typ die Option Flash-
Folienpräsentation.
3 Klicken Sie im Übersichtsfenster zweimal auf die Schaltfläche Bildschirm einfügen (+), um
unterhalb der Folie „präsentation“ zwei neue Folien zu erstellen.
Im Übersichtsfenster sollte nun Folgendes zu sehen sein:
4 Wählen Sie nun im Übersichtsfenster „folie1“, und fügen Sie mit Hilfe des Textwerkzeugs ein
Textfeld mit dem Inhalt „Dies ist Folie 1“ hinzu.
5 Wiederholen Sie diesen Schritt für „folie2“ und „folie3“, und erstellen Sie dabei auch Textfelder
mit dem Inhalt „Dies ist Folie 2“ bzw. „Dies ist Folie 3“.
6 Markieren Sie die Folie „präsentation“, und öffnen Sie das Bedienfeld Komponenten
(Fenster > Entwicklungs-Bedienfelder > Komponenten).
Slide-Klasse (nur Flash Professional)
531
7 Ziehen Sie eine Button-Komponente aus dem Bedienfeld Komponenten in den unteren
Bühnenbereich.
8 Geben Sie im Eigenschafteninspektor (Fenster > Eigenschaften) als label-Eigenschaft für die
Button-Komponente „Nächste Folie“ ein.
9 Wenn das Bedienfeld Aktionen nicht angezeigt wird, öffnen Sie es, indem Sie Fenster >
Entwicklungs-Bedienfelder > Aktionen wählen.
10 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
on(click){
_parent.currentSlide.gotoNextSlide();
}
11 Testen Sie die SWF-Datei (Steuerung > Film testen), und klicken Sie auf die Schaltfläche
Nächste Folie, um die nächste Folie aufzurufen.
Übersicht: Methoden der Slide-Klasse
Eigenschaft
Beschreibung
Slide.getChildSlide()
Gibt an einem beliebigen Index die zu der aktuellen Folie gehörige
Unterfolie zurück.
Slide.gotoFirstSlide()
Navigiert zum ersten Verzweigungsknoten in der Folienhierarchie,
die der aktuellen Folie untergeordnet ist.
Slide.gotoLastSlide()
Navigiert zum letzten Verzweigungsknoten in der Folienhierarchie,
die der aktuellen Folie untergeordnet ist.
Slide.gotoNextSlide()
Navigiert zur nächsten Folie.
Slide.gotoPreviousSlide()
Navigiert zur nächsten Folie.
Slide.gotoSlide()
Navigiert zu einer beliebigen Folie.
Erbt alle Methoden von UIObject, UIComponent, View, Loader-Komponente und ScreenKlasse (nur Flash Professional).
Übersicht: Eigenschaften der Slide-Klasse
Eigenschaft
Beschreibung
Slide.autoKeyNav
Legt fest, ob für eine Folie die Tastatur zur Standardnavigation zur
nächsten oder zur vorherigen Folie verwendet wird.
Slide.currentSlide
Gibt die unmittelbar untergeordnete Folie derjenigen Folie zurück,
die die zurzeit aktive Folie enthält.
Slide.currentSlide
Gibt die zurzeit aktive Folie zurück.
Slide.currentFocusedSlide
Gibt die Folie zurück, die sich in einer Verzweigung am weitesten
vom Stamm entfernt befindet und aktuell den globalen Fokus hat.
Slide.defaultKeydownHandler Rückrufprozedur, die die standardmäßige Tastaturnavigation der
Folie (<Nach-links-Taste> und <Nach-rechts-Taste>) überschreibt.
532
Slide.firstSlide
Gibt die erste Unterfolie der aktuellen Folie zurück, der keine
weiteren Folien untergeordnet sind.
Slide.getChildSlide()
Gibt die Unterfolie an einem festgelegten Index zurück.
Kapitel 4: Komponenten-Referenz
Eigenschaft
Beschreibung
Slide.indexInParentSlide
Gibt den Index (Bezugsbasis 0) der Folie in der zur übergeordneten
Folie gehörenden Liste der Unterfolien zurück.
Slide.lastSlide
Gibt die letzte Unterfolie der aktuellen Folie zurück, der keine
weiteren Folien untergeordnet sind.
Slide.nextSlide
Gibt die nächste Folie mit Verzweigungsknoten zurück.
Slide.numChildSlides
Gibt die Anzahl der Unterfolien zurück, die der aktuellen Folie
untergeordnet sind.
Slide.overlayChildren
Bestimmt, ob die Unterfolien der aktuellen Folie sichtbar bleiben,
wenn die Steuerung von einer Unterfolie zur nächsten übergeht.
Slide.parentIsSlide
Gibt einen Booleschen Wert zurück, der angibt, ob das
übergeordnete Objekt der Folie ebenfalls eine Folie ist (true) oder
nicht (false).
Slide.playHidden
Bestimmt, ob die Folie weiterhin abgespielt wird, wenn sie
ausgeblendet ist.
Slide.previousSlide
Gibt die vorherige Folie mit Verzweigungsknoten zurück.
Slide.revealChild
Gibt den Stamm des Hierarchiebaums zurück, zu der die Folie
gehört.
Erbt alle Methoden von UIObject, UIComponent, View, Loader-Komponente und ScreenKlasse (nur Flash Professional).
Übersicht: Ereignisse der Slide-Klasse
Ereignis
Beschreibung
Slide.hideChild
Broadcastübertragung, wenn alle Unterfolien einer Folie vom
sichtbaren in den nicht sichtbaren Zustand wechseln.
Slide.revealChild
Broadcastübertragung, wenn alle Unterfolien einer Folie vom nicht
sichtbaren in den sichtbaren Zustand wechseln.
Erbt alle Ereignisse von UIObject, UIComponent, View, Loader-Komponente und Screen-Klasse
(nur Flash Professional).
Slide.autoKeyNav
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.autoKeyNav
Slide-Klasse (nur Flash Professional)
533
Beschreibung
Eigenschaft; legt fest, ob für eine Folie die Tastatur zur Standardnavigation zwischen den
einzelnen Folien verwendet wird, wenn meineSlide den Fokus hat. Diese Eigenschaft kann einen
der folgenden Stringwerte annehmen: "true", "false" oder "inherit". Sie können dieses
standardmäßige Tastaturverhalten auch mit der Eigenschaft Slide.defaultKeydownHandler
überschreiben.
Weiterhin können Sie diese Eigenschaft mit Hilfe des Eigenschafteninspektors einstellen.
Bei der Einstellung "true" wechseln Sie zur nächsten Folie, wenn Sie die <Nacht-rechts-Taste>
(Key.RIGHT) oder die <Leertaste> (Key.SPACE) drücken und meineSlide den Fokus hat. Mit der
<Nach-links-Taste> (Key-Left) navigieren Sie zur vorherigen Folie.
Bei der Einstellung "false" ist eine Navigation per Tastatur nicht möglich, wenn meineSlide
den Fokus hat.
Bei der Einstellung "inherit" überprüft meineSlide die Eigenschaft autoKeyNav der
übergeordneten Folie. Hat die übergeordnete Folie von meineSlide ebenfalls die Einstellung
"inherit", wird die Folie auf der nächsthöheren Ebene überprüft und so weiter, bis eine
übergeordnete Folie gefunden wird, deren Eigenschaft autoKeyNav auf "true" oder "false"
eingestellt ist.
Wenn meineSlide keine übergeordnete Folie hat (wenn also (meineSlide.parentIsSlide ==
false) auf true eingestellt ist), verhält sie sich so, als wenn autoKeyNav auf true eingestellt
wäre.
Beispiel
In diesem Beispiel wird die automatische Tastaturnavigation für die Folie loginSlide
deaktiviert.
_root.präsentation.loginSlide.autoKeyNav = "false";
Siehe auch
Slide.defaultKeydownHandler
Slide.currentSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.currentSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt die zurzeit aktive Folie zurück. Hierbei handelt es sich immer
um eine Endfolie, d. h. sie enthält keine weiteren Unterfolien.
534
Kapitel 4: Komponenten-Referenz
Beispiel
Wenn Sie den folgenden Code für die am Stamm befindliche Folie „präsentation“ einer
Schaltfläche zuweisen, wechseln Sie in der Folienpräsentation immer zur nächsten Folie, wenn
diese Schaltfläche gedrückt wird.
// Zu Schaltflächeninstanz von Folie 'präsentation' hinzugefügt:
on(press) {
_parent.currentSlide.gotoNextSlide();
}
Siehe auch
Slide.gotoNextSlide()
Slide.currentChildSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.currentChildSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt die unmittelbar folgende Unterfolie von meineSlide zurück,
wenn diese die zurzeit aktive Folie enthält; gibt null zurück, wenn keine Unterfolie in der
Hierarchie von meineSlide den aktuellen Fokus hat.
Beispiel
Vergegenwärtigen Sie sich das folgende Übersichtsfenster:
präsentation
folie_1
Bullet1_1
SubBullet1_1_1
Bullet1_2
SubBullet1_2_1
folie_2
Unter der Voraussetzung, dass SubBullet1_1_1 die zurzeit aktive Folie ist, sind alle folgenden
Anweisungen wahr:
präsentation.currentChildSlide == folie_1;
folie_1.currentChildSlide == Bullet_1_1;
SubBullet_1_1_1.currentChildSlide == null;
folie_2.currentChildSlide == null;
Siehe auch
Slide.currentSlide
Slide-Klasse (nur Flash Professional)
535
Slide.currentFocusedSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
mx.screens.Slide.currentFocusedSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt die Folie zurück, die sich in einer Verzweigung am weitesten
vom Stamm entfernt befindet und aktuell den globalen Fokus hat. Der eigentliche Fokus kann
auf der Folie selbst liegen, aber auch auf einem Movieclip, einem Textobjekt oder auf einer
Komponente innerhalb der Folie; gibt null zurück, wenn kein aktueller Fokus vorhanden ist.
Beispiel
var focusedSlide = mx.screens.Slide.currentFocusedSlide;
Slide.defaultKeydownHandler
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.defaultKeyDownHandler = function (eventObj) {
// Hier Code eingeben
}
Parameter
eventObj
•
•
•
•
•
Ein Ereignisobjekt mit den folgenden Eigenschaften:
Ein String, der den Ereignistyp angibt. Mögliche Werte sind "keyUp" und "keyDown".
ascii Eine Ganzzahl, die den ASCII-Code der zuletzt gedrückten Taste wiedergibt;
entspricht dem Wert, der von „Key.getAscii()“ zurückgegeben wird.
code Eine Ganzzahl, die den Tastencode der zuletzt gedrückten Taste wiedergibt; entspricht
dem Wert, der von „Key.getCode()“ zurückgegeben wird.
shiftKey Ein Boolescher Wert (true oder false), der angibt, ob zurzeit die <Umschalttaste>
gedrückt wird (true) oder nicht (false).
crtlKey Ein Boolescher Wert (true oder false), der angibt, ob zurzeit die Taste <Strg>
gedrückt wird (true) oder nicht (false).
type
Rückgaben
Keine.
536
Kapitel 4: Komponenten-Referenz
Beschreibung
Rückrufprozedur; hiermit können Sie die standardmäßige Tastaturnavigation mit einer selbst
erstellten Tastaturprozedur überschreiben. Anstatt in einer Präsentation mit der <Nach-linksTaste> oder der <Nach-rechts-Taste> zur nächsten bzw. zur vorherigen Folie zu wechseln, können
Sie festlegen, dass diese Navigationsschritte mit der <Nach-oben-Taste> und der <Nach-untenTaste> durchgeführt werden sollen. Erklärungen zur standardmäßigen Tastaturnavigation finden
Sie unter Slide.autoKeyNav.
Beispiel
In diesem Beispiel wird die standardmäßige Tastaturnavigation für die Unterfolien derjenigen
Folie geändert, der die Prozedur on(load) zugewiesen ist. Bei dieser Prozedur muss die
Navigation anstelle der <Nach-links-Taste> und der <Nach-rechts-Taste> mit der <Nach-obenTaste> und der <Nach-unten-Taste> durchgeführt werden.
on (load) {
this.defaultKeyDownHandler = function(eventObj:Object) {
switch (eventObj.code) {
case Key.DOWN :
this.currentSlide.gotoNextSlide();
break;
case Key.UP :
this.currentSlide.gotoPreviousSlide();
break;
default :
break;
}
};
}
Siehe auch
Slide.autoKeyNav
Slide.firstSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.firstSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt die erste Unterfolie von meineSlide zurück, die keine
weiteren Unterfolien hat.
Slide-Klasse (nur Flash Professional)
537
Beispiel
So sind beispielsweise in der unten abgebildeten Folienhierarchie die folgenden Anweisungen
wahr:
präsentation.Intro.firstSlide == Intro_bullet_1_1;
präsentation.Intro_bullet_1.firstSlide == Intro_bullet_1-1;
Slide.getChildSlide()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.getChildSlide(childIndex)
Parameter
childIndex
Der von Null ausgehende Index der zurückzugebenden Unterfolie.
Rückgaben
Ein Folienobjekt.
Beschreibung
Methode; gibt die Unterfolie von meineSlide zurück, deren Index childIndex lautet. Diese
Methode ist z. B. hilfreich, wenn (wie im folgenden Beispiel) ein Satz Unterfolien durchlaufen
werden soll, deren Indizes bekannt sind.
538
Kapitel 4: Komponenten-Referenz
Beispiel
Im Rahmen dieses Beispiels sollen im Bedienfeld Ausgabe die Namen aller Unterfolien der
Stammfolie „präsentation“ angezeigt werden.
var numSlides = _root.präsentation.numChildSlides;
for(var slideIndex=0; slideIndex < numSlides; slideIndex++) {
var childSlide = _root.präsentation.getChildSlide(slideIndex);
trace(childSlide._name);
}
Siehe auch
Slide.numChildSlides
Slide.gotoSlide()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.gotoSlide(newSlide)
Parameter
newSlide
Die Folie, die aufgerufen werden soll.
Rückgaben
Ein Boolescher Wert (true oder false), der angibt, ob die Navigation erfolgreich war (true)
oder nicht (false).
Beschreibung
Methode; navigiert zu der Folie, die von newSlide angegeben wird. Damit die Navigation
möglich ist, muss Folgendes zutreffen:
• Die aktuelle Folie muss eine Unterfolie von meineSlide sein.
• Die von newSlide angegebene Folie und die aktuelle Folie müssen eine gemeinsame
übergeordnete Folie haben, d. h. die aktuelle Folie und newSlide müssen in derselben
Verzweigung der Baumstruktur angesiedelt sein.
Wenn eine dieser beiden Voraussetzungen nicht erfüllt ist, schlägt die Navigation fehl, und die
Methode gibt false zurück. Sind die Voraussetzungen hingegen erfüllt, ruft die Methode die
angegebene Folie auf und gibt true zurück.
Vergegenwärtigen Sie sich beispielsweise folgende Folienhierarchie:
Präsentation
folie1
folie1_1
folie1_2
folie2
folie2_1
folie2_2
Slide-Klasse (nur Flash Professional)
539
Wenn folie1_2 die aktuelle Folie ist, schlägt der nächste Aufruf der Methode gotoSlide() fehl,
da die aktuelle Folie keine Unterfolie von folie2 ist:
folie2.gotoSlide(folie2_1);
Vergegenwärtigen Sie sich ferner folgende Bildschirmhierarchie, bei der ein form-Objekt als
übergeordneter Bildschirm für zwei getrennte Folienzweige dient:
Form_1
folie1
folie1_1
folie1_2
folie2
folie2_1
folie2_2
Wenn die aktuelle Folie folie1_2 ist, schlägt der folgende Methodenaufruf ebenfalls fehl, da sich
folie1 und folie2 in unterschiedlichen Verzweigungen befinden.
folie1_2.gotoSlide(folie2_2);
Beispiel
Beim folgenden Code, der einer Button-Komponente zugewiesen wurde, wird mit Hilfe der
Eigenschaft Slide.currentSlide und der Methode gotoSlide() in einer Präsentation von
einer Folie zur nächsten gewechselt.
on(click){
_parent.gotoSlide(_parent.currentSlide.nextSlide);
}
Beachten Sie, dass es sich hierbei um ein Äquivalent zum folgenden Code handelt, der die
Methode Slide.gotoNextSlide() verwendet.
on(click){
_parent.currentSlide.gotoNextSlide();
}
Siehe auch
Slide.currentSlide, Slide.gotoNextSlide()
Slide.gotoFirstSlide()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.gotoFirstSlide()
Rückgaben
Keine.
540
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; navigiert in der Hierarchie unterhalb von meineSlide zur ersten Folie am Ende einer
Verzweigung. Diese Methode wird ignoriert, wenn der Aufruf aus den Ereignisprozeduren
on(hide) oder (on)reveal einer Folie erfolgt und die Prozedur das Ergebnis einer vorherigen
Navigation war.
Sie können zur ersten Folie in einer Präsentation wechseln, wenn Sie
aufrufen. Weitere Informationen zu rootSlide
meineSlide.rootSlide.gotoFirstSlide()
finden Sie unter Slide.revealChild
Beispiel
In der unten dargestellten Folienhierarchie könnten Sie mit jedem der folgenden
Methodenaufrufe zur Folie Intro_bullet_1_1 navigieren:
präsentation.gotoFirstSlide();
präsentation.Intro.gotoFirstSlide();
präsentation.Intro.Intro_bullet_1.gotoFirstSlide();
Der folgende Methodenaufruf würde eine Navigation zur Folie Intro_bullet_2_1 ermöglichen:
präsentation.Intro.Intro_bullet_2.gotoFirstSlide();
Siehe auch
Slide.firstSlide, Slide.revealChild
Slide-Klasse (nur Flash Professional)
541
Slide.gotoLastSlide()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.gotoLastSlide()
Rückgaben
Keine.
Beschreibung
Methode; navigiert in der Hierarchie unterhalb von meineSlide zur letzten Folie am Ende einer
Verzweigung. Diese Methode wird ignoriert, wenn der Aufruf aus den Ereignisprozeduren
on(hide) oder (on)reveal einer Folie erfolgt und die Prozedur das Ergebnis einer vorherigen
Navigation war.
Beispiel
In der unten dargestellten Folienhierarchie könnten Sie mit jedem der folgenden
Methodenaufrufe zur Folie Intro_bullet_1_2. navigieren:
präsentation.Intro.gotoLastSlide();
präsentation.Intro.Intro_bullet_1.gotoLastSlide();
Die folgenden Methodenaufrufe würden eine Navigation zur Folie Intro_bullet_2_1
ermöglichen:
präsentation.gotoLastSlide();
präsentation.Intro.gotoLastSlide();
Siehe auch
Slide.gotoSlide(), Slide.lastSlide
542
Kapitel 4: Komponenten-Referenz
Slide.gotoNextSlide()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.gotoNextSlide()
Rückgaben
Ein Boolescher Wert (true oder false) oder null; gibt true zurück, wenn mit der Methode zur
nächsten Folie navigiert werden konnte; gibt false zurück, wenn sich die Präsentation beim
Aufruf bereits bei der letzten Folie befindet (d. h. currentSlide.nextSlide ergibt null); gibt
null zurück, wenn der Aufruf aus einer Folie erfolgt, die die aktuelle Folie nicht enthält.
Beschreibung
Methode; navigiert zur nächsten Folie in der Präsentation. Während die Steuerung von der
aktuellen Folie zur folgenden übergeht, wird die Ausgangsfolie ausgeblendet und die Zielfolie
eingeblendet. Wenn sich Ausgangs- und Zielfolie in verschiedenen Zweigen befinden, werden alle
übergeordneten Folien der Ausgangsfolie – beginnend bei der Ausgangsfolie bis hoch zu der
übergeordneten Folie, die Ausgangs- und Zielfolie gemeinsam haben – ausgeblendet und erhalten
das Ereignis hide. Unmittelbar darauf werden alle übergeordneten Folien der Zielfolie –
beginnend bei der Zielfolie bis hinauf zu der übergeordneten Folie, die Ausgangs- und Zielfolie
gemeinsam haben – eingeblendet und erhalten das Ereignis reveal.
Üblicherweise wird gotoNextSlide() für die Verzweigung aufgerufen, in der sich die aktuelle
Folie befindet. Erfolgt der Aufruf für eine andere Verzweigung (someNode), navigieren Sie mit
someNode.gotoNextSlide() in die erste Verzweigung der nächsten Folie oder des nächsten
„Abschnitts“. Das unten stehende Beispiel veranschaulicht dieses Prinzip.
Diese Methode ist wirkungslos, wenn der Aufruf aus einer Folie erfolgt, die die aktuelle Folie
nicht enthält (siehe Beispiel unten).
Weiterhin ist diese Methode wirkungslos, wenn der Aufruf aus einer on(hide)- oder
erfolgt, die einer Folie zugewiesen ist, und es sich bei dieser
Prozedur um das Ergebnis einer vorherigen Navigation handelt.
(on)reveal-Ereignisprozedur
Slide-Klasse (nur Flash Professional)
543
Beispiel
Es wird vorausgesetzt, dass es sich in der folgenden Hierarchie bei der Folie Intro_bullet_1_1
um die zurzeit aktive Folie handelt (d. h. _root.präsentation.currentSlide._name ==
Intro_bullet_1_1).
In diesem Fall würden Sie mit dem Aufruf Intro_bullet_1_1.gotoNextSlide() zur Folie
navigieren, da es sich hierbei um die nächste Nachbarfolie von
handelt.
Intro_bullet_1_2
Intro_bullet_1_1
Mit dem Aufruf Intro_bullet_1.gotoNextSlide() würden Sie dagegen zur Folie
Intro_bullet_2_1 navigieren, da es sich hierbei um die erste Endfolie in der Hierarchie von
Folie Intro_bullet_2 handelt, die wiederum die nächste Nachbarfolie von Intro_bullet_1 ist.
Ähnlich würden Sie mit dem Aufruf Intro.gotoNextSlide() zur Folie Results_bullet_1
navigieren, also zur ersten Endfolie in der Hierarchie der Folie Results.
Nach wie vor unter der Voraussetzung, dass Intro_bullet_1_1 die zurzeit aktive Folie ist, wäre
der Aufruf Results.gotoNextSlide() wirkungslos, da sich die aktive Folie nicht in der
Verzweigung unterhalb von Results befindet (d. h. Results.currentSlide ist null).
Siehe auch
Slide.currentSlide, Slide.gotoPreviousSlide(), Slide.nextSlide
544
Kapitel 4: Komponenten-Referenz
Slide.gotoPreviousSlide()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.gotoPreviousSlide()
Rückgaben
Ein Boolescher Wert (true oder false) oder null; gibt true zurück, wenn mit der Methode zur
vorherigen Folie navigiert werden konnte; gibt false zurück, wenn sich die Präsentation beim
Aufruf bei der ersten Folie befindet (d. h. currentSlide.nextSlide ergibt null); gibt null
zurück, wenn der Aufruf aus einer Folie erfolgt, die die aktuelle Folie nicht enthält.
Beschreibung
Methode; navigiert zur vorherigen Folie in der Präsentation. Während die Steuerung von der
aktuellen Folie zur vorherigen übergeht, wird die Ausgangsfolie ausgeblendet und die Zielfolie
eingeblendet. Wenn sich Ausgangs- und Zielfolie in verschiedenen Zweigen befinden, werden alle
übergeordneten Folien der Ausgangsfolie – beginnend bei der Ausgangsfolie bis hoch zu der
übergeordneten Folie, die Ausgangs- und Zielfolie gemeinsam haben – ausgeblendet und erhalten
das Ereignis hide. Unmittelbar darauf werden alle übergeordneten Folien der Zielfolie –
beginnend bei der Zielfolie bis hinauf zu der übergeordneten Folie, die Ausgangs- und Zielfolie
gemeinsam haben – eingeblendet und erhalten das Ereignis reveal.
Üblicherweise wird gotoPreviousSlide() für die Verzweigung aufgerufen, in der sich die
aktuelle Folie befindet. Erfolgt der Aufruf für eine andere Verzweigung (someNode), navigieren
Sie mit someNode.gotoPreviousSlide() in die Verzweigung der nächsten Folie oder des
nächsten „Abschnitts“. Das unten stehende Beispiel veranschaulicht dieses Prinzip.
Diese Methode ist wirkungslos, wenn der Aufruf aus einer Folie erfolgt, die die aktuelle Folie
nicht enthält (siehe Beispiel unten).
Weiterhin ist diese Methode wirkungslos, wenn der Aufruf aus einer on(hide)- oder
erfolgt, die einer Folie zugewiesen ist, und es sich bei dieser
Prozedur um das Ergebnis einer vorherigen Navigation handelt.
(on)reveal-Ereignisprozedur
Slide-Klasse (nur Flash Professional)
545
Beispiel
Es wird vorausgesetzt, dass es sich in der folgenden Hierarchie bei der Folie Intro_bullet_1_2
um die zurzeit aktive Folie handelt (d. h. _root.präsentation.currentSlide._name ==
Intro_bullet_1_2).
In diesem Fall würden Sie mit dem Aufruf Intro_bullet_1_2.gotoPreviousSlide() zur Folie
navigieren, da es sich hierbei um die vorherige Nachbarfolie von
handelt.
Intro_bullet_1_1
Intro_bullet_1_2
Mit dem Aufruf Intro_bullet_2.gotoPreviousSlide() würden Sie dagegen zur Folie
Intro_bullet_1_1 navigieren, da es sich hierbei um die erste Endfolie unterhalb der Folie
Intro_bullet_1 handelt, die wiederum die vorherige Nachbarfolie von Intro_bullet_2.
Ähnlich würden Sie mit dem Aufruf Results.gotoPreviousSlide() zur Folie
Intro_bullet_1_1 navigieren, also zur ersten Endfolie in der Hierarchie der Folie Intro.
Unter der Voraussetzung, dass Intro_bullet_1_1 die zurzeit aktive Folie ist, wäre
Results.gotoPreviousSlide() wirkungslos, da sich die aktive Folie nicht in der
unterhalb von Results befindet (d. h. Results.currentSlide ist null).
Siehe auch
Slide.currentSlide, Slide.gotoNextSlide(), Slide.previousSlide
546
Kapitel 4: Komponenten-Referenz
ist.
der Aufruf
Verzweigung
Slide.hideChild
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(hideChild) {
// Hier Code eingeben
}
Beschreibung
Ereignis; wird immer dann per Broadcast gesendet, wenn die Unterfolie eines Folienobjekts von
„sichtbar“ zu „nicht sichtbar“ wechselt. Die Broadcastübertragung erfolgt nur durch
Folienobjekte, nicht durch form-Objekte. Die Hauptfunktion des Ereignisses hideChild besteht
darin, Ausblendungsübergänge auf alle Unterfolien der betreffenden Folie zu übertragen.
Beispiel
Wenn der Code der Stammfolie (also z. B. der Folie „präsentation“) zugewiesen wird, zeigt dieser
Code den Namen jeder zur Stammfolie gehörenden Unterfolie an, sobald die Stammfolie sichtbar
wird.
on(revealChild) {
var child = eventObj.target._name;
trace(child + " wurde soeben eingeblendet");
}
Siehe auch
Slide.revealChild
Slide.indexInParentSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.indexInParentSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt den Index (Bezugsbasis 0) von meineSlide in der zu ihrer
übergeordneten Folie gehörenden Liste der Unterfolien zurück.
Slide-Klasse (nur Flash Professional)
547
Beispiel
Der folgende Code verwendet die Eigenschaften indexInParent und Slide.numChildSlides
zur Anzeige des Index der zurzeit aktiven Folie sowie der Anzahl der Folien, die sich in der
Hierarchie unterhalb der ihr übergeordneten Folie befinden. Sie können diesen Code einsetzen,
wenn Sie ihn einer übergeordneten Folie zuweisen, die eine oder mehrere Unterfolien enthält.
on (revealChild) {
trace("Anzeige von "+(currentSlide.indexInParentSlide+1)+" von
"+currentSlide._parent.numChildSlides);
}
Beachten Sie Folgendes: Da es sich bei dieser Eigenschaft um einen Index mit Bezugsbasis 0
handelt, wird sein Wert in Intervallen von 1 erhöht (currentSlide.indexInParent+1), damit
aussagekräftige Werte angezeigt werden.
Siehe auch
Slide.numChildSlides, Slide.revealChild
Slide.lastSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.lastSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt die letzte Unterfolie von meineSlide zurück, die keine
weiteren Unterfolien hat.
Beispiel
In der unten dargestellten Hierarchie sind alle folgenden Anweisungen wahr (true):
präsentation.lastSlide._name == Results_bullet_1;
Intro.lastSlide._name == Intro_bullet_1_2;
548
Kapitel 4: Komponenten-Referenz
Intro_bullet_1.lastSlide._name == Intro_bullet_1_2;
Results.lastSlide._name = Results_bullet_1;
Slide.nextSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.nextSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt die Folie zurück, die Sie durch den Aufruf von
meineSlide.gotoNextSlide() erreichen würden, navigiert aber nicht tatsächlich zu dieser
Folie. Mit dieser Funktion können Sie beispielsweise den Namen der nächsten Folie in einer
Präsentation anzeigen lassen, sodass der Benutzer entscheiden kann, ob er tatsächlich zu dieser
Folie navigieren möchte.
Beispiel
In diesem Beispiel zeigt die Beschriftung der Button-Komponente nextButton den Namen der
nächsten Folie in der Präsentation an. Wenn es keine nächste Folie gibt (d. h.
meineSlide.nextSlide ist null), wird die Beschriftung entsprechend aktualisiert und zeigt dem
Benutzer an, dass er sich am Ende der Folienpräsentation befindet.
Slide-Klasse (nur Flash Professional)
549
if (meineSlide.nextSlide != null) {
nextButton.label = "Nächste Folie: " + meineSlide.nextSlide._name + " > ";
} else {
nextButton.label = "Ende der Präsentation.";
}
Siehe auch
Slide.gotoNextSlide(), Slide.previousSlide
Slide.numChildSlides
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.numChildSlides
Beschreibung
Eigenschaft (schreibgeschützt); gibt die Anzahl der Unterfolien zurück, die meineSlide
untergeordnet sind. Beachten Sie, dass eine Folie entweder Formulare oder andere Folien
enthalten kann. Wenn meineSlide sowohl Folien als auch Formulare enthält, gibt diese
Eigenschaft lediglich die Anzahl der untergeordneten Folien zurück. Die Formulare werden nicht
gezählt.
Beispiel
In diesem Beispiel werden die Methoden Slide.numChildSlide und Slide.getChildSlide()
verwendet, um alle Unterfolien der Stammfolie „präsentation“ zu durchlaufen und ihre Namen
im Bedienfeld Ausgabe anzuzeigen.
var numSlides = _root.präsentation.numChildSlides;
for(var slideIndex=0; slideIndex < numSlides; slideIndex++) {
var childSlide = _root.präsentation.getChildSlide(slideIndex);
trace(childSlide._name);
}
Siehe auch
Slide.getChildSlide()
Slide.overlayChildren
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.overlayChildren
550
Kapitel 4: Komponenten-Referenz
Beschreibung
Eigenschaft; bestimmt, ob Unterfolien von meineSlide bei der Navigation von einer Unterfolie
zur nächsten sichtbar bleiben. Bei der Einstellung true bleibt die Ausgangsfolie sichtbar, wenn
die Steuerung auf ihre nächste Nachbarfolie übergeht. Bei der Einstellung false ist die
Ausgangsfolie nicht mehr sichtbar, nachdem die Steuerung auf ihre nächste Nachbarfolie
übergegangen ist.
Diese Eigenschaft auf "true" einzustellen ist z. B. sinnvoll, wenn eine Folie Unterfolien als
Aufzählungspunkte enthält, die eine nach der anderen sichtbar werden (mit Hilfe von
Übergängen beispielsweise), wobei alle zugehörigen Folien im Zuge dieses Vorgangs sichtbar
bleiben sollen.
Hinweis: Diese Eigenschaft lässt sich nur auf die unmittelbar untergeordneten Folien von
meineSlide anwenden, nicht auf alle (verschachtelten) Unterfolien.
Beispiel
Im folgenden Beispiel enthält die Folie „Intro_bullets“ drei Unterfolien („Finance“, „Human
resources“ und „Operations“), auf denen jeweils ein Aufzählungspunkt angezeigt wird. Indem Sie
Intro_bullets.overlayChildren auf "true" setzen, bleibt jede Unterfolie mit ihrem
Aufzählungspunkt auf der Bühne sichtbar, während die folgenden Unterfolien eingeblendet
werden.
Slide.parentIsSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.parentIsSlide
Slide-Klasse (nur Flash Professional)
551
Beschreibung
Eigenschaft (schreibgeschützt); ein Boolescher Wert (true oder false), der angibt, ob das
übergeordnete Objekt von meineSlide ebenfalls eine Folie ist. Handelt es sich beim
übergeordneten Objekt von meineSlide um eine Folie oder um eine Unterklasse der Folie, gibt
diese Eigenschaft den Wert true zurück. Andernfalls gibt sie false zurück.
Fungiert meineSlide als Stammfolie in einer Präsentation, gibt diese Eigenschaft false zurück,
da es sich beim übergeordneten Objekt der Folie „präsentation“ um die Hauptzeitleiste (_level0)
handelt und nicht um eine Folie. Der Wert false wird ebenfalls zurückgegeben, wenn das
übergeordnete Objekt von meineSlide ein Formular ist.
Beispiel
Mit dem folgenden Code wird bestimmt, ob das übergeordnete Objekt von meineSlide auch
eine Folie ist. Ist das nicht der Fall, wird davon ausgegangen, dass es sich bei meineSlide um die
Stamm- oder Master-Folie handelt und daher keine Nachbarfolien hat. Wenn hingegen
meineSlide.parentIsSlide den Wert true aufweist, wird die Anzahl der Nachbarfolien von
meineSlide im Bedienfeld Ausgabe angezeigt.
if (meineSlide.parentIsSlide) {
trace("Ich habe " + meineSlide._parent.numChildSlides+" Nachbarfolien");
} else {
trace("Ich bin die Stammfolie und habe keine Nachbarfolien.");
}
Siehe auch
Slide.numChildSlides
Slide.playHidden
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.playHidden
Beschreibung
Eigenschaft; ein Boolescher Wert, der bestimmt, ob meineSlide weiterhin abgespielt werden soll,
auch wenn sie ausgeblendet ist. Bei der Einstellung true wird meineSlide auch dann weiterhin
abgespielt, wenn sie ausgeblendet ist. Bei der Einstellung false wird meineSlide angehalten,
sobald sie ausgeblendet wird. Bei einem erneuten Aufruf beginnt die Wiedergabe von
meineSlide wieder mit Bild 1.
Sie können die Einstellung dieser Eigenschaft auch in der Flash-Authoring-Umgebung im
Eigenschafteninspektor vornehmen.
552
Kapitel 4: Komponenten-Referenz
Slide.previousSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.previousSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt die Folie zurück, die Sie durch den Aufruf
meineSlide.gotoPreviousSlide() erreichen würden, navigiert aber nicht tatsächlich zu dieser
Folie. Mit dieser Funktion können Sie beispielsweise den Namen der vorherigen Folie in einer
Präsentation anzeigen lassen, sodass der Benutzer entscheiden kann, ob er tatsächlich zu dieser
Folie navigieren möchte.
Beispiel
In diesem Beispiel zeigt die Beschriftung der Button-Komponente previousButton den Namen
der vorherigen Folie in der Präsentation an. Wenn es keine vorherige Folie gibt (d. h.
meineSlide.previousSlide ist null), wird die Beschriftung entsprechend aktualisiert und zeigt
dem Benutzer an, dass er sich am Anfang der Folienpräsentation befindet.
if (meineSlide.previousSlide != null) {
previousButton.label = "Vorherige Folie: " + meineSlide.previous._name + "
> ";
} else {
previousButton.label = "Sie befinden sich am Anfang der Präsentation.";
Siehe auch
Slide.gotoPreviousSlide(), Slide.nextSlide
Slide.revealChild
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
on(revealChild) {
// Hier Code eingeben
}
Beschreibung
Ereignis; wird immer dann per Broadcast gesendet, wenn die Unterfolie eines Folienobjekts von
„nicht sichtbar“ zu „sichtbar“ wechselt. Die Hauptfunktion dieses Ereignisses besteht darin,
Einblendungsübergänge auf alle Unterfolien der betreffenden Folie zu übertragen.
Slide-Klasse (nur Flash Professional)
553
Beispiel
Wenn der Code der Stammfolie (also z. B. der Folie „präsentation“) zugewiesen wird, zeigt dieser
Code den Namen jeder Unterfolie an, sobald die Stammfolie sichtbar wird.
on(revealChild) {
var child = eventObj.target._name;
trace(child + " wurde soeben eingeblendet");
}
Siehe auch
Slide.hideChild
Slide.rootSlide
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX Professional 2004.
Verwendung
meineSlide.rootSlide
Beschreibung
Eigenschaft (schreibgeschützt); gibt die Stammfolie des Folienbaums oder der Verzweigung an,
die meineSlide enthält.
Beispiel
Angenommen Sie haben einen Movieclip auf einer Folie, der zur ersten Folie der Präsentation
wechseln soll, wenn Sie ihn anklicken. Dieses Ziel erreichen Sie, wenn Sie dem Movieclip
folgenden Code zuweisen:
on(press) {
_parent.rootSlide.gotoFirstSlide();
}
In diesem Fall bezieht sich _parent auf die Folie, die das Movieclip-Objekt enthält.
554
Kapitel 4: Komponenten-Referenz
StyleManager-Klasse
ActionScript-Klassenname
mx.styles.StyleManager
Mit der StyleManager-Klasse können bekannte Vererbungsstile und -farben verfolgt werden. Sie
brauchen diese Klasse nur dann zu verwenden, wenn Sie beim Erstellen von Komponenten einen
neuen Vererbungsstil oder eine Vererbungsfarbe hinzufügen möchten.
Welche Stile vererbbar sind, erfahren Sie auf der Website von W3C.
Übersicht: Methoden der StyleManager-Klasse
Methode
Beschreibung
StyleManager.registerColorName()
Registriert eine neue Farbe in der StyleManager-Klasse.
StyleManager.registerColorStyle()
Registriert einen neuen Stil in der StyleManager-Klasse.
StyleManager.registerInheritingSyle() Registriert einen neuen Vererbungsstil in der
StyleManager-Klasse.
StyleManager.registerColorName()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
StyleManager.registerColorName(colorName, value)
Parameter
colorName
Ein String, mit dem der Name der Farbe angegeben wird (z. B. gray, darkGrey
usw.).
value
Eine Hexadezimalzahl, mit der die Farbe angegeben wird (z. B. 0x808080, 0x404040
usw.).
Rückgaben
Keine.
Beschreibung
Methode; ordnet einem Hexadezimalwert einen Farbnamen zu und registriert diese Kombination
in der StyleManager-Klasse.
Beispiel
Im folgenden Beispiel wird die Kombination aus dem Farbnamen gray und dem zugeordneten
Hexadezimalwert 0x808080 registriert:
StyleManager.registerColorName("gray", 0x808080 );
StyleManager-Klasse
555
StyleManager.registerColorStyle()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
StyleManager.registerColorStyle(colorStyle)
Parameter
colorStyle Ein String, mit dem die nähere Bezeichnung der Farbe angegeben wird (z. B.
highlightColor (Farbe für Markierungen), shadowColor (Farbe für abgeblendete Elemente),
disabledColor (Farbe für deaktivierte Elemente) usw.).
Rückgaben
Keine.
Beschreibung
Methode; fügt der StyleManager-Klasse einen neuen Farbstil hinzu.
Beispiel
In folgendem Beispiel wird highlightColor als Farbstil registriert:
StyleManager.registerColorStyle("highlightColor");
StyleManager.registerInheritingSyle()
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
StyleManager.registerInheritingStyle(propertyName)
Parameter
propertyName Ein String,
newProp1, newProp2 usw.).
mit dem der Name einer Stileigenschaft angegeben wird (z. B.
Rückgaben
Keine.
556
Kapitel 4: Komponenten-Referenz
Beschreibung
Methode; kennzeichnet die Stileigenschaft als vererbbar. Sie können diese Methode zur
Registrierung von Stileigenschaften verwenden, die nicht in der CSS-Spezifikation aufgeführt
sind. Verwenden Sie diese Methode jedoch nicht dazu, nicht vererbbare Stileigenschaften in
vererbbare Eigenschaften zu ändern.
Beispiel
Im folgenden Beispiel wird die Stileigenschaft newProp1 als Vererbungsstil registriert:
StyleManager.registerInheritingStyle("newProp1");
TextArea-Komponente
Mit der TextArea-Komponente wird der Zeilenumbruch des nativen ActionScript-Objekts
TextField festgelegt. Sie können Stile zur Anpassung der TextArea-Komponente verwenden. Der
Inhalt einer deaktivierten Instanz wird in der Farbe angezeigt, die dem Stil disabledColor für
deaktivierte Elemente zugeordnet ist. Die TextArea-Komponente kann auch im HTML-Format
oder als Kennwortfeld formatiert werden, in dem der Text unkenntlich dargestellt wird.
TextArea-Komponenten können in einer Anwendung aktiviert und deaktiviert werden. In
deaktiviertem Zustand werden Eingaben über die Maus oder die Tastatur nicht empfangen. In
aktiviertem Zustand gelten für dieses Objekt dieselben Fokus-, Auswahl- und Navigationsregeln
wie für das ActionScript-Objekt TextField. Wenn eine TextArea-Instanz den Fokus hat, können
Sie diese mit Hilfe der folgenden Tasten steuern:
Taste
Beschreibung
Pfeiltasten
Verschieben die Einfügemarke eine Zeile nach oben, unten, links oder
rechts.
Bild-ab-Taste
Verschiebt um einen Bildschirm nach unten.
Bild-auf-Taste
Verschiebt um einen Bildschirm nach oben.
<Umschalt>+<Tab>
Verschiebt den Fokus auf das vorherige Objekt.
<Tab>
Verschiebt den Fokus auf das nächste Objekt.
Weitere Informationen zur Steuerung des Fokus finden Sie unter „Benutzerdefinierte
Fokusnavigation erstellen“ auf Seite 28 und „FocusManager-Klasse“ auf Seite 301.
In einer Live-Vorschau jeder einzelnen TextArea-Instanz werden die Änderungen an Parametern
im Eigenschafteninspektor oder Komponenten-Inspektor beim Authoring dargestellt. Wenn eine
Bildlaufleiste benötigt wird, wird diese in der Vorschau zwar angezeigt, funktioniert jedoch nicht.
Außerdem kann in der Live-Vorschau weder Text ausgewählt noch Text in der
Komponenteninstanz auf der Bühne eingegeben werden.
Wenn Sie einer Anwendung die TextArea-Komponente hinzufügen, können Sie diese im
Bedienfeld Eingabehilfen für Bildschirmleseprogramme verfügbar machen.
TextArea-Komponente
557
TextArea-Komponente verwenden
Sie können die TextArea-Komponente überall dort einsetzen, wo ein Textfeld mit mehreren
Zeilen benötigt wird. Informationen zu Textfeldern mit nur einer Zeile finden Sie unter
„TextInput-Komponente“ auf Seite 569. Sie können die TextArea-Komponente beispielsweise für
ein Kommentarfeld in einem Formular verwenden. Sie können einen Listener einrichten, mit
dem überprüft wird, ob das Feld leer ist, wenn der Benutzer zum Verlassen des Feldes die
Tabulatortaste drückt. In diesem Fall kann der Listener beispielsweise die Fehlermeldung
anzeigen, dass ein Kommentar in dem Feld eingegeben werden muss.
Parameter der TextArea-Komponente
Die folgenden Authoring-Parameter können Sie im Eigenschafteninspektor oder KomponentenInspektor für jede TextArea-Komponenteninstanz festlegen:
text gibt den Inhalt des Textbereichs an. Weder im Eigenschafteninspektor noch im
Komponenten-Inspektor können Zeilenumbrüche eingegeben werden. Der Standardwert lautet
"" (leerer String).
gibt an, ob der Text in HTML (true) formatiert ist oder nicht (false). Der Standardwert
lautet false.
html
gibt an, ob die TextArea-Komponente bearbeitet werden kann (true) oder nicht (false).
Der Standardwert lautet true.
editable
wordWrap gibt an, ob im Text Zeilenumbrüche vorgenommen werden (true) oder nicht (false).
Der Standardwert lautet true.
Mit Hilfe von ActionScript-Anweisungen können Sie diese und weitere Optionen für die
TextArea-Komponenten über deren Eigenschaften, Methoden und Ereignisse steuern. Weitere
Informationen finden Sie unter TextArea-Klasse.
Anwendungen mit der TextArea-Komponente erstellen
In der folgenden Anleitung wird erläutert, wie während des Authorings eine TextAreaKomponente einer Anwendung hinzugefügt wird. In diesem Beispiel handelt es sich bei der
Komponente um ein Kommentarfeld mit einem Ereignislistener, der überprüft, ob der Benutzer
Text eingegeben hat.
So erstellen Sie eine Anwendung mit einer TextArea-Komponente:
1 Ziehen Sie eine TextArea-Komponente aus dem Bedienfeld Komponenten auf die Bühne.
2 Geben Sie im Eigenschafteninspektor den Instanznamen comment an.
3 Legen Sie im Eigenschafteninspektor die gewünschten Parameter fest. Legen Sie jedoch für den
Parameter text keinen Wert, für den Parameter editable den Wert true und für den Parameter
password den Wert false fest.
558
Kapitel 4: Komponenten-Referenz
4 Wählen Sie in der Zeitleiste das erste Bild aus, öffnen Sie das Bedienfeld Aktionen, und geben
Sie den folgenden Code ein:
textListener = new Object();
textListener.handleEvent = function (evt){
if (comment.length < 1) {
Alert(_root, "Fehler", "Geben Sie mindestens ein Zeichen als Kommentar in
diesem Feld ein.", mxModal | mxOK);
}
}
comment.addEventListener("focusOut", textListener);
Mit diesem Code wird eine FocusOut-Ereignisprozedur für die TextArea-Instanz comment
konfiguriert, mit der sichergestellt wird, dass der Benutzer im Textfeld etwas eingegeben hat.
5 Nachdem in der Instanz comment Text eingegeben wurde, können Sie deren Wert wie folgt
abrufen:
var login = comment.text;
TextArea-Komponente anpassen
Eine TextArea-Komponente kann sowohl beim Authoring als auch zur Laufzeit horizontal und
vertikal transformiert werden. Beim Authoring wählen Sie hierzu die Komponente auf der Bühne
aus und verwenden anschließend das Werkzeug Frei transformieren oder die Befehle unter
Modifizieren > Transformieren. Zur Laufzeit können Sie UIObject.setSize() oder andere
geeignete Eigenschaften und Methoden der TextArea-Klasse verwenden.
Beim Ändern der Größe einer TextArea-Komponente wird die Größe des Feldrahmens
entsprechend der neuen Begrenzungsbox geändert. Falls Bildlaufleisten erforderlich sind, werden
sie am unteren und rechten Rand platziert. Anschließend wird die Größe des Textfeldes innerhalb
des verbleibenden Bereichs angepasst. Eine TextArea-Komponente enthält keine Elemente mit
fester Größe. Wenn die TextArea-Komponente zum Anzeigen des Textes zu klein ist, wird der
Text abgeschnitten.
Stile mit der TextArea-Komponente verwenden
Die TextArea-Komponente unterstützt nur eine Gruppe von Komponentenstilen für den
gesamten Text im Feld. Sie können den Text jedoch auch im HTML-Format anzeigen, das mit
der HTML-Wiedergabe des Flash Players kompatibel ist. Wenn der Text im HTML-Format
wiedergegeben werden soll, legen Sie für TextArea.html den Wert true fest.
Die Stileigenschaften backgroundColor und borderStyle der TextArea-Komponente werden
über eine Klassenstil-Deklaration definiert. Klassenstile haben Vorrang vor globalen Stilen. Wenn
Sie also die Stileigenschaften backgroundColor und borderStyle definieren möchten, müssen
Sie für die Instanz eine andere Stil-Deklaration definieren.
Bei Stileigenschaften, deren Bezeichnung mit „Color“ endet, handelt es sich um
Farbstileigenschaften, die sich anders als andere Stileigenschaften verhalten. Weitere
Informationen finden Sie unter „Stile zur Farb- und Textanpassung in einer Komponente
verwenden“ auf Seite 31.
TextArea-Komponente
559
TextArea-Komponenten unterstützen die folgenden Stile:
Stil
Beschreibung
color
Die Standardfarbe für Text.
embedFonts
Die in das Dokument einzubettenden Schriftarten.
fontFamily
Die Schriftart für Text.
fontSize
Die Punktgröße der Schriftart.
fontStyle
Der Schriftstil für den Text: „normal“ oder „italic“.
fontWeight
Der Schriftstil für den Text: „normal“ oder „bold“.
textAlign
Die Textausrichtung: „left“ (links), „right“ (rechts) oder „center“ (zentriert).
textDecoration
Textauszeichnung; mögliche Werte sind „none“ (keine) und „underline“
(unterstrichen).
Skins mit der TextArea-Komponente verwenden
Zur Darstellung der Feldrahmen in der TextArea-Komponente wird die RectBorder-Klasse
verwendet. Mit der Methode setStyle() (siehe UIObject.setStyle()) können Sie die
folgenden RectBorder-Stileigenschaften ändern:
RectBorder-Stile
Buchstabe
borderColor
a
highlightColor
b
borderColor
c
shadowColor
d
borderCapColor
e
shadowCapColor
f
shadowCapColor
g
borderCapColor
h
Mit den Stileigenschaften werden die folgenden Positionen für den Rand festgelegt:
560
Kapitel 4: Komponenten-Referenz
TextArea-Klasse
Vererbung
UIObject > UIComponent > View > ScrollView > TextArea
ActionScript-Klassenname
mx.controls.TextArea
Mit den Eigenschaften der TextArea-Klasse können Sie den Inhalt, die Formatierung sowie die
horizontale und vertikale Position des Textes zur Laufzeit festlegen. Außerdem können Sie
angeben, ob eine Bearbeitung des Feldes möglich sein soll und der Text darin wie in einem
Kennwortfeld unkenntlich dargestellt werden soll. Darüber hinaus können Sie einschränken,
welche Zeichen im Feld eingegeben werden können.
Die mit ActionScript festgelegte Eigenschaft der TextArea-Klasse überschreibt den gleichnamigen
Parameter, der in den Bedienfeldern des Eigenschafteninspektors bzw. des KomponentenInspektors festgelegt wurde.
Die TextArea-Komponente überschreibt das standardmäßige Fokusrechteck des Flash Players und
zeigt stattdessen ein angepasstes Fokusrechteck mit abgerundeten Ecken an.
Die TextArea-Komponente unterstützt CSS-Stile sowie zusätzliche HTML-Stile, die vom
Flash Player unterstützt werden.
Für jede Komponentenklasse gibt es die Eigenschaft version; hierbei handelt es sich um eine
Klasseneigenschaft. Klasseneigenschaften sind nur für die Klasse als solche verfügbar. Die
Eigenschaft version gibt eine Zeichenfolge zurück, die die Version der Komponente angibt. Mit
dem folgenden Code können Sie die Eigenschaft version abrufen:
trace(mx.controls.TextArea.version);
Hinweis: Der folgende Code gibt undefined zurück:
trace(meineTextAreaInstance.version);.
Übersicht: Eigenschaften der TextArea-Klasse
Eigenschaft
Beschreibung
TextArea.editable
Ein Boolescher Wert, der angibt, ob das Feld bearbeitet werden kann
(true) oder nicht (false).
TextArea.hPosition
Definiert die horizontale Position des Textes innerhalb des
Bildlauffensters.
TextArea.hScrollPolicy Gibt an, ob die horizontale Bildlaufleiste immer aktiviert (on) oder immer
deaktiviert (off) ist oder nur bei Bedarf aktiviert wird (auto).
TextArea.html
Gibt an, ob ein Textfeld im HTML-Format formatiert werden kann.
TextArea.length
Die Anzahl von Zeichen im Textfeld. Diese Eigenschaft ist
schreibgeschützt.
TextArea.maxChars
Die maximale Anzahl von Zeichen, die das Textfeld aufnehmen kann.
TextArea.maxHPosition
Der maximale Wert für die Eigenschaft TextArea.hPosition.
TextArea.maxVPosition
Der maximale Wert für die Eigenschaft TextArea.vPosition.
TextArea.password
Ein Boolescher Wert, der angibt, ob das Feld ein Kennwortfeld ist (true)
oder nicht (false).
TextArea.restrict
Die Zeichen, die ein Benutzer in das Textfeld eingeben kann.
TextArea-Komponente
561
Eigenschaft
Beschreibung
TextArea.text
Der Textinhalt einer TextArea-Komponente.
TextArea.vPosition
Eine Zahl, mit der die vertikale Bildlaufposition angegeben wird.
TextArea.vScrollPolicy Gibt an, ob die vertikale Bildlaufleiste immer aktiviert (on) oder immer
deaktiviert (off) ist oder nur bei Bedarf aktiviert wird (auto).
TextArea.wordWrap
Ein Boolescher Wert, der angibt, ob der Text umbrochen wird (true) oder
nicht (false).
Übersicht: Ereignisse der TextArea-Klasse
Ereignis
Beschreibung
TextArea.change
Benachrichtigt die Listener, dass der Text geändert wurde.
TextArea.change
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
Verwendung 1:
on(change){
...
}
Verwendung 2:
listenerObject = new Object();
listenerObject.change = function(eventObject){
...
}
textAreaInstance.addEventListener("change", listenerObject)
Beschreibung
Ereignis; benachrichtigt die Listener, das der Text geändert wurde. Dieses Ereignis wird nach der
Änderung von Text als Broadcastübertragung verteilt. Mit diesem Ereignis kann nicht verhindert
werden, dass bestimmte Zeichen im Textfeld der Komponente eingegeben werden. Verwenden
Sie TextArea.restrict zum Einschränken des Zeichensatzes.
Im ersten Verwendungsbeispiel wird eine on()-Prozedur verwendet, die direkt einer TextAreaKomponenteninstanz zugeordnet werden muss. Das Schlüsselwort this in einer on()Ereignisprozedur einer Komponente verweist auf die Instanz der Komponente. Mit dem
folgenden Code, der der Instanz meineTextArea zugeordnet ist, wird beispielsweise
„_level0.meineTextArea“ an das Ausgabebedienfeld gesendet:
on(change){
trace(this);
}
562
Kapitel 4: Komponenten-Referenz
Das zweite Verwendungsbeispiel basiert auf einem Dispatcher/Listener-Ereignismodell. Eine
Komponenteninstanz (textAreaInstance) setzt ein Ereignis (in diesem Fall change) ab, und das
Ereignis wir durch eine Funktion, auch als Prozedur bezeichnete, des von Ihnen erstellten
Listener-Objekts (listenerObject) verarbeitet. Beim Auslösen dieses Ereignisses wird eine von
Ihnen definierte Methode aufgerufen, deren Name dem des Ereignisses entspricht, das sich auf
das Listener-Objekt bezieht. Beim Auslösen des Ereignisses wird automatisch ein Ereignisobjekt
(eventObject) an die Methode des Listener-Objekts übergeben. Jedes Ereignisobjekt verfügt
über einen Satz von Eigenschaften, die Daten zum Ereignis enthalten. Mit Hilfe dieser
Eigenschaften können Sie den Code erstellen, der auf das Ereignis reagiert. Anschließend rufen
Sie die Methode UIEventDispatcher.addEventListener() für die Komponenteninstanz auf,
die das Ereignis überträgt, um den Listener der Instanz zuzuordnen. Wenn die Instanz das
Ereignis absetzt, wird der Listener aufgerufen.
(Weitere Informationen zu Ereignisobjekten finden Sie unter „Ereignisobjekte“ auf Seite 619.)
Beispiel
In diesem Beispiel wird die Gesamtanzahl der Änderungen des Textfeldes verfolgt:
meineTextArea.changeHandler = function(obj) {
this.changeCount++;
trace(obj.target);
trace("Der Text wurde bisher " + this.changeCount + " Mal geändert. Er
lautet jetzt " +
this.text);
}
Siehe auch
UIEventDispatcher.addEventListener()
TextArea.editable
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
textAreaInstance.editable
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob die Komponente bearbeitet werden kann (true)
oder nicht (false). Der Standardwert lautet true.
TextArea.hPosition
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
TextArea-Komponente
563
Verwendung
textAreaInstance.hPosition
Beschreibung
Eigenschaft; definiert die horizontale Position des Textes innerhalb des Felds. Der Standardwert
ist 0.
Beispiel
Mit dem folgenden Code werden die Zeichen am linken Rand im Feld angezeigt:
meineTextArea.hPosition = 0;
TextArea.hScrollPolicy
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
textAreaInstance.hScrollPolicy
Beschreibung
Eigenschaft; gibt an, ob die horizontale Bildlaufleiste immer aktiviert ist (on), immer deaktiviert
ist (off ) oder bei entsprechender Größe des Feldes automatisch aktiviert wird (auto). Der
Standardwert lautet auto.
Beispiel
Mit dem folgenden Code werden horizontale Bildlaufleisten immer aktiviert:
text.hScrollPolicy = "on";
TextArea.html
Verfügbarkeit
Flash Player 6 Version 79.
Edition
Flash MX 2004.
Verwendung
textAreaInstance.html
Beschreibung
Eigenschaft; ein Boolescher Wert, der angibt, ob das Textfeld mit HTML formatiert ist (true)
oder nicht (false). Weist die Eigenschaft html den Wert true auf, handelt es sich um ein
HTML-Textfeld. Weist die Eigenschaft html den Wert false auf, handelt es sich