Creare arte generativa con HYPE

Durante questo tutorial legheremo insieme matematica e design. Esploreremo la struttura di HYPE di Branden Hall e Joshua Davis e creeremo arte generativa dal codice.


Anteprima del risultato finale

Diamo un'occhiata al risultato finale su cui lavoreremo:


Passaggio 1: Struttura del progetto

Prima di immergerti a lungo nel codice, dedichiamoci un breve momento per familiarizzare con i file del progetto.

All'interno del file .zip di origine troverai una cartella per ogni passaggio significativo, in modo che tu possa vedere esattamente quali modifiche sono state apportate. Inoltre, troverai una cartella chiamata Base, crea una copia di questa cartella in quanto questa sarà la nostra base di partenza.

All'interno della cartella Base abbiamo a bidone cartella in cui verrà pubblicato il nostro SWF. UN src cartella che contiene i nostri ActionScript 3 e Flash Files e infine a lib cartella in cui verranno archiviati i file SWC del framework HYPE.


Passaggio 2: Ottenere HYPE

Quindi, dobbiamo prendere l'ultima versione del framework HYPE dalla sua sede su www.hypeframework.org.

Una volta completato il download, apri il file .zip. Troverai due file SWC chiamati campagna pubblicitaria-framework.swc e campagna pubblicitaria-extended.swc. Copia entrambi di questi nella tua cartella Base \ lib.

Questi file SWC sono essenzialmente una raccolta di file sorgente per il framework, tutti integrati in un unico file per facilità.


Passaggio 3: aggiunta di SWCS a Flash

Il passaggio finale necessario per far funzionare tutto è quello di dire a Flash di cercare i due nuovi file SWC quando compiliamo il film, altrimenti genererà un sacco di errori a modo nostro, non bello!

Apri il main.fla dentro il Base \ src cartella, quindi scegliere File, Pubblica impostazioni. Seleziona la scheda Flash come mostrato, nella nuova finestra che si apre seleziona la scheda Percorso libreria.

Premere il pulsante "Browse TO SWC" File e procedere per aggiungere entrambi i file SWC al file Flash. Una volta completato, è ora di iniziare ad aggiungere del codice!


Step 4: Init HYPE

Apri il file sorgente Main.as nell'editor scelto. Aggiungi le seguenti proprietà private e il initHype () metodo:

 public class Main estende MovieClip // proprietà private private var bitmapCanvas: BitmapCanvas; private var clipContainer: Sprite; private var objectPool: ObjectPool; / ** * constructor * / public function Main () // entra nel framework Hype initHype ();  / ** * avvio dei membri di Hype che useremo e configurazione precedente * all'esecuzione dell'animazione * / funzione privata initHype (): void // il clipContainer è usato come genitore per tutti i nostri oggetti clipContainer = new Sprite (); addChild (clipContainer); 

Nei prossimi passaggi vedremo ognuno di questi oggetti che abbiamo aggiunto come proprietà private, a partire da clipContainer Sprite.

Dato che il nostro progetto avrà più di un centinaio di oggetti che si muovono contemporaneamente sullo schermo, avremo bisogno di qualcosa per ospitarli tutti - basta aggiungerli al Palcoscenico diventerà problematico in futuro. La risposta è creare un normale AS3 folletto comportarsi da genitore.


Passaggio 5: BitmapCanvas

La prima vera parte di HYPE, il BitmapCanvas può essere pensato come a folletto o meglio ancora, a Bitmap / BitmapData a cui dipingeremo i nostri oggetti, ogni cornice, come una tela di pittori.

