Flash Gallery | Flash Templates | Flash Menu | Flash Design | Flash Audio & Video

Video Corsi Actionscript 3.0


+ Reply to Thread
Results 1 to 1 of 1

Thread: Assegnare dinamicamente un metodo ad un oggetto con Actionscript 3.0

  1. #1
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,460
    Rep Power
    8

    Assegnare dinamicamente un metodo ad un oggetto con Actionscript 3.0

    amazing Flash templates

    Come abbiamo visto nei tutorials di Actionscript base, possiamo aggiungere delle proprietà ad un oggetto a runtime, dinamicamente.

    In questo tutorial vedremo che è possibile implementare dinamicamente anche dei metodi agli oggetti ( in questo caso la classe Object ).


    Il codice che vedremo non è altro che un qualsiasi oggetto, deve essere un' istanza di una classe dinamica ( infatti la classe Object di Actionscript 3.0 è dinamica ), può avere proprietà e metodi implementati da noi dinamicamente.

    Molto utile quando si caricano dei files XML per associare i dati dell' XML ad un oggetto.


    Vediamo alcuni esempi...


    Esempio 1


    Code:
    var miles:Object=new Object();
    miles.surname="davis";
    trace(miles.surname);
    miles.getSurname=function():String
    {
    	return this.surname;
    }
    
    trace(miles.getSurname());

    In questo caso implemento una proprietà surname ad un oggetto miles.

    Posso recuperare o assegnare il valore di tale proprietà direttamente ( come da primo trace ):


    Code:
    trace(miles.surname);

    oppure implementando un metodo ( funzione ) allo stesso oggetto che restituisce il valore della proprietà "surname"


    Code:
    miles.getSurname=function():String
    {
    	return this.surname;
    }
    
    trace(miles.getSurname());

    Da notare che ho usato il "this" per riferirmi alla proprietà surname dell' oggetto dall' interno del metodo.

    Se non utilizzassi il "this", Flash cercherebbe una variabile globale di nome surname e dato che non c'è ci restituirebbe un errore.


    Esempio 2


    Code:
    var miles:Object=new Object();
    miles.surname="davis";
    miles.sex="male";
    miles.music="jazz";
    
    miles.getInfo=function():String
    {
    	return("miles "+this.surname+" is "+this.sex+" and plays "+this.music);
    }
    
    trace(miles.getInfo());

    In questo caso implemento un metodo chiamato getInfo all' oggetto miles che mi restituisce un concatenamento di stringhe effettuato sulle proprietà dell' oggetto miles.

    Come da trace:


    Code:
    trace(miles.getInfo());

    Esempio 3


    Code:
    var miles:Object=new Object();
    miles.surname="davis";
    miles.sex="male";
    miles.music="jazz";
    miles.skin=function():uint
    {
    	return skinColor("black");
    }
    
    var jaco:Object=new Object();
    jaco.surname="pastorius";
    jaco.sex="male";
    jaco.music="fusion";
    jaco.skin=function():uint
    {
    	return skinColor("white");
    }
    
    function skinColor(s:String):uint
    {
    	var col:uint;
    	
    	switch(s)
    	{
    		case "black":
    			col=0x000000;
    		break;
    		
    		case "white":
    			col=0xFFFFFF;
    		break;
    		
    		case "red":
    			col=0xFF0000;
    		break;
    		
    		case "yellow":
    			col=0xFFFF00;
    		break;
    	}
    	
    	return col;
    }
    
    trace(miles.skin());
    trace(jaco.skin());

    In questo caso abbiamo 2 oggetti ( miles e jaco ) ed una funzione ( skinColor ) dichiarati globalmente.

    La funzione skinColor viene utilizzata per assegnare i valori ai metodi skin di entrambi gli oggetti.

    Infatti i metodi skin richiamano a loro volta la funzione skinColor passandogli un valore e ricevendone un altro ( in questo caso il numero esadecimale di un colore ).


    Allego i files sorgente:
    Attached Files

+ Reply to Thread

Similar Threads

  1. class extends RadioButtonGroup - Non posso assegnare Id
    By Mairon001 in forum FLEX builder 3
    Replies: 0
    Last Post: 16-06-09, 17:00
  2. assegnare un valore ad una variabile di tipo MovieClip - HELP!
    By Franz1407 in forum Actionscript 3.0 base
    Replies: 1
    Last Post: 24-05-09, 22:57
  3. Replies: 1
    Last Post: 07-11-08, 14:15
  4. convertire oggetto loader in oggetto utilizzabile con BitmapData
    By nextframe in forum Actionscript 3.0 base
    Replies: 2
    Last Post: 07-08-08, 10:02
  5. Metodo curveTo di Actionscript 3.0
    By Flep in forum Articoli e tutorials
    Replies: 0
    Last Post: 20-09-07, 10:33

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Optimization by vBSEO