icona rss
  • Vai alla sezione Web & Graphic Design
  • Vai alla sezione Tutorial
  • Vai alla sezione Audio
  • Vai alla sezione Varie

ottobre 13, 2009 | 0 Commenti

Post Image

Comincio oggi a parlarvi delle basi di AS3 e come prima cosa vorrei farvi un’introduzione alla programmazione orientata agli oggetti.


CHE COSA E’ L’OOP?

Come scopo principale la OOP (programmazione orientata agli oggetti) vuole rappresentare il più possibile la realtà. Gli oggetti si traducono in classi e le caratteristiche di tali oggetti si traducono in variabili. Poi se un certo oggetto compie qualche operazione allora queste vengono chiamate metodi.

 

Ora non è detto che si debba organizzare il nostro lavoro in maniera tale che rispecchi la realtà. In Flash tante volte questo non è necessario. Il concetto importante ,e forse cardine della OOP, è l’Ereditarietà.

 

EREDITARIETA’

Cosa intendiamo con ereditarietà? Per spiegarlo partiamo da un esempio reale. Prendiamo ad esempio il caso dell’uomo. L’uomo fa parte di una classe denominata mammiferi. Diamo per buona la caratteristica comune che il mammifero è quell’animale che non fa le uova e che allatta la propria prole. Quindi per noi i mammiferi costituiscono una classe.

 

Ora noi possiamo affermare che l’uomo è una sottoclasse della classe mammiferi. In quanto tale ne eredita tutte le caratteristiche tra cui il sistema riproduttivo e l’allattamento dei piccoli. Diremo quindi che l’uomo è una sottoclasse dei mammiferi.

 

A sua volta potremmo fare una distinzione di classe all’interno della classe uomo. Possiamo distinguere l’insieme di tutti quegli uomini che fanno come lavoro il commercialista. Ecco che la classe commercialista eredita tutte le caratteristiche della classe uomo ed in più avrà una variabile chiamata “tipo di lavoro” con il valore di “commercialista”.

 

 

Nella programmazione orientata agli oggetti questo si traduce in un vantaggio incredibile: la riutilizzabilità del codice e cioè nella possibilità di poter utilizzare il codice scritto in precedenza. Ecco che nascono le API come Papervision3D che altro non sono che una serie di classi che noi possiamo riutillizzare a nostro piacimento.

 

COME SI FA AD USARE QUESTA EREDITARIETA’?

In actionscript 3 l’ereditarietà si traduce con la parola chiave “extends”. Quando scrivete la document class del vostro progetto in Flash avrete notato che è obbligatorio scrivere:

 

public class DocumentClass extends MovieClip {
 
}

 

Questo perchè la DocumentClass deve estendere per forza di cose MovieClip, che è la classe che definisce le caratteristiche di un oggetto di tipo MovieClip.

 

PERCHE’ PROPRIO LA CLASSE MOVIECLIP

La DocumentClass di un file Flash deve sempre estendere MovieClip. Questo perchè la classe MovieClip implementa (sinonimo di attua, realizza, mette in pratica) tutte le caratteristiche necessarie all’eleborazione sulla timeline di Flash, che principalmente non sono altro che la suddivisione in frame del tempo e tutte le operazioni che si possono fare con questi (come il famoso gotoAndPlay).

 

In verità la document class potrebbe estendere (e quindi ereditare) anche la classe Sprite però non voglio farvi confusione; prendete quindi per buono quello che ho scritto prima.

 

Ricapitolando abbiamo detto che AS3 è suddiviso in classi, che le classi figlie ereditano le caratteristiche delle classi madre, che per utilizzare questa caratteristica si usa la parola chiave “extends” e che la DocumentClass di un file Flash deve sempre estendere MovieClip.

 

Come potrete quindi immaginare le classi seguiranno una struttura gerarchica che è facilmente ricostruibile tramite un albero “genealogico”.

Ora, in AS3 ci sono un sacco di classi. Quello che noi vedremo sarà solo una minima parte e cioè il cuore di AS3: l’API di Display.

 

LA STRUTTURA DELL’API DI DISPLAY IN FLASH

Nella figura seguente (presa dal libro Essential Actionscript 3 di Colin Mook) potete notare come si suddividono le classi base:

Gerarchia Api di display in Actionscript 3

 

E’ importante avere ben in mente questa struttura perchè vi permetterà di gestire al meglio AS3.

 

Ma cosa è l’api di display? L’api di display altro non è che l’insieme di tutte le classi che ci servono per fare ciò che interessa maggiormente in flash e cioè visualizzare contenuto.

 

Come potete vedere la classe madre è la classe DisplayObject. Figlia di DisplayObject è InteractiveObject che a sua volta ha come figlia DisplayObjectContainer. Ognuna di queste classi ha le sue caratteristiche ben definite.

 

DisplayObject: definisce le caratteristiche di visualizzazione generali di un oggetto da visualizzare in Flash nonché da essa è possibile creare oggetti che possono essere introdotti nella display list. La display list altro non è che un elenco di tutti gli oggetti che verranno visualizzati.

Alcune proprietà importanti di questa classe sono le variabili alpha, x, y, z, height, width e visible. Tutte queste proprietà saranno ereditate dalle sottoclassi ed infatti le ritrovate anche in MovieClip e Sprite.

 

InteractiveObject: è la classe base di tutti gli oggetti di visualizzazione con i quali è possibile interagire da tastiera o da mouse.

 

DisplayObjectContainer: l’oggetto che eredita da questa classe ha la possibilità di gestire una propria display list. Questo significa che al suo interno è possibile inserire altri oggetti da visualizzare e che prenderanno come primo riferimento l’oggetto che li contiene.

Ecco che fanno la loro comparsa i metodi “addChild” e “removeChild”.

 

Vi consiglio di dare una sbirciatina alla documentazione di AS3 e magari dare un occhio a come sono strutturare le classi di cui abbiamo parlato. Partite dalla classe DisplayObject e cercate di ricostruire mentalmente la gerarchia come l’abbiamo vista qui sopra.

Nel prossimo articolo vedremo un esempio pratico di come viene implementata l’ereditarietà in maniera che vi sia più facile poi proseguire nelle spiegazioni.

 

Se avete qualche domanda sono a vostra disposizione.

 

Bene per oggi avrei finito. Ciaoooo!!

 

 

 

 

Ti è piaciuto? Condividi!

  • email
  • Facebook
  • LinkedIn
  • MySpace
  • RSS
  • Twitter
  • Technorati
  • Google Bookmarks
  • StumbleUpon
  • del.icio.us
  • Digg
  • FriendFeed

Articoli Correlati

Non ci sono articoli correlati.

Autore:

Roberto Cinetto

Roberto Cinetto - Web & Graphic Designer

Giovane designer di Padova Roberto è sempre stato appassionato del mondo informatico e come tale è sempre alla ricerca di nuove ispirazioni e di nuove tecnologie da esplorare. Da molti anni è anche chitarrista e amante della musica in generale. Il suo sogno è di riuscire un giorno a creare una agenzia multimediale competente in web, grafica/video e recording/mixing, naturalmente tramite la collaborazione con svariati professionisti.

Scrivi un commento

(obbligatorio)

(obbligatorio)