Lo creiamo appena sotto il codice clipContainer e lo definiamo con larghezza e altezza per abbinarlo Palcoscenico. Lo aggiungiamo al Palcoscenico ma anche dirlo a startCapture (clipContainer, true), questo semplicemente dice al BitmapCanvas per scattare un'istantanea del clipContainer ogni frame. Per ora però, continua con questo commento!

 / ** * avvio dei membri di Hype che useremo e configurazione precedente * all'esecuzione dell'animazione * / funzione privata initHype (): void // il clipContainer è usato come genitore per tutti i nostri oggetti clipContainer = new Sprite ( ); addChild (clipContainer); // pensa a BitmapCanvas come uno spazio vuoto "dipingeremo" // ogni fotogramma con nuovi dati immagine bitmapCanvas = new BitmapCanvas (stage.stageWidth, stage.stageHeight); //bitmapCanvas.startCapture(clipContainer, true); addChild (bitmapCanvas); 

Passaggio 6: ObjectPool

Se hai lavorato con i giochi probabilmente hai trovato il concetto di un ObjectPool. Poiché la creazione di nuovi oggetti è troppo importante per il processore, creiamo un pool di una quantità specificata di oggetti prima che il gioco o l'applicazione inizi. Quindi utilizzeremmo gli oggetti di questo pool e, una volta esauriti, li ricicleremmo e li riutilizzeremo di nuovo, evitando così la creazione di nuovi oggetti. Questo è comunemente usato per proiettili / laser nei giochi e la stessa logica è usata in HYPE.

Se dai un'occhiata alla libreria Main.fla in Flash vedrai che ho creato a Un filmato chiamato CircleShape e gli è stato dato il Linkage Identifier di CircleShape quindi possiamo creare più copie di questo oggetto con il codice; questo è ciò che è nostro ObjectPool ospiterà.

Aggiungi il ObjectPool sotto il codice BitmapCanvas, in questo modo:

 / ** * avvio dei membri di Hype che useremo e configurazione precedente * all'esecuzione dell'animazione * / funzione privata initHype (): void // il clipContainer è usato come genitore per tutti i nostri oggetti clipContainer = new Sprite ( ); addChild (clipContainer); // pensa a BitmapCanvas come uno spazio vuoto "dipingeremo" // ogni fotogramma con nuovi dati immagine bitmapCanvas = new BitmapCanvas (stage.stageWidth, stage.stageHeight); //bitmapCanvas.startCapture(clipContainer, true); addChild (bitmapCanvas); // crea una collezione di 10 oggetti e li memorizza in un ObjectPool // per l'utilizzo nell'oggetto di animazione ObjectPool = new ObjectPool (circleShape, 10); 

Passaggio 7: creazione di oggetti mediante ObjectPool.request ();

Ora abbiamo la configurazione dei nostri core player, il clipContainer, il BitmapCanvas e il ObjectPool con le sue 10 clip, è ora di iniziare a far muovere le cose.

Per ottenere un oggetto dal ObjectPool possiamo usare objectPool.request (); che ci darà un circleShape MovieClip dalla libreria Flash con cui lavorare.

Il ObjectPool ci dà anche il objectPool.onRequestObject () metodo che è un modo pratico per assegnare le proprietà di una clip ogni volta che ne richiediamo una. Aggiungi quanto segue di seguito dove hai istanziato il ObjectPool:

 // crea una collezione di 10 oggetti e li memorizza in un ObjectPool // per l'utilizzo nell'oggetto di animazione ObjectPool = new ObjectPool (circleShape, 10); // ogni volta che chiediamo una nuova forma dal pool // eseguirà il seguente objectPool.onRequestObject = function (clip: MovieClip): void clip.x = Math.random () * stage.stageWidth; clip.y = Math.random () * stage.stageHeight; clipContainer.addChild (clip); 

Passaggio 8: vedere il risultato

Con quel nuovo codice aggiunto, ogni volta che richiediamo un oggetto dal pool usando objectPool.request () creerà a CircleShape. Aggiungilo al clipContainer e posizionarlo casualmente sullo schermo. Puoi testare questo modificando il costruttore per assomigliare al seguente:

 / ** * constructor * / public function Main () // entra nel framework Hype initHype (); objectPool.request (); 

