• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Effetto Time Machine con Actionscript

Ignazio96

Utente Guru
Autore del topic
User Legend
9 Marzo 2008
10.985
155
Miglior risposta
0
Per applicazioni 3D con poche funzionalità esistono dei motori, meno complessi e strutturati di PaverVision 3D 2.0 oppure Sandy3D engine, che sono più veloci in esecuzione come, per esempio, il pacchetto
Perfavore, Entra oppure Registrati per vedere i Link!
che permette di gestire degli oggetti su di una superficie multipiano sufficiente a realizzare l’effetto Time Machine di Leopard, il sistema operativo di Mac.
Questo effetto vede un treno di contenuti visuali, uno dietro l’altro, distribuiti in profondità, permettendoci di avvicinarci o allontanarci ad ogni singolo contenuto, portandolo in primo piano e riposizionando gli altri. È dunque un effetto utilizzabile per gallerie di immagini o video e, volendo, integrabile con un menu che punta direttamente ai vari contenuti.
Per la stesura di questo articolo useremo come ambiente di sviluppo,
Perfavore, Entra oppure Registrati per vedere i Link!
4.0.
Lo sviluppo

Per iniziare scarichiamo il pacchetto Novio Simple 3D dal
Perfavore, Entra oppure Registrati per vedere i Link!
e poi, premesso che l’esigenza è quella di creare una galleria dinamica che interfaccia un flusso dati
Perfavore, Entra oppure Registrati per vedere i Link!
, caricando immagini esterne, creiamo un ambiente di file system adeguato a questo scopo.

img_01_time_machine.jpg


Creiamo ora una cartella immagini che chiameremo img, nella quale inseriremo tutte le immagini vogliamo mostrare, e una cartella xml ,nella quale metteremo il file items.xml che formatteremo nel seguente modo:


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ogni nodo ITEM rappresenta un’immagine e riporta l’attributo url.
Ora che il file system è pronto, avviamo lo sviluppo in
Perfavore, Entra oppure Registrati per vedere i Link!
. Avviamo Flash Builder e creiamo un nuovo progetto Actionscript nominandolo TimeMachine e scegliamo dove salvarlo.
Figura 2 – Nuovo progetto in Flash Builder


img_02_time_machine.jpg



Dopo che Flash Builder avrà creato la struttura delle cartelle, copiamo il pacchetto Novio scaricato dentro la cartella src in modo da poterlo importare in seguito.
TimeMachine.as è la classe principale, che interfaccia l’SWF. Specifichiamo al suo interno i settaggi di pubblicazione dell’SWF come la dimensione, colore dello sfondo e frame rate subito sotto gli import:



Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Dentro un pacchetto app creiamo due classi che serviranno per il nostro applicativo: Gallery, che avrà funzione di manager degli oggetti sottoposti, e GalleryItem rappresentativa di questi ultimi.


img_03_time_machine.jpg



Inziamo dalla classe pricipale, TimeMachine.as, e carichiamo in cache l’XML che ci servirà da sorgente dati per i vari caricamenti di immagini esterne.
Sviluppiamo una funzione loadData che richiameremo direttamente nel costruttore TimeMachine e definiamo che, a caricamento avvenuto, debba essere creato e aggiunto alla DisplayList un oggetto di tipo Gallery.



Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Definiamo ora il comportamento di Gallery.as nella quale dovremo, analizzando l’XML caricato e proveniente da TimeMachine.as, istanziare gli oggetti GalleryItem.


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ora passiamo al comportamento di GalleryItem.as che dovrà caricare l'immagine esterna e esistere nella mia scena pseudo 3D. Per quest'ultimo motivo questa classe non estenderà semplicemente Sprite ma Figure, una classe del pacchetto Novio che è in pratica uno Sprite con l'attributo profondità.
public class GalleryItem extends Figure


inoltre definiamo il metodo di caricamento dell'immagine e la sua visualizzazione una volta caricata. Affidiamo sempre il serverPath ad una variabile statica che centralizziamo in una classe di servizio Globals.as per elasticità dell'applicativo.


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Con questo ultimo passaggio concludiamo la mostra Time Machine, invitandovi a visualizzare la
Perfavore, Entra oppure Registrati per vedere i Link!
.

Fonte: HTML.it