<< Swishmax tutorial ed esempi - Tutorial - Uso di approach - Pagina 1 >>

Cerca

Informazioni

Licenza

Valid HTML 4.01! Valid CSS!

Google

OFFERTE SPECIALI

DisoteK

SwishMax Tutorial : Uso di approach

Inserito il : 14/10/2007
<< Prev 1 Next >>

Nei vari forum viene spesso consigliato l'uso di Math.Approach in esecuzione mediante onEnterFrame.

La cosa che nessuno dice è che onEnterFrame è un tipo di evento particolarmente pesante per l'esecuzione, e che quindi andrebbe eliminato appena non necessario.

Molto spesso per far spostare un oggetto viene usato il Math.approach in un evento onEnterFrame, ma la cosa che ci si deve sempre domandare è:

"Cosa fa l'oggetto alla fine dello spostamento?"

La risposta è scontata, continua a spostarsi (anche se in realtà non si sposta ma continua ad eseguire il codice dello spostamento).

Ovviamente se noi facciamo spostare uno o due oggetti in questo modo, potrebbe comunque filare tutto liscio, ma se fossero 50 le cose da spostare allora potremmo notare parecchie differenze.

Va detto comunque che lo spreco inutile di risorse (che potremmo sfruttare per altro) è sempre una pessima abitudine.

Ecco un esempio di un meno dispendioso uso di Math.approach:

onLoad () {
    MovieClip.prototype.approach=function(x,y,vel){
        this.onEnterFrame=function(){
            if ((this._x==x)&&(this._y==y)){
                delete this.onEnterFrame;
            }else{
                this._x=math.approach(this._x, x, vel);
                this._y=math.approach(this._y, y, vel);
            }
           
        }
    };
miosprite.approach(1,1,0.95);//questo è un esempio di utilizzo del proto
}

Il proto di sopra potrà ovviamente essere utilizzato tutte le volte che si vorrà nello stesso progetto, basterà richiamarlo mediante la sintassi nomesprite.approach(x,y,velocità);

x ed y sono le coordinate da raggiungere, mentre la velocità è lo stesso parametro di approach.

Anche la riutilizzabilità del codice all'interno dello stesso sito è importante (e di vari siti perchè basterà copiare il proto in un nuovo progetto per poterlo riutilizzare). Proprio per questo motivo ho esteso la classe MovieClip mediante prototype per rendere disponibile il metodo approach a tutti i movieclip del progetto. Basta questo per far muovere tutti gli oggetti di un sito ad esempio per menu animati, spostamento di finestre ecc ecc.

Ovviamente non bisogna usare prototype se il codice non va riutilizzato all'interno del sito, esistono altri modi per eliminare un onEnterFrame quando non è più necessario. Ad esempio basta mettere in uno sprite il seguente codice per ottenere lo stesso risultato.

onLoad () {
    x=0;//valore x che il rettangolo deve raggiungere
    y=0;//valore y che il rettangolo deve raggiungere
    vel=0.85;//velocità   

    this.onEnterFrame=function(){
        if ((this._y==y)&&(this._x==x)){
            delete this.onEnterFrame;
        }else{
            _x=Math.approach(_x, x, vel);
            _y=Math.approach(_y, y, vel);
        }
    };
   
}

Quindi quando si dovrà agire in un solo sprite si userà questa seconda soluzione senza usare inutilmente prototype.

<< Prev 1 Next >>

Contenuti presenti

Swishmax tutorials : 5
Esempi Swishmax : 33
Download totali : 116461