Se tutto è andato bene, dovresti avere un solo cerchio solitario sullo schermo.


Passaggio 9: Richiesta di tutti gli oggetti contemporaneamente

Ti ricordi che abbiamo impostato il ObjectPool taglia a 10? Bene, aumenteremo la posta e aumenteremo fino a 100 oggetti cambiando quanto segue:

 // crea una collezione di 10 oggetti e li memorizza in un ObjectPool // da utilizzare nell'oggetto di animazione ObjectPool = new ObjectPool (circleShape, 100);

Possiamo modificare la precedente dichiarazione della richiesta per leggere come Richiedi tutto() come questo:

 / ** * constructor * / public function Main () // entra nel framework Hype initHype (); objectPool.requestAll (); 

Ora dovremmo avere 100 cerchi sparsi sull'area dello schermo.


Passaggio 10: aggiunta di FixedVibrations

Ora abbiamo i nostri 100 circleShapes distribuito sullo schermo è ora di dare vita al nostro design aggiungendo movimento.

Iniziamo applicando a FixedVibration al alfa e scala proprietà di ogni clip. Possiamo usare il ObjectPools onRequestObject metodo per implementarlo come mostrato:

 // crea una collezione di 10 oggetti e li memorizza in un ObjectPool // da utilizzare nell'oggetto di animazione ObjectPool = new ObjectPool (circleShape, 100); // ogni volta che chiediamo una nuova forma dal pool // eseguirà il seguente objectPool.onRequestObject = function (clip: MovieClip): void clip.x = Math.random () * stage.stageWidth; clip.y = Math.random () * stage.stageHeight; // aggiungi una FixedVibration alle proprietà alpha e scale di ogni circleShape quando richiesto var alphaVib: FixedVibration = new FixedVibration (clip, "alpha", 0.9, 0.05, 0.5, 1.5, false); var scaleVib: FixedVibration = new FixedVibration (clip, "scale", 0,9, 0,05, 0,05, 0,8, falso); alphaVib.start (); scaleVib.start (); clipContainer.addChild (clip); 

Diamo uno sguardo più da vicino al FixedVibration oggetti che abbiamo creato. Ogni FixedVibration l'oggetto che creiamo prende 7 parametri, rispettivamente sono i seguenti:

  • L'oggetto per applicare il FixedVibration a, nel nostro caso il nostro CircleShape chiamato "clip".
  • La proprietà per applicare il FixedVibration a, questa volta stiamo lavorando con il alfa e scala proprietà.
  • Il terzo parametro è il Primavera del FixedVibration, più alto è il numero più 'elastico' il movimento. Un valore compreso tra 0 e 1 funzionerà meglio.
  • Il prossimo è il alleviare della vibrazione, più basso è il valore più veloce scivolerà tra i seguenti due valori. Un valore compreso tra 0 e 1 funzionerà meglio.
  • Il valore minimo è il prossimo, questo sarà il più basso a cui la vibrazione colpirà.
  • Allo stesso modo, il valore massimo sarà il valore massimo che la vibrazione colpirà.
  • Infine, l'ultimo parametro è relativo, predefinito a falso.

Quindi, come si integrano tutti questi elementi? Diamo un'occhiata a come scala la proprietà è influenzata dal FixedVibration. È dato min e Max valori di 0,05 e 0,8, il Primavera il valore è piuttosto alto a 0.9 e il alleviare è piuttosto basso a 0.05, rendendolo scalabile in modo irregolare e veloce.

Gioca con questi valori per capire come influenzano il movimento.

Quando testiamo il nostro file Flash dovremmo ottenere qualcosa del genere:


Passaggio 11: aggiunta di una VariableVibration

Molto simile al FixedVibration, il VariableVibration regolerà una proprietà di un oggetto con un valore che fluttua. La differenza è che il VariableVibration non è lineare come suggerisce il nome.

