Flash: effetto bollicine

Di: Romy | 26/09/2020 18:33:11
Buonagiorno a tutti,
Vorrei sapere come posso fare a realizzare un ondata di bollicine che salgono verso lato per tutto lo schermo in maniera continua.
Grazie a tutti.

Risposte



Forse il modo + semplice è quello di crearti una o più animazioni distinte di bollicine che salgono per differenziare l'animazione complessiva, successivamente con un scipt porti sullo stage in posizioni random il mc dalla libreria.
In sintesi ti serve un ciclo for e l'attachmovie per creare sullo stage tante bollicine e un comando random che ti genera i valori delle posizioni _x e _y.
Per la continuità potresti utilizzare il setTimeOut che richiamerà la funzione che contiene tutto il codice scritto ad intervalli desiderati.

Di: goku | 26/09/2020 18:34:11


Ciao Goku,
grazie per il tuo intervento,
ho provato a realizzarlo la mia animazione in questa maneiera:
ho creato un clip filmato (la mia bolla) al clip ho messo questo codice
onClipEvent (load) {
this._x = Math.random()*100;
this._y = 500;
scale = (Math.random()*50+50);
this._xscale = scale;
this._yscale = scale;
speed = (Math.random()*5+3);
}
onClipEvent (enterFrame) {
this._y -= speed;
if (this._y < -128) {
this._x = Math.random()*100;
this._y = 500;
scale = (Math.random()*50+50);
this._xscale = scale;
this._yscale = scale;
}
}
la bolla appare e si muove ma resta una sola e non capisco perché ... il filamto dovrebbe rispodurre più bolle .
Mi sai mica aiutare ancora?
Ciao,
Romy.

Di: Romy | 26/09/2020 18:34:11


Il codice da te riportato va collocato direttamente sul mc e ne gestisce il movimento e come base va bene, adesso ti serve uno script che gestisca le numerose istanze che ti servono, non scriverò il codice pronto all'uso, sono sicuro che riuscirai da solo.
Vediamo, ti serve il comando setTimeOut (vedi anche nella guida in linea di flash), questo richiamerà ad intervalli desiderati una funzione.
Questa funzione conterrà il comando duplicateMovieClip, appunto per duplicare il tuo mc, ti occore il comando random che già hai utilizzato per posizionare i mc duplicati in posizioni diverse almeno sull'asse x.
Con qualche variabile puoi controllare se i mc sono giunti a "destinazione" e rimuoverli.
Un semlice script per darti uno spunto:
function tua_funzione(){
i++;
_root.tuo_mc.duplicateMovieClip("tuo_mc"+i, i);
_root["tuo_mc"+i]._x = random(Stage.width);
}
ripeti = setInterval(tua_funzione, 10);

Di: goku | 26/09/2020 18:34:11


Grazie per la fiducia !!!
A dire il vero a livello di codici non sono molto brava, ma volenterosa di imparare, io uso flesh in maniera puramnte grafica ( sto imparando da sola ), al momento ho raggirato il problema e sono riusita a realizzare l'efetto desiderato moltiplicando il MovieClip.
Ora proverò a seguire il tuo consiglio grazie mille.
Romy

Di: Romy | 26/09/2020 18:34:11


Lo script che ti ho postato non fa altro che quello che tu hai fatto manualmente, cioè duplicare i mc e disporli sullo stage, è semplice, vedrai che riesci

Di: goku | 26/09/2020 18:34:11


Pare che ti sei risposto da solo, basta un if:
if(tuo_clip1.visible==true && tuo_clip2.visible==true ecc){
tua_funzione();
}

Di: goku | 26/09/2020 18:34:11