Quando lavori con Flash e Actionscript 3.0 potresti spesso ritrovarti a ripetere il codice da un progetto all'altro. Creare la tua libreria di frammenti di codice riutilizzabili (su snipplr.com per esempio) è un ottimo modo per accelerare lo sviluppo. Dai uno sguardo a questi 15 snippet che potresti trovare utili per l'integrazione nella tua libreria di codici.
Alcuni dei seguenti frammenti sono presentati qui come funzioni che possono essere semplicemente utilizzate così com'è. Mentre dovresti essere in grado di inserirli nel tuo codice, se necessario, ti consiglio vivamente di dedicare del tempo a guardare veramente il codice per ottenere una comprensione più profonda di ciò che sta accadendo. Guardare i frammenti di codice è un ottimo modo per imparare nuove tecniche e migliorare le tue capacità di programmazione in generale.
Snipplr è una delle più recenti acquisizioni di Envato. Un repository di frammenti di codice, un hub sociale e un'aggiunta utile per la cintura di strumenti Envato! Con Snipplr puoi conservare tutti i frammenti di codice utilizzati di frequente in un unico posto, accessibile da qualsiasi computer. Puoi condividere il tuo codice con altri visitatori e fare uso di ciò che pubblicano.
Puoi seguire @snipplr su Twitter e tenerti aggiornato sulla nuova pagina Facebook di Snipplr. Se hai dei frammenti di codice AS3 che desideri condividere, aggiungili a Snipplr e lascia l'url nei commenti!
Utente del mercato? Perché non collegare al tuo account Snipplr dal tuo profilo social di Marketplace?Per randomizzare un array, eseguiamo il looping sulla lunghezza dell'array, rimuovendo un oggetto scelto a caso e quindi aggiungendolo nuovamente alla posizione finale dell'Array. Pensa a questo come avere un mazzo di carte in cui scegli una carta a caso dal mazzo e spostala in cima allo stack ripetuta per il numero totale di carte nel mazzo.
È importante notare che il metodo splice restituisce una matrice contenente l'oggetto rimosso e non l'oggetto stesso, quindi aggiungendo il [0]
dopo la chiamata di splicing per fare riferimento all'oggetto contenuto.
Questo è un modo breve per posizionare gli oggetti di visualizzazione in una griglia. Si avvale dell'operatore modulo (%
) per posizionare ciascun oggetto di visualizzazione lungo l'asse x e il pavimento
metodo della classe Math per la posizione y.
Questo esempio crea 20 istanze di un oggetto di visualizzazione personalizzato chiamato myDisplayObject
posizionare ogni istanza in una griglia di 5 colonne di larghezza. Come avrai intuito, i due 5 nello snippet rappresentano il numero di colonne nella griglia.
DisplayObjectContainer
, una classe genitore delle classi contenitore più comuni come MovieClip e Sprite, non ha un metodo integrato per rimuovere immediatamente tutti i bambini. Per rimuovere tutti i bambini, utilizziamo semplicemente un ciclo while per rimuovere il child che occupa l'indice 0 nello stack fino a quando non rimangono bambini.
Per ottenere l'URL completo così come appare nella barra degli indirizzi del browser Web utilizziamo gli AS3 ExternalInterface
classe. Senza entrare troppo nel dettaglio, sappi che in questo esempio usiamo ExternalInterface per accedere al DOM (Document Object Model) della pagina HTML che contiene il nostro Flash.
Uno svantaggio di ExternalInterface è che il file SWF deve essere incorporato nella pagina HTML con il parametro "allowcriptaccess" impostato su "sameDomain" o "always". Questo è OK quando si controlla l'incorporamento di un SWF, ma sfortunatamente non si può fare affidamento se il SWF può essere eseguito su siti Web di terzi. Non dimenticare di aggiungere import flash.external.ExternalInterface
nella parte superiore del documento.
In alternativa, per accedere all'URL in cui risiede il file SWF, possiamo accedere alla proprietà url del file LoaderInfo
oggetto appartenente alla radice del nostro SWF. Nota: questa è la posizione del file SWF e NON della pagina HTML in cui è incorporato. È importante fare questa distinzione poiché sia SWF che HTML potrebbero risiedere su domini diversi.
Sapere dove è in esecuzione un file SWF è utile per mostrare contenuti specifici del dominio. Nel contesto di un gioco Flash, questo potrebbe avere livelli di "bonus" disponibili solo quando il SWF è in esecuzione sul sito dello sviluppatore o se gli annunci vengono visualizzati o meno.
Questa è una funzione ricorsiva che prende a DisplayObjectContainer
(come Sprite o MovieClip) e arrotonda i valori xey di esso e dei suoi figli. È ricorsivo in quanto la funzione si chiama quando incontra un bambino che è anche un DisplayObjectContainer
così anche i suoi figli si arrotondano. Questo ricorre l'intera lista di visualizzazione sotto il passato DisplayObjectContainer
, i suoi figli, i figli dei suoi figli ecc.
Il punto di questa funzione è assicurarsi che sia passato DisplayObjectContainer
e tutti i suoi bambini siedono su interi pixel. Questo può essere importante quando si ha a che fare con elementi grafici che non si trovano su pixel interi, in quanto li faranno apparire sfocati. Questo è probabilmente più evidente quando si ha a che fare con i font pixel.
Noterai la prima se l'istruzione controlla se è passata DisplayObjectContainer
NON è il palcoscenico. Questo è necessario man mano che Stage eredita DisplayObjectContainer
ma non implementa le proprietà x e y (insieme a molte altre proprietà). Ciò consente di passare in sicurezza il palco come parametro di questa funzione che invertirà la posizione di tutti gli oggetti nell'elenco di visualizzazione.
Generare un numero casuale è spesso utile quando si sviluppano applicazioni in AS3 (soprattutto quando si sviluppano giochi). AS3 ha un metodo di numero casuale incorporato come parte della sua classe Math che genera un numero inferiore a 1 e maggiore o uguale a 0. Possiamo usarlo per creare una funzione utile per generare un numero casuale tra altri due numeri.
Snippet di codice: numero casuale tra due valori in SnipplrAnalogamente a richiedere un numero casuale, potresti anche richiedere un valore booleano casuale da utilizzare in un'espressione. Di nuovo usiamo il casuale
metodo della classe Math per restituire semplicemente true se casuale()
genera un numero maggiore o uguale a 0.5 o falso se inferiore.
Questo è un altro frammento comune utilizzato dagli sviluppatori di giochi per trovare l'angolo tra due punti su un piano. Questa funzione ha quattro parametri; la prima coppia è i valori xey del tuo primo punto e la seconda coppia i valori xey del tuo secondo punto.
È importante notare che questa funzione restituisce l'angolo in radianti NOT gradi.
Snippet di codice: trova l'angolo tra due punti su SnipplrQuando si tratta di equazioni che coinvolgono gli angoli, si tratterà spesso di radianti e non di gradi. Gli oggetti di visualizzazione in Flash utilizzano gradi quando si tratta della loro proprietà di rotazione, quindi abbiamo bisogno di un modo per convertire tra i due. Queste funzioni di aiuto sono utili per realizzare proprio questo; uno per convertire i radianti in gradi e gli altri gradi in radianti.
Snippet di codice: conversione tra radianti e gradi su SnipplrQuando si accetta l'input da un utente attraverso un modulo, è spesso necessario convalidare i dati prima di consentirne l'invio a uno script back-end. Questo è più vero per gli indirizzi e-mail in quanto sono spesso l'unico punto di contatto tra te e l'utente e sono importanti per avere ragione. La funzione seguente utilizza un'espressione regolare per confermare che l'e-mail sia di un formato valido.
Snippet di codice - Convalida e-mail su SnipplrSe non sei sicuro di cosa sia un'espressione regolare, assicurati di leggere questo articolo su wikipedia e la documentazione AS3 per il tipo RegExp. Assicurati di controllare anche Convalida di vari dati di input in Flash.
Analogamente, spesso è necessario formattare i dati inviati da Flash, a volte è necessario formattare i dati ricevuti. Questa funzione prende una stringa e rimuove tutti gli spazi da essa. Qui usiamo il metodo split della classe String per dividere la stringa in una matrice e quindi chiamare il metodo join della classe Array per riconvertirla in una stringa. Questo è utile quando si ha a che fare con una stringa che si sa non può contenere spazi come indirizzo email, URL o numero di telefono. Questo restituisce una nuova stringa, lasciando invariata la stringa di input.
Snippet di codice: rimozione spazio su SnipplrSe ti stai chiedendo perché non usiamo un'espressione regolare qui, è semplicemente perché questo metodo viene eseguito più velocemente.
Wikipedia descrive una lumaca come
parte di un URL che identifica una pagina utilizzando parole chiave leggibili dall'uomo
Una lumaca è di solito un paio di parole con ogni parola separata da un carattere delimitante, di solito un trattino basso o trattino. Una versione slugified della stringa "10 punte per una vita migliore!" sarebbe "10 punte per una vita migliore".
Questa funzione prende una stringa arbitraria e la converte per l'uso come una lumaca. Usiamo due espressioni regolari per realizzare questo, il primo è usato per rimuovere qualsiasi carattere che non sia un carattere di parola, spazio o trattino, il secondo sostituisce qualsiasi spazio con un trattino singolo. Alla fine convertiamo la stringa in minuscolo. Questo restituisce una nuova stringa, lasciando invariata la stringa di input.
Snippet di codice: Slugify su SnipplrSe ti stai chiedendo dove questo possa essere usato nel contesto di Flash, è particolarmente utile con SWFAddress per creare URL amichevoli SEO per le sezioni discrete della tua app.
http: //
o https: //
Da una stringa, rimuovendo facoltativamente www.
Questa funzione accetta una stringa e restituisce una copia con tutte le occorrenze di http: //
e https: //
rimosso. La stringa "Per favore visita http://example.com per saperne di più" verrebbe convertita in "Visita example.com per saperne di più". Generalmente questo è più compatto in quanto http: // è ridondante quando ci si riferisce ovviamente a un URL.
Facoltativamente, questa funzione può anche rimuovere il www
sottodominio passando true come secondo parametro. È impostato su false per impostazione predefinita come example.com e www.example.com potrebbero teoricamente contenere diversi siti Web.
Se c'è sempre un momento in cui si carica il testo da un'origine esterna contenente markup HTML indesiderato, utilizzare la seguente funzione. Questo usa un'espressione regolare per rimuovere tutti i tag HTML dalla stringa di input. La stringa "Clicca qui per saperne di più"sarebbe semplicemente convertito in" Clicca qui per saperne di più. "Questo restituisce una nuova stringa, lasciando invariata la stringa di input.
Snippet di codice: contrassegna HTML Markup su SnipplrCaricamento XML, in particolare da fonti di terze parti a volte può rivelarsi problematico quando l'XML utilizza spazi dei nomi. Questo snippet prenderà un oggetto XML e rimuoverà tutte le dichiarazioni e i prefissi dello spazio dei nomi. Questo snippet lascia invariato l'XML di input e restituisce un nuovo oggetto XML.
Snippet di codice: strip XML Namespaces su SnipplrVale la pena ricordare che gli spazi dei nomi esistono per un motivo e rimuoverli potrebbe causare problemi. Solitamente questo è solo un problema quando si combinano più file XML insieme da fonti diverse. Personalmente non l'ho mai sperimentato, ma vale comunque la pena di diffidare.
Spero che tu abbia trovato utili questi 15 frammenti. Scrivere codice funzionale e riutilizzabile può essere una grande abitudine. Personalmente credo che guardare i frammenti di codice di altre persone sia un ottimo modo per imparare suggerimenti e trucchi a cui non potresti mai pensare prima.
Per vedere alcuni altri frammenti vai alla sezione Actionscript di Snipplr e se hai alcuni frammenti di codice AS3 che desideri condividere, aggiungili a Snipplr e lascia l'url nei commenti!
Se ti è piaciuto questo post, controlla il mio sito su ahrooga.com per altri articoli relativi a Flash.