Modificare il codice come segue per posizionare le clip al centro del Palcoscenico, solo questa volta applicheremo a VariableVibration al X e y valori per iniziare a vedere qualche movimento!

 // ogni volta che chiediamo una nuova forma dal pool // eseguirà il seguente objectPool.onRequestObject = function (clip: MovieClip): void clip.x = stage.stageWidth / 2; clip.y = stage.stageHeight / 2; // aggiungi una VariableVibration per il movimento x / y di ogni circleShape var xVib: VariableVibration = new VariableVibration (clip, "x", 0.97, 0.03, 40); var yVib: VariableVibration = new VariableVibration (clip, "y", 0.97, 0.03, 40); xVib.start (); yVib.start (); // aggiungi una FixedVibration alle proprietà alpha e scale di ogni circleShape quando richiesto var alphaVib: FixedVibration = new FixedVibration (clip, "alpha", 0.9, 0.05, 0.5, 1.5, false); var scaleVib: FixedVibration = new FixedVibration (clip, "scale", 0,9, 0,05, 0,05, 0,8, falso); alphaVib.start (); scaleVib.start (); clipContainer.addChild (clip); 

Diamo uno sguardo più da vicino al VariableVibration oggetti che abbiamo creato. Ogni VariableVibration l'oggetto che creiamo prende solo 5 parametri, rispettivamente sono i seguenti:

  • L'oggetto per applicare il VariableVibration a, nel nostro caso il nostro CircleShape chiamato "clip".
  • La proprietà per applicare il VariableVibration a, questa volta stiamo lavorando con le proprietà x e y.
  • Il terzo parametro è il Primavera della vibrazione.
  • Il prossimo è il alleviare della vibrazione.
  • Il parametro finale è il Gamma dei valori che viene prodotto. Più alto è il numero, più irregolare è l'effetto.

Il nostro file Flash dovrebbe apparire in questo modo una volta pubblicato:


Passaggio 12: aggiunta di alcuni Wow

Sta iniziando a sembrare bello, ma possiamo fare molto meglio! Ricordatelo bitmapCanvas.startCapture () linea ti ho chiesto di rimanere senza commenti nel passaggio 6? Vai avanti e decommentalo, quindi prova di nuovo il tuo film.

Questo è più simile!


Step 13: Un trucco rapido per la rotazione

Un trucco molto semplice per aggiungere un movimento a spirale è aggiungere un'altra vibrazione alla proprietà di rotazione della clip in questo modo:

 // ogni volta che chiediamo una nuova forma dal pool // eseguirà il seguente objectPool.onRequestObject = function (clip: MovieClip): void clip.x = stage.stageWidth / 2; clip.y = stage.stageHeight / 2; // aggiungi una VariableVibration per il movimento x / y di ogni circleShape var xVib: VariableVibration = new VariableVibration (clip, "x", 0.97, 0.03, 40); var yVib: VariableVibration = new VariableVibration (clip, "y", 0.97, 0.03, 40); xVib.start (); yVib.start (); // aggiungi una FixedVibration alle proprietà alpha e scale di ogni circleShape quando richiesto var alphaVib: FixedVibration = new FixedVibration (clip, "alpha", 0.9, 0.05, 0.5, 1.5, false); var scaleVib: FixedVibration = new FixedVibration (clip, "scale", 0,9, 0,05, 0,05, 0,8, falso); alphaVib.start (); scaleVib.start (); // aggiungi una FixedVibration alla rotazione del circleShape var rotationVib: FixedVibration = new FixedVibration (clip, "rotation", 0.9, 0.05, 0, 360, false); rotationVib.start (); clipContainer.addChild (clip); 

Step 14: Un trucco rapido per la rotazione

Prima di testare questo salto su Flash e aprire il circleShape MovieClip nella biblioteca.

Come mostrato, trascina il cerchio appena fuori dal centro in qualsiasi direzione. Più lo sposti dal centro, più spirali appariranno nel tuo design quando pubblichi:


