In diesem Quick Tip zu den Flash Professional-Komponenten werfen wir einen Blick auf die ComboBox und das DataGrid.
In der Demo-SWF sehen Sie eine ComboBox und ein DataGrid. Wenn Sie einen Status aus der ComboBox auswählen, zeigt ein Label die Bevölkerung dieses Bundesstaates an und lädt die Flagge des Bundesstaates. Wenn Sie eine Zeile im DataGrid auswählen, navigieren Sie zu der ausgewählten Site.
Öffnen Sie ein neues Flash-Dokument und legen Sie die folgenden Eigenschaften fest.
Öffnen Sie das Komponentenfenster, indem Sie auf gehen Fenster> Komponenten oder drücken Sie STRG + F7.
Ziehen Sie eine ComboBox, ein DataGrid und zwei Labels auf die Bühne.
Geben Sie im Eigenschaftenfenster der ComboBox den Instanznamen "statesCombo" an..
Wenn das Eigenschaftenfenster nicht angezeigt wird, gehen Sie zu Fenster> Komponenten oder drücken Sie STRG + F3
Setzen Sie das X der ComboBox auf 20.00 und das Y auf 39.00
Geben Sie im Eigenschaftenfenster dem DataGrid den Instanznamen "sitesDG" an..
Setzen Sie die DataGrids X auf 20.00 und Y auf 236.00.
Geben Sie im Eigenschaftenfenster dem ersten Label den Instanznamen "statesLabel" an..
Setzen Sie das X des Labels auf 200.00 und das Y auf 39.00.
Geben Sie im Eigenschaftenfenster dem zweiten Label den Instanznamen "sitesLabel" an..
Setzen Sie das X dieses Labels auf 20.00 und das Y auf 209.00.
Erstellen Sie eine neue ActionScript-Datei, und geben Sie ihr den Namen Main.as
Wir werden unsere Komponenten in Main.as deklarieren, so dass wir das automatische Deklarieren von Stufeninstanzen deaktivieren müssen. Der Vorteil dabei ist, dass Sie Code-Hinweise für die Instanz erhalten.
Gehe zu Datei> Veröffentlichungseinstellungen
Klicken Sie neben "Skript [Actionscript 3.0]" auf "Einstellungen"..
Deaktivieren Sie "Bühneninstanzen automatisch deklarieren"..
Öffnen Sie in Main die Paketdeklaration und importieren Sie die Klassen, die wir verwenden werden
Fügen Sie Folgendes zu Main.as hinzu.
package import flash.display.MovieClip; // zum Anzeigen von Bildern erforderlich import flash.display.Loader; // unsere Onstage-Komponenten import fl.data.DataProvider; import fl.controls.ComboBox; import fl.controls.Label; import fl.controls.DataGrid; import flash.events.Event; // für die automatische Größenänderung von Textfeldern erforderlich import flash.text.TextFieldAutoSize; import flash.net.URLRequest; import flash.net.navigateToURL;
Fügen Sie die Klassendeklaration selbst hinzu, erweitern Sie MovieClip und richten Sie unsere Konstruktorfunktion ein. Weitere Informationen zu Dokumentklassen finden Sie hier.
Fügen Sie Folgendes zu Main.as hinzu.
public class Main erweitert MovieClip public var statesCombo: ComboBox; public var statesLabel: Label; public var sitesDG: DataGrid; public var sitesLabel: Label; var comboDP: DataProvider; var DataGridDP: DataProvider; var flagLoader: Loader; öffentliche Funktion Main () setupComboDP (); setupDataGridDP (); setupStatesCombo (); setupLabels (); setupSitesDataGrid ();
Hier definieren wir die Funktionen setupComboDP, setupDataGridDP, setupStatesCombo, setupLabels und setupSitesDataGrid.
DataProvider bieten eine einfache Möglichkeit, Daten für Komponenten bereitzustellen.
In setupStatesCombo fügen wir der Bühne außerdem einen Loader hinzu, um Bilder der Flaggen zu laden. Wir hätten eine eigene Funktion definieren können, um den Loader einzurichten, aber hier tun wir es einfach innerhalb dieser Funktion.
Fügen Sie Folgendes zu Main.as hinzu.
private Funktion setupComboDP (): void comboDP = new DataProvider (); comboDP.addItem (Label: "Alabama", Bevölkerung: "4661900"); comboDP.addItem (Label: "Alaska", Bevölkerung: "686293"); comboDP.addItem (Label: "Arizona", Bevölkerung: "6500180"); comboDP.addItem (Label: "Arkansas", Bevölkerung: "2855390"); comboDP.addItem (Label: "California", Bevölkerung: "36756666"); comboDP.addItem (Label: "Colorado", Bevölkerung: "4939456"); comboDP.addItem (Label: "Conneticut", Bevölkerung: "3501252"); comboDP.addItem (Label: "Delaware", Bevölkerung: "873092"); comboDP.addItem (Label: "Florida", Bevölkerung: "18328340"); comboDP.addItem (Label: "Georgia", Bevölkerung: "9685744"); comboDP.addItem (Label: "Hawaii", Bevölkerung: "1288198"); comboDP.addItem (Label: "Idaho", Bevölkerung: "1523816"); comboDP.addItem (Label: "Illinois", Bevölkerung: "12901563"); comboDP.addItem (Label: "Indiana", Bevölkerung: "6376792"); comboDP.addItem (Label: "Iowa", Bevölkerung: "3002555"); private Funktion setupDataGridDP (): void DataGridDP = new DataProvider (); // fügt den entsprechenden Spalten im DataGrid DataGridDP.addItem Elemente hinzu (site: "Activetuts", Beschreibung: "Flash-Tutorials", Adresse: "http://active.tutsplus.com"); DataGridDP.addItem (site: "Nettuts", Beschreibung: "Verschiedene Webdesign-Tutorials", Adresse: "http://net.tutsplus.com"); DataGridDP.addItem (site: "Mobiletuts", Beschreibung: "Mobile Device Tutorials", Adresse: "http://mobile.tutsplus.com"); DataGridDP.addItem (site: "Psdtuts", Beschreibung: "PhotoShop-Tutorials", Adresse: "http://psd.tutsplus.com"); DataGridDP.addItem (site: "Vectortuts", Beschreibung: "Vektorprogramm-Tutorials", Adresse: "http://vector.tutsplus.com"); DataGridDP.addItem (site: "Aetuts", Beschreibung: "After Effects-Tutorials", Adresse: "http://ae.tutsplus.com"); DataGridDP.addItem (site: "Phototuts", Beschreibung: "Fotografie-Tutorials", Adresse: "http://photo.tutsplus.com"); private Funktion setupStatesCombo (): void statesCombo.width = 150; statesCombo.prompt = "Wählen Sie einen Staat aus"; statesCombo.dataProvider = comboDP; flagLoader = neuer Loader (); flagLoader.x = 200.00; flagLoader.y = 60,00; addChild (FlagLoader); statesCombo.addEventListener (Event.CHANGE, loadData); public function setupLabels (): void statesLabel.text = ""; statesLabel.autoSize = statesLabel.autoSize = TextFieldAutoSize.LEFT; sitesLabel.text = "Klicken Sie auf die Zeile, um die Site zu besuchen"; sitesLabel.autoSize = sitesLabel.autoSize = TextFieldAutoSize.LEFT; public function setupSitesDataGrid (): void // Die Spalten werden in ein Array eingefügt. Wir haben 3 Spalten. sitesDG.columns = ["site", "description", "address"]; sitesDG.dataProvider = DataGridDP; sitesDG.width = 500; sitesDG.addEventListener (Event.CHANGE, gotoSite);
Hier kodieren wir unsere Event Listener.
Wir erhalten das Label des ausgewählten Elements und zeigen die Grundgesamtheit für den entsprechenden Bundesstaat.
Wir laden das entsprechende Bild durch Konvertieren der Ausgewähltes Objekt
(state) in Kleinbuchstaben einfügen und ".jpg" anhängen.
Fügen Sie Folgendes zu Main.as hinzu.
public function loadData (e: Event): void // Ruft die selectedItems-Bezeichnung ab, z. "Alabama" // Laden Sie eine relevante .jpg-Datei, z. B. "alabama.jpg" konvertiert das ausgewählte Element (Zustand) in Kleinbuchstaben. StatesLabel.text = e.target.selectedItem.Label + "s Bevölkerung ist" + e.target.selectedItem.population; flagLoader.load (neue URLRequest ("flagsLarge /" + e.target.selectedItem.Label.toLowerCase () + ". jpg")); public function gotoSite (e: Event): void navigateToURL (neue URLRequest (e.target.selectedItem.address)); // Die Klasse schließen // Das Paket schließen
Verwenden der ComboBox- und DataGrid-Komponenten ist eine gute Möglichkeit, eine Liste von Daten zur Auswahl anzuzeigen.
Sie werden im Komponentenparameterfenster der Komponenten feststellen, dass Sie bestimmte Eigenschaften überprüfen und auswählen können.
Das obige Bild ist für die ComboBox-Komponente.
Die Eigenschaften für die ComboBox-Komponente lauten wie folgt.
Die Eigenschaften für das DataGrid lauten wie folgt.
In den Hilfedateien können Sie mehr über diese Eigenschaften erfahren.
Um mehr über die Eigenschaften von Labels zu erfahren, lesen Sie den Quick Tip zu den Komponenten Button und Label.
Um zu erfahren, wie Sie das DataGrid aus einer XML-Datei laden können, lesen Sie mein Tutorial zu Datgrid mit XML.
Nochmals vielen Dank an http://www.state-flags-usa.com, dass ich ihre Flaggenbilder verwenden darf. Und danke fürs Lesen. Weitere Komponenten-Einführungen!.