Visualizza i dati con gli aghi animati funky

La creazione di una visualizzazione accattivante dei dati è sempre stata una delle caratteristiche principali di Flash. Ti permette di ottenere risultati eye candy con dati dinamici reali; che si tratti di un preloader, di un gioco o di una presentazione in ufficio.

Questo semplice tutorial ti mostrerà come costruire un misuratore di ago. Imparerai come applicare un effetto di "lucentezza", comunicare con XML e applicare un motore di interpolazione alle rotazioni.




Passaggio 1: Impostazione cartella

Crea tre file: gauge.fla, gauge.xml e Main.as.

Passaggio 2: Struttura XML

Apri gauge.xml. Questo file conterrà i dati che popolano i contatori; modificali come preferisci in base alla seguente struttura:

    64 Maschio   26 Femmina  

Il valore è una percentuale e quindi dovrebbe essere compreso tra 0 e 100. La descrizione verrà visualizzata sul misuratore corrispondente.

Passaggio 3: Impostazioni dello stage

Aprire gauge.fla e modificare le impostazioni come mostrato di seguito.

Passaggio 4: creare il clip filmato

Crea un nuovo simbolo, chiamalo gauge_mc e impostare la classe su Valutare.

Passaggio 5: impostazioni di sfondo

Quindi, crea un cerchio come mostrato di seguito:

Ciò formerà le parti interne del calibro, quindi dai il nome a questo livello "sfondo".

Passaggio 6: aggiungere un tratto circostante

Aggiungi un tratto usando lo strumento Bottiglia d'inchiostro (scorciatoia: S) con le seguenti impostazioni:

(Fai clic sul cerchio dello sfondo per applicare il tratto.)

Passaggio 7: creare una cornice con effetti sfumati

Passare allo strumento Selezione, fare clic sul tratto per selezionarlo e premere Modifica> Forma> Converti linee in riempimenti. Ora copia il riempimento e incollalo in un nuovo livello, creato sopra il livello esistente, chiamato "frame". Aggiungi due nuovi tratti sfumati, ciascuno dei pixel spessi. Si va all'interno del telaio, l'altro va all'esterno.

Step 8: Disegna il Pin

Crea un nuovo livello, chiamalo "spillone" e al centro crea un piccolo cerchio grigio con uno spesso contorno nero:

Passaggio 9: Disegna l'ago

Crea un nuovo livello sotto il perno e chiamalo "ago". Disegna una linea, converti la linea in un riempimento e converti questo riempimento in un simbolo (chiamato needle_mc).

È necessario spostare sia il punto di registrazione che il punto di rotazione di questo nuovo simbolo al centro della parte inferiore della linea. Per spostare il punto di registrazione, fai doppio clic sull'ago da modificare, quindi trascina il riempimento finché il punto di registrazione non si trova nella posizione corretta. Per spostare il punto di rotazione, torna a modificare il simbolo gauge_mc, quindi usa lo strumento Trasformazione libera (scorciatoia: Q) per fare doppio clic sulla circonferenza. Questo lo farà scattare al punto di registrazione dell'ago.

Passaggio 10: Disegna l'anello del segnaposto

Crea un nuovo livello sotto i "marcatori" dell'ago. Disegna un cerchio, più piccolo della cornice, con un tratto nero spesso e senza riempimento.

Passaggio 11: crea una stella

Su un altro nuovo livello, seleziona lo strumento PolyStar e usalo per creare una stella a dieci lati, centrata sull'ago. Lo useremo per creare i piccoli indicatori intorno all'anello.

Passaggio 12: collega i punti della stella al centro

Sul livello dei marcatori, traccia delle linee sottili dall'ago a ogni punto della stella. In questo modo, sai che sono equidistanti.

Passaggio 13: crea un cerchio interno per il ritaglio

Crea un cerchio ancora più piccolo di quello dell'indicatore, quindi seleziona le linee all'interno di questo cerchio e premi cancella per cancellarle tutte.

Step 14: Ulteriori colture

Cancellare il cerchio interno, i marcatori esterni e la sezione inferiore dell'anello marcatore, come evidenziato di seguito:

Passaggio 15: etichetta i marcatori

Etichetta i marcatori: il primo come 0, quello centrale come 50 e l'ultimo come 100.

Step 16: Crea gli effetti Glassy e Glossy

Crea un nuovo livello in cima a tutti gli altri chiamati "vetro" e un altro sopra quello chiamato "gloss".

Nello strato di vetro, disegna un cerchio bianco delle dimensioni dello sfondo. Clic Finestra> Colore e dargli un riempimento gradiente radiale, in cui entrambi i colori sono bianchi, ma uno ha un alfa al 20% e l'altro ha un alfa al 5%.

Nel livello di lucentezza, crea due cerchi bianchi con alfa sfumati che vanno dal 70% al 30%. Usa lo strumento Selezione per comprimere le loro forme con quelle mostrate qui sotto:

Passaggio 17: aggiungere un'etichetta descrittiva

Crea un altro nuovo livello denominato "etichetta" e aggiungi un campo di testo con "label_txt" come nome dell'istanza. Non dimenticare di incorporare il carattere!