Passaggio 15: ExitShapes

Un problema con la nostra animazione attuale è che, una volta che i clip si spostano dallo schermo, molto raramente tornano indietro. Possiamo risolvere questo piccolo problema creando un ExitShapeTrigger.

Un ExitShapeTrigger è un'area considerata sicura per la clip. Quando la clip lascia questa area, abbiamo bisogno di eseguire qualche tipo di funzione, come la richiesta di una nuova clip dal ObjectPool.

Definiamo un ExitShapeTrigger come sotto:

 // ogni volta che chiediamo una nuova forma dal pool // eseguirà il seguente objectPool.onRequestObject = function (clip: MovieClip): void clip.x = stage.stageWidth / 2; clip.y = stage.stageHeight / 2; // aggiungi una VariableVibration per il movimento x / y di ogni circleShape var xVib: VariableVibration = new VariableVibration (clip, "x", 0.97, 0.03, 40); var yVib: VariableVibration = new VariableVibration (clip, "y", 0.97, 0.03, 40); xVib.start (); yVib.start (); // aggiungi una FixedVibration alle proprietà alpha e scale di ogni circleShape quando richiesto var alphaVib: FixedVibration = new FixedVibration (clip, "alpha", 0.9, 0.05, 0.5, 1.5, false); var scaleVib: FixedVibration = new FixedVibration (clip, "scale", 0,9, 0,05, 0,05, 0,8, falso); alphaVib.start (); scaleVib.start (); // aggiungi una FixedVibration alla rotazione del circleShape var rotationVib: FixedVibration = new FixedVibration (clip, "rotation", 0.9, 0.05, 0, 360, false); rotationVib.start (); // define exitShape var exit: ExitShapeTrigger = new ExitShapeTrigger (onExitShape, clip, exitShape, true); exit.start (); clipContainer.addChild (clip);  // recycle objects private function suExitShape (clip: MovieClip): void trace ("circleShape ha lasciato lo schermo!"); 

Questo creerà un ExitShapeTrigger con i seguenti parametri:

  • Il metodo da attivare quando si è verificato l'evento.
  • Il Un filmato per verificare se è fuori dalla zona data.
  • Il Un filmato usato per definire l'area sicura, potresti aver già notato che l'abbiamo già creato, chiamato exitShape e lo mise sul Palcoscenico in Flash.
  • L'ultimo parametro è il Inserisci una volta flag, basta impostarlo su vero per adesso.

Passaggio 16: rilascio ObjectPool

Seguendo dal ExitShape abbiamo introdotto nell'ultimo passaggio, modificheremo semplicemente il onExitShape metodo in modo che ogni volta che una clip si allontana dallo schermo, la elimineremo e ne richiederà una nuova da ObjectPool.

Fino ad ora abbiamo lavorato con il richiesta() e Richiedi tutto() metodi del ObjectPool, quando vogliamo eliminare quello vecchio, usiamo il rilascio (clip) metodo:

 // recycle objects private function suExitShape (clip: MovieClip): void // remove from ObjectPool e clipContainer objectPool.release (clip); clipContainer.removeChild (clip); // ottiene una nuova clip dall'oggetto ObjectPool.Pool.request (); 

Passaggio 17: aggiunta di una sfocatura

HYPE offre la possibilità di aggiungere facilmente filtri come sfocatura e bagliore agli oggetti. Per aggiungere un pizzico di tocco in più al design, aggiungeremo a BlurFilter al progetto usando il FilterCanvasRhythm:

 // pensa a BitmapCanvas come uno spazio vuoto "dipingeremo" // ogni fotogramma con nuovi dati immagine bitmapCanvas = new BitmapCanvas (stage.stageWidth, stage.stageHeight); bitmapCanvas.startCapture (clipContainer, true); addChild (bitmapCanvas); // aggiungendo una sfocatura var blur: FilterCanvasRhythm = new FilterCanvasRhythm ([new BlurFilter (1.1, 1.1, 1)], bitmapCanvas); blur.start (TimeType.TIME, 100); // crea una collezione di oggetti e li memorizza in un ObjectPool // da utilizzare nell'oggetto di animazione oggettoPool = new ObjectPool (circleShape, 100);

