Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Nasce la sezione Object Oriented programming con Flash CS3 ed Actionscript 3.0

This is a discussion on Nasce la sezione Object Oriented programming con Flash CS3 ed Actionscript 3.0 within the Programmazione Orientata agli Oggetti - tutorials forums, part of the Articoli e tutorials category; Ciao a tutti ! Spero che l' annuncio di questa sezione renda felici molti di voi. FlepStudio ha solo 4 mesi ...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials > Programmazione Orientata agli Oggetti - tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 21-09-07, 14:06
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Nasce la sezione Object Oriented programming con Flash CS3 ed Actionscript 3.0

Ciao a tutti !
Spero che l' annuncio di questa sezione renda felici molti di voi.
FlepStudio ha solo 4 mesi di vita e durante questo periodo ha notato una forte partecipazione da parte di tantissimi utenti italiani che, volendo migrare da Flash 8 a Flash CS3 e da Actionscript 2.0 a Actionscript 3.0 hanno preso come punto di riferimento questo sito.
Questa volta la migrazione può sembrare molto più difficile che in passato ( come ad esempio da Flash MX 2004 a Flash 8 ) in quanto Flash CS3, per svariate ragioni tra cui l' aggiunta di questa ormai famosa Document Class, richiede almeno un conoscenza minima e basilare della Programmazione Orientata agli Oggetti ( definita in inglese come OOP, Object Oriented Pogramming ).
Inoltre, FlepStudio ha notato 2 categorie di utenti che spiccano con percentuale maggiore su tutte:

Chi non ha mai scritto una riga di codice ( a parte comandi del tipo gotoAndPlay, onRelease, ec ecc ) e quindi con l' avvento di Flash CS3 si trova spaesato se non addirittura impaurito di non riuscire a compiere la migrazione

Chi conosce discretamente Actionscript 2.0 ma ha difficoltà nel migrare le proprie logiche dalla timeline alle classi ( files .as ), categoria definita come ' timeline writers ' .

Questa nuova sezione:

sarà totalmente dedicata allo sviluppo sulle Classi ( fiels .as )

partirà dalle primissime basi della OOP fino ad arivare a toccare temi come metodi e proprietà statici, l' Ereditarietà e metodi/proprietà sovrascritti, getters & setters, Polimorfismo e Interfaces

porterà ' a braccetto ' chiunque voglia intraprendere questo cammino, con esempi concreti e pochi blah blah ...

vuole essere un punto di riferimento per tutti gli amanti di Flash che vogliono affinare le proprie tecniche

comprenderà articoli/lezioni teoriche e pratiche

il fine è puramente didattico ed il tema ' io so più di te ' in FlepStudio è decisamente inapropriato, per cui invito chiunque a fare commenti positivi o negativi ma sempre mantenendo viva la concezione di didattica a fini di apprendimento.

sarà completamente GRATUITA, verrà richiesta una evetuale registrazione per chi volesse partecipare al forum che sarà la sede in cui verranno scritti commenti, richieste di aiuto, condivisione di idee, critiche, consigli e tanto altro...

A chi è rivolto il corso OOP:

chiunque abbia delle salde basi di Actionscript 3.0, quindi sappia cosa sia una variabile, un ciclo o un Array

chiunque volesse intreprendere una strada più professionale nello sviluppo di applicazioni Flash utilizzando Actionscript 3.0

Potete accedere agli articoli di questa nuova sezione andano col mouse sul menu principale in alto Tutorials > Object Oriented Programming oppure sulla vostra destra avete un link diretto.

Prima di partire con la prima lezione, FlepStudio vuole ringraziare ancora tutti voi per la vostra calorosa partecipazione e augura un buon proseguimento a tutti.
Object Oriented Programming - lezione 1


Scrivere la mia prima classe e la sua funzione costruttrice


Cosa è una classe...

Vediamola in questo modo: avete presente il famoso gioco di costruzoni LEGO, quei mattocini colorati che messi insieme possono dar vita a delle bellissime costruzioni ?

Ecco, una classe Actionscript 3.0 è un mattoncino Lego.

La si può utilizzare o chiamare ( in gerco di programmazione: istanziare) a nostro piacimento, quando, dove oppure da dove vogliamo.

Una volta istanziata una classe, posso avere a disposizione i suoi metodi e proprietà ( in base agli attributi che ho loro associato ), ma questo lo vedremo nella prossima lezione.

Oggi voglio partire proprio da come si scrive una semplice classe e cosa necessita per essere funzionante.

Con Actionscript 3.0 prima di tutto bisogna implememtare ( creare ) un package. Trovo inutile spiegare a fondo cosa è un package in questa lezione in quanto confonderei solo le idee a chi è al primo approcio con la OOP. Per cui diciamo che un package è una scatola in cui si possono inserire svariate Classi. A questa scatola noi potremmo anche eventualmente assegnare un nome, ma anche questo lo vedremo più avanti.

Seguitemi...

Per il momento implementiamo un package senza nome e accessibile, in questo modo:

creo un file AS che salvo con nome ' Prima.as ' ( NB: consiglio vivamente di dare un nome alla vostra classe che inizia sempre con lettera maiuscola ) e scrivo:
Code:
package
{
    
}
ora, siccome Flash CS3 ha una struttura di classi suddivisa in pacchetti, in base a quello che dobbiamo fare importeremo il pacchettto di classi adeguato.

In questo caso, utilizzeremo questa classe come Document Class, cioè come la classe principale del nostro progetto o applicazione, per cui necessitiamo di importare la classe MovieClip ( per chi volesse approfondire il concetto di Document Class può leggersi questo articolo: La Document Class di Flash CS3 ) . Perchè dobbiamo importare la classe MovieClip ? Perchè ci serve per ereditare le sue proprietà ed i suoi metodi ma è un disorso troppo prematuro al momento, per cui vi invito a sapere solo che necessitiamo di importare la classe MovieClip.

