In questo suggerimento rapido sui componenti di Flash Professional daremo un'occhiata al ComboBox e al DataGrid.
Nel demo SWF vedrai un ComboBox e un DataGrid. La scelta di uno stato da ComboBox farà in modo che un'etichetta visualizzi la popolazione di tale stato e carichi il flag dello stato. Scegliendo una riga in DataGrid si navigherà sul sito prescelto.
Aprire un nuovo documento Flash e impostare le seguenti proprietà.
Apri la finestra dei componenti andando a Finestra> Componenti o premendo CTRL + F7.
Trascina un ComboBox, un DataGrid e due etichette sullo stage.
Nel pannello Proprietà date al ComboBox il nome dell'istanza "statesCombo".
Se il pannello Proprietà non viene visualizzato vai a Finestra> Componenti o premere CTRL + F3
Imposta l'X del ComboBox a 20,00 e il suo Y a 39,00
Nel pannello Proprietà date a DataGrid il nome dell'istanza "sitesDG".
Impostare DataGrids X su 20.00 e su Y su 236.00.
Nel pannello Proprietà, assegna alla prima etichetta il nome dell'istanza "statesLabel".
Imposta la X dell'etichetta su 200.00 e la sua Y su 39.00.
Nel pannello Proprietà assegna alla seconda etichetta il nome dell'istanza "sitesLabel".
Imposta l'X di questa etichetta a 20,00 e la sua Y a 209,00.
Creare un nuovo file ActionScript e assegnargli il nome Main.as
Dichiareremo i nostri componenti in Main.as quindi abbiamo bisogno di disattivare le istanze degli stage dichiarativi; il vantaggio di farlo è che otterrai l'indicazione del codice per l'istanza.
Vai a File> Impostazioni pubblicazione
Fai clic su "Impostazioni" accanto a "Script [Actionscript 3.0]".
Deseleziona "Dichiara automaticamente le istanze di stage".
In Main.as apri la dichiarazione del pacchetto e importa le classi che useremo
Aggiungi quanto segue a Main.as.
package import flash.display.MovieClip; // necessario per visualizzare le immagini import flash.display.Loader; // i nostri componenti sul palco importano fl.data.DataProvider; importare fl.controls.ComboBox; importare fl.controls.Label; importare fl.controls.DataGrid; import flash.events.Event; // necessario per autosize campi di testo import flash.text.TextFieldAutoSize; import flash.net.URLRequest; import flash.net.navigateToURL;
Aggiungi la dichiarazione di classe stessa, estendi MovieClip e imposta la nostra funzione di costruzione. Maggiori informazioni sulle classi di documenti sono disponibili qui.
Aggiungi quanto segue a Main.as.
public class Main estende 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; funzione pubblica Main () setupComboDP (); setupDataGridDP (); setupStatesCombo (); setupLabels (); setupSitesDataGrid ();
Qui definiamo le funzioni setupComboDP, setupDataGridDP, setupStatesCombo, setupLabels e setupSitesDataGrid.
I DataProvider forniscono un modo semplice per impostare i dati da fornire ai componenti.
Nel setupStatesCombo aggiungiamo anche un caricatore sul palco per caricare le immagini delle bandiere; avremmo potuto definire una funzione separata per impostare il caricatore, ma qui lo facciamo semplicemente all'interno di questa funzione.
Aggiungi quanto segue a Main.as.
setup di funzione privataComboDP (): void comboDP = new DataProvider (); comboDP.addItem (Etichetta: "Alabama", popolazione: "4661900"); comboDP.addItem (Etichetta: "Alaska", popolazione: "686293"); comboDP.addItem (Etichetta: "Arizona", popolazione: "6500180"); comboDP.addItem (Etichetta: "Arkansas", popolazione: "2855390"); comboDP.addItem (Etichetta: "California", popolazione: "36756666"); comboDP.addItem (Etichetta: "Colorado", popolazione: "4939456"); comboDP.addItem (Etichetta: "Conneticut", popolazione: "3501252"); comboDP.addItem (Etichetta: "Delaware", popolazione: "873092"); comboDP.addItem (Etichetta: "Florida", popolazione: "18328340"); comboDP.addItem (Etichetta: "Georgia", popolazione: "9685744"); comboDP.addItem (Etichetta: "Hawaii", popolazione: "1288198"); comboDP.addItem (Etichetta: "Idaho", popolazione: "1523816"); comboDP.addItem (Etichetta: "Illinois", popolazione: "12901563"); comboDP.addItem (Etichetta: "Indiana", popolazione: "6376792"); comboDP.addItem (Etichetta: "Iowa", popolazione: "3002555"); funzione privata setupDataGridDP (): void DataGridDP = new DataProvider (); // aggiunge elementi alle colonne corrispondenti in DataGrid DataGridDP.addItem (site: "Activetuts", descrizione: "Flash Tutorials", indirizzo: "http://active.tutsplus.com"); DataGridDP.addItem (site: "Netsuts", descrizione: "Vari tutorial Web Design", indirizzo: "http://net.tutsplus.com"); DataGridDP.addItem (site: "Mobiletuts", descrizione: "Tutorial per dispositivi mobili", indirizzo: "http://mobile.tutsplus.com"); DataGridDP.addItem (site: "Psdtuts", descrizione: "Tutorial PhotoShop", indirizzo: "http://psd.tutsplus.com"); DataGridDP.addItem (site: "Vectortuts", descrizione: "Tutorial del programma vettoriale", indirizzo: "http://vector.tutsplus.com"); DataGridDP.addItem (site: "Aetuts", descrizione: "After Effects Tutorials", indirizzo: "http://ae.tutsplus.com"); DataGridDP.addItem (site: "Phototuts", descrizione: "Tutorial fotografici", indirizzo: "http://photo.tutsplus.com"); funzione privata setupStatesCombo (): void statesCombo.width = 150; statesCombo.prompt = "Scegli uno stato"; statesCombo.dataProvider = comboDP; flagLoader = new 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 = "Clicca sulla riga per visitare il sito"; sitesLabel.autoSize = sitesLabel.autoSize = TextFieldAutoSize.LEFT; public function setupSitesDataGrid (): void // Le colonne sono messe in un array qui abbiamo 3 colonne sitesDG.columns = ["site", "description", "address"]; sitesDG.dataProvider = DataGridDP; sitesDG.width = 500; sitesDG.addEventListener (Event.CHANGE, gotoSite);
Qui codifichiamo i nostri ascoltatori di eventi.
Otteniamo l'etichetta dell'elemento selezionato e mostriamo la popolazione per lo stato corrispondente.
Carichiamo l'immagine corrispondente convertendo il selectedItem
(stato) in minuscolo e aggiungendo ".jpg" ad esso.
Aggiungi quanto segue a Main.as.
funzione pubblica loadData (e: Event): void // Ottieni l'etichetta SelectedItems ad es. "Alabama" // Carica un jpg pertinente, ad es. "alabama.jpg" convertiamo l'elemento selezionato (stato) in stati minuscoliLabel.text = e.target.selectedItem.Label + "La popolazione è" + e.target.selectedItem.population; flagLoader.load (new URLRequest ("flagsLarge /" + e.target.selectedItem.Label.toLowerCase () + ". jpg")); public function gotoSite (e: Event): void navigateToURL (new URLRequest (e.target.selectedItem.address)); // Chiudi la classe // Chiudi il pacchetto
Utilizzo dei componenti ComboBox e DataGrid sono un buon modo per visualizzare un elenco di dati tra cui scegliere.
Noterai nel pannello Parametri componenti dei componenti che puoi controllare e selezionare alcune proprietà.
L'immagine sopra è per il componente ComboBox.
Le proprietà sono le seguenti per il componente ComboBox.
Le proprietà per DataGrid sono le seguenti.
I file di aiuto sono un ottimo posto per saperne di più su queste proprietà.
Per ulteriori informazioni sulle proprietà per le etichette, assicurati di controllare il suggerimento rapido sui componenti Button ed Label.
Per sapere come caricare il DataGrid da un file xml, consulta il mio tutorial su Datgrid con XML.
Grazie ancora a http://www.state-flags-usa.com per avermi permesso di usare le loro immagini della bandiera. E grazie a te per la lettura - cerca altre introduzioni di componenti!.