Il codice precedente crea a FilterCanvasRhythm che prende un filtro come parametro e lo applica al bitmapCanvas abbiamo dichiarato prima.

Prova il progetto, inizia davvero a venire insieme ora!


Passaggio 18: aggiunta di una certa diversità

Possiamo facilmente aggiungere un po 'di profondità alla composizione aggiungendo più forme al mix. Piuttosto che dover creare e gestire diversi ObjectPools, possiamo aggiungere cornici all'originale circleShape che abbiamo usato e selezionare a caso quale frame riprodurre.

Prova questo ora, modifica il CircleShape oggetto nella libreria Flash. Crea un nuovo Keyframe, seleziona un nuovo colore e disegna una nuova forma. Vai avanti e crea alcuni Keyframes personalizzati, nel prossimo passo vedremo come implementarli con il codice. Questa è la nostra nuova forma:

? rispetto alla nostra vecchia forma:


Passaggio 19: scelta di fotogrammi casuali per circleShape

Con la nostra circleShape che ora presenta alcuni nuovi Keyframes, possiamo semplicemente inserire questa singola riga di codice per scegliere una cornice da utilizzare ogni volta che chiamiamo objectPool.request ():

 // ogni volta che chiediamo una nuova forma dal pool // eseguirà il seguente objectPool.onRequestObject = function (clip: MovieClip): void clip.x = stage.stageWidth / 2; clip.y = stage.stageHeight / 2; // scegli una cornice casuale clip.gotoAndStop (Math.ceil (Math.random () * 3)); // aggiungi una VariableVibration per il movimento x / y di ogni circleShape var xVib: VariableVibration = new VariableVibration (clip, "x", 0.97, 0.03, 40); var yVib: VariableVibration = new VariableVibration (clip, "y", 0.97, 0.03, 40); xVib.start (); yVib.start (); // aggiungi una FixedVibration alle proprietà alpha e scale di ogni circleShape quando richiesto var alphaVib: FixedVibration = new FixedVibration (clip, "alpha", 0.9, 0.05, 0.5, 1.5, false); var scaleVib: FixedVibration = new FixedVibration (clip, "scale", 0,9, 0,05, 0,05, 0,8, falso); alphaVib.start (); scaleVib.start (); // aggiungi una FixedVibration alla rotazione del circleShape var rotationVib: FixedVibration = new FixedVibration (clip, "rotation", 0.9, 0.05, 0, 360, false); rotationVib.start (); // define exitShape var exit: ExitShapeTrigger = new ExitShapeTrigger (onExitShape, clip, exitShape, true); exit.start (); clipContainer.addChild (clip); 

Come nota rapida, il codice casuale del fotogramma sopra cambierà tra i fotogrammi 1, 2 e 3. Potrebbe essere necessario regolarlo in base alla quantità di fotogrammi nel CircleShape.


Passaggio 20: Fine

È il momento di mettere alla prova il tuo film e crogiolarsi nella combinazione di modelli e colori funky mentre il framework HYPE prende il tuo codice e lo mescola in un pezzo di arte generativa.