Per importare la classe MovieClip, che si trova nel pacchetto ( package ): flash.display, scriviamo:
Code:
package
{
    import flash.display.MovieClip;
}
con il comando import, diciamo a Flash di importare qualcosa che quindi sarà a nostra disposizione durante lo sviluppo. Poi gli diciamo che vogliamo la classe MovieClip all' interno del package: flash.display .

Adesso possiamo dichiarare la nostra classe, annunciandola a Flash in questo modo:
Code:
package
{
    import flash.display.MovieClip;
    
    public class Prima extends MovieClip
    {
        
    }
}
public, significa che la classe è pubblica. Questo attributo rende la classe accessibile anche dall' esterno del pacchetto. Qeusto significa che potrò istanziare la classe Prima.as anche da un' altra classe o dalla TimeLine.

class fa capire a Flash che stiamo definendo una nuova classe

Prima è il nome della classe, quindi il nome del file .as e la dichiarazione della classe devono sempre coincidere

extends è un attributo su cui al momento vi consiglio di non soffermarvi troppo, prendetela come una regola, se la classe che stiamo dichiarando sarà la classe principale del nostro progetto ( quindi Document Class ) deve avere l' attributo extends. Deve estendere e quindi ereditare metodi e proprietà della classe movieClip. Nel corso degli articoli e lezioni capirete meglio il suo valore

MovieClip indica appunto che la nostra classe estende la classe già esistente in Flash che si chiama MovieClip

Adesso dobbiamo definire la funzione costruttrice della nostra classe Prima.

Spiego il concetto di funzione costruttrice:
  • è la funzione che esegue il codice al suo interno al momento in cui istanziamo la classe Prima, quindi quando noi istanzieremo Prima dalla TimeLine tramite il campo di testo denominato Document Class ( o Classe Documento per chi ha Flash in versione italana ) nel pannello proprietà del FLA.
  • deve avere necessariamente lo stesso nome della classe
  • non deve essere chiamata, basta istanziare la classe e Flash automaticamente eseguirà il codice al suo interno
  • può essere implementata a ricevere dei parametri ( vedremo nella seconda lezione )
  • va sempre definita, se non lo farete, Flash lo farà per voi e quindi non potrete assegnarle del codice da eseguire al momento che viene istanzata la classe. Sarebbe ridicolo non definirla.
  • può essere solo pubblica, quindi con attributo public
  • non può restituire alcun valore
Ecco come definire la funzione costruttrice di Prima.as :
Code:
package
{
    import flash.display.MovieClip;
    
    public class Prima extends MovieClip
    {
        public function Prima()
        {
            
        }
    }
}
A questo punto la nostra Classe Prima è pronta per essere utilizzata.

Come la utilizziamo ? ... semplice... !

Creo il FLA principale del nostro progetto, che salvo con nome ' prima.fla ' nella stessa cartella in cui si trova Prima.as .

Nel campo opzione denominato Document Class del pannello proprietà del FLA, scrivo: Prima ( senza estensione .as ) .

Se avessimo voluto istanziare la nostra classe Prima.as da codice, avremo dovuto scrivere:

var prima:Prima=new Prima;

ma è un concetto che elaboreremo più avanti. Per ora lasciamo fare a Flash questo capolavoro scrivendo Prima nell' apposita opzione.

Adesso possiamo facilmente capire a fondo il lavoro della funzione costruttrice ( public function Prima ) tornando su Prima.as, aggiungiamo un trace nella funzione costruttrice in modo da verificare che non appena pubblicheremo l' SWF venga eseguito il trace:
Code:
package
{
    import flash.display.MovieClip;
    
    public class Prima extends MovieClip
    {
        public function Prima()
        {
            trace(" la classe Prima è stata istanziata correttamente ");
        }
    }
}
pubblichiamo l' SWF e se avete fatto tutto correttamente, Flash eseguirà subito il codice della funzione costruttrice e vi apparirà il trace nel pannello Output.

Come ben si nota, nessuno ha chiamato la funzione Prima, appunto perchè è la funzione costruttrice e viene eseguito il codice all' interno delle sue parentesi graffe non appena la classe viene istanziata.

Allego i files:
Attached Files
File Type: zip lezione_1.zip (6.1 KB, 112 views)

__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !

Last edited by Flep; 05-06-08 at 11:55..
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #2 (permalink)  
Old 31-10-08, 20:56
Matt's Avatar
Junior Member
 
Join Date: Jan 1970
Posts: 8
Rep Power: 0
Matt is on a distinguished road
Question Re: Nasce la sezione Object Oriented programming con Flash CS3 ed Actionscript 3.0

Flep, non so come mai ma quando provo a scrivere nel campo Document Class la parola Prima, FlashCS3 va in crash e si chiude!!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
Object Oriented Programming - lezione 7 - packages Flep Programmazione Orientata agli Oggetti - tutorials 2 28-10-08 14:12
Object Oriented Programming - lezione 9 - l' Ereditarietà Flep Programmazione Orientata agli Oggetti - tutorials 16 10-10-08 16:36
Object Oriented Programming - lezione 2 - le proprietà di una classe Actionscript 3.0 Flep Programmazione Orientata agli Oggetti - tutorials 6 16-05-08 17:06
Object Oriented Programming - lezione 8 - le costanti Flep Programmazione Orientata agli Oggetti - tutorials 0 21-09-07 17:52
Object Oriented Programming ulisse46 Actionscript 3.0 avanzato 1 29-08-07 10:25


All times are GMT. The time now is 05:03.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406