Passaggio 18: aggiungere un'etichetta del valore

Aggiungi un nuovo livello denominato "valore" e aggiungi un campo di testo con "value_txt" come nome dell'istanza. Ancora una volta, non dimenticare di incorporare i caratteri. Sto usando un font chiamato LCDDot, che puoi trovare nel file zip.

Passaggio 19: correzione del punto di rotazione dell'ago

In questo momento, l'ago punta al segno del 50%. Abbiamo bisogno che puntino allo 0% quando inizia, quindi fai doppio clic su "needle_mc", seleziona il riempimento e ruotalo a -143º. Questo ci darà l'offset di cui abbiamo bisogno.

Passaggio 20: impostare la classe del documento

Assicurarsi che non sia selezionato nulla, quindi nel pannello Proprietà, digitare Principale nella casella Class per impostare Main.as come classe del documento. Ora aprilo.

Passaggio 21: Importa classi

Useremo il tweening engine di GreenSock, TweenMax. Puoi scaricarlo qui: http://blog.greensock.com/tweenmax/

Importa le classi necessarie per Main.as:

 package import flash.display.MovieClip; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import com.greensock.TweenMax; import com.greensock.events.TweenEvent; 

Step 22: Scrivi il Main Constructor

Questo codice dovrebbe andare dopo "import com.greensock.events.TweenEvent;" ma prima dell'ultimo "". La funzione Main () sarà la prima funzione eseguita quando viene caricato il file SWF.

 public class Main estende MovieClip private var xmlLoader: URLLoader; // questo caricherà xml private var xml: XML; // questo conterrà i dati xml caricati dagli indicatori di var private xmlLoader: Array; // questo memorizzerà la funzione pubblica dei calibri creati Main () gauges = new Array (); // avvia l'array xmlLoader = new URLLoader (); // avvia il loader xmlLoader.addEventListener (Event.COMPLETE, updateGauges) // quando viene caricato XML, aggiorna gli indicatori xmlLoader.load (new URLRequest ("gauge.xml")); // avvia il caricamento del file XML

Passaggio 23: sposta il calibro

Metti questo codice prima degli ultimi due "" nel tuo file. Questa funzione verrà eseguita quando l'XML è stato caricato.

 funzione privata updateGauges (e: Event): void // popola l'xml con i dati ricevuti xml = new XML (e.target.data); // itera attraverso gli indicatori all'interno della struttura xml var ln: int = xml.gauge.length (); //numero di s all'interno del file XML var i: int = 0 while (i < ln)  gauges[i] = new Gauge(); //creates a new Gauge and puts it in the gauges[] array gauges[i].label_txt.text = xml.gauge[i].description[0].toUpperCase(); //adds the description to the label of the i-th gauge based on the XML's i-th  calibri [i] .value_txt.text = "0%" // avvia il valore del misuratore di livello // anima la rotazione del calibro (286 è la rotazione massima dell'ago che abbiamo costruito) var tm: TweenMax = new TweenMax (calibri [i] .needle_mc, 2, rotation: Math.round (xml.gauge [i] .value [0] * 286/100)); // questo evento viene attivato quando il valore dell'interpolazione cambia; facciamo questo per aggiornare il testo del valore in base alla posizione dell'ago tm.addEventListener (TweenEvent.UPDATE, onTween) // y indicatori di posizionamento [i] .y = 45 // x posizionamento (220 pixel di distanza tra loro e offset di 50 pixel dal margine sinistro calibri [i] .x = (i * 220) + 50 // aggiunge allo stage addChild (gauges [i]); // aumenta i per la successiva iterazione i ++

Passaggio 24: modifica i numeri

Ancora una volta, inserisci questo prima degli ultimi due "" nel tuo codice. Questa funzione viene eseguita ripetutamente mentre l'ago viene interpolato (ruotato).

 funzione privata onTween (e: Event): void / * questo impedirà un noto bug di rotazione all'interno del flash * dove, quando ruota, dopo aver raggiunto 180º inizia a contare da -180 * (cioè da 0 a 180, -180 a 0). Aggiungendo 360 all'equazione quando la rotazione è negativa * possiamo assicurarci che il valore sia corretto. * * / if (e.target.target.rotation < 0)  e.target.target.parent.value_txt.text = (Math.round( (360+e.target.target.rotation) * 100 / 286) + "%"); else e.target.target.parent.value_txt.text = (Math.round( e.target.target.rotation * 100 / 286) + "%");  

Passaggio 25: controlla il codice completo

Confuso su dove dovrebbe andare il codice? Controllalo qui.

Passaggio 26: Fine

Ora tutto ciò che serve è tornare a gauge.fla, e nel primo frame aggiungere uno sfondo e un titolo:

Conclusione

Come puoi vedere, è più facile di quanto sembri. Prenditi il ​​tuo tempo ed espandi il concetto: crea un preloader, un misuratore di larghezza di banda, qualunque cosa tu voglia. Spero vi sia piaciuto questo tutorial, grazie per la lettura!