Ecco il codice finale per riferimento:

 package import hype.extended.behavior.FixedVibration; import flash.display.Sprite; import flash.display.MovieClip; import flash.filters.BlurFilter; import hype.extended.behavior.VariableVibration; import hype.extended.rhythm.FilterCanvasRhythm; import hype.extended.trigger.ExitShapeTrigger; import hype.framework.core.ObjectPool; import hype.framework.core.TimeType; import hype.framework.display.BitmapCanvas; / ** * Un tutorial per presentare HYPE. Un quadro visivo * di Branden Hall e Joshua David per la creazione di un design generativo / iterativo con codice. * * @author Anton Mills * @version 06/02/2011 * / public class Main estende MovieClip // proprietà private private var bitmapCanvas: BitmapCanvas; private var clipContainer: Sprite; private var objectPool: ObjectPool; / ** * constructor * / public function Main () // entra nel framework Hype initHype (); // inizia la sequenza objectPool.requestAll ();  / ** * avvio dei membri di Hype che useremo e configurazione precedente * all'esecuzione dell'animazione * / funzione privata initHype (): void // il clipContainer è usato come genitore per tutti i nostri sprite clipContainer = new Sprite (); addChild (clipContainer); // pensa a BitmapCanvas come uno spazio vuoto "dipingeremo" // ogni fotogramma con nuovi dati immagine bitmapCanvas = new BitmapCanvas (stage.stageWidth, stage.stageHeight); bitmapCanvas.startCapture (clipContainer, true); addChild (bitmapCanvas); // aggiungendo una sfocatura var blur: FilterCanvasRhythm = new FilterCanvasRhythm ([new BlurFilter (1.1, 1.1, 1)], bitmapCanvas); blur.start (TimeType.TIME, 100); // crea una collezione di oggetti e li memorizza in un ObjectPool // da utilizzare nell'oggetto di animazione oggettoPool = new ObjectPool (circleShape, 100); // ogni volta che chiediamo una nuova forma dal pool // eseguirà il seguente objectPool.onRequestObject = function (clip: MovieClip): void clip.x = stage.stageWidth / 2; clip.y = stage.stageHeight / 2; // scegli una cornice casuale clip.gotoAndStop (Math.ceil (Math.random () * 3)); // aggiungi una VariableVibration per il movimento x / y di ogni circleShape var xVib: VariableVibration = new VariableVibration (clip, "x", 0.97, 0.03, 40); var yVib: VariableVibration = new VariableVibration (clip, "y", 0.97, 0.03, 40); xVib.start (); yVib.start (); // aggiungi una FixedVibration alle proprietà alpha e scale di ogni circleShape quando richiesto var alphaVib: FixedVibration = new FixedVibration (clip, "alpha", 0.9, 0.05, 0.5, 1.5, false); var scaleVib: FixedVibration = new FixedVibration (clip, "scale", 0,9, 0,05, 0,05, 0,8, falso); alphaVib.start (); scaleVib.start (); // aggiungi una FixedVibration alla rotazione del circleShape var rotationVib: FixedVibration = new FixedVibration (clip, "rotation", 0.9, 0.05, 0, 360, false); rotationVib.start (); // define exitShape var exit: ExitShapeTrigger = new ExitShapeTrigger (onExitShape, clip, exitShape, true); exit.start (); clipContainer.addChild (clip); ;  // recycle objects private function suExitShape (clip: MovieClip): void objectPool.release (clip); clipContainer.removeChild (clip); objectPool.request (); 

Conclusione

Questo riguarda solo l'introduzione del framework HYPE, grazie mille per il tuo tempo. Spero che vi sia piaciuto e ricordate che abbiamo solo graffiato la superficie di alcuni degli effetti fantastici che possono essere realizzati con il framework. Si prega di controllare il sito web di HYPE all'indirizzo www.hypeframework.org per alcuni fantastici esempi del framework e di come altri lo hanno portato al livello successivo con l'integrazione di Away3D / Papervision!


Altre risorse HYPE su Activetuts+

  • Code a Chaotic Composition Ispirato da Joshua Davis di Bruno Crociquia
  • Introduzione al framework HYPE ActionScript 3.0 di Tom Green
  • Suggerimento rapido: come esportare Flash in PNG con HYPE di Daniel Apt
  • Crea un visualizzatore musicale ipnotico con HYPE di Franci Zidar