Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [MX 2004] Fermare duplicateMovieClip

    codice:
    if (moving<3)	{
    	duplicateMovieClip("fiocco","s" add c,50+c)
    	sc=random(90)+10
    	set ("s" add c add ":yp",random(4)+1)
    	setProperty("s" add c,_x,random(550))
    	setProperty("s" add c,_xscale,sc)
    	setProperty("s" add c,_yscale,sc)
    	c++
    	moving++
    }
    Ciao a tutti.
    Mi sono perso in un bicchier d'acqua.
    Con lo script sopra scritto duplico un clip che mi rende l'effetto "fiocchi di neve che cadono".

    Ad un cercto punto del mio filmato vorrei che l'effetto finisse, ma non riesco ad eliminarlo in nessun modo.
    In altre parole, vorrei che, in un dato frame in cui la scenografia cambia totalmente, non ci fossero più fiocchi ni neve che cadono.
    Invece questi continuano a duplicarsi. Sono sfuggiti al mio controllo.
    Non posso renderli invisibili, perchè interagirebbero comunque con gli altri elementi. Vorrei eliminarli totalmente.

    Probabilmente è una stupidaggine, ma al momento non mi viene in mente come fare!
    Troppo stress...

    Thanks in advance

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    che evento usi per per duplicare e fare il controllo?

  3. #3

    @polliotto

    Dopo aver eseguito il code (che si trova sullo stage), al fotogramma successivo c'è un prevFrame(); che gli fà ripetere tutto. "moving" si incrementa ogni volta di 1.
    E' questo il controllo che intendi?

    ______________

    Dentro il clip "fiocco", invece, al primo frame c'è:

    codice:
    this._y+=yp
    if (this._y>550){
    this._y=-5
    this._x=random(550)
    }
    this._x+=random(4)-2
    Anche questo va al secondo frame dove c'è un prevFrame(); che gli fà ripetere il codice...
    ... ma non mi sembra un'informazione utile. O mi sbaglio?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    posso darti un consiglio prova ad usare enterFrame anzi che fare l'animazione con i fotogrammi.
    codice:
    var fiocchiArray= new Array()
    this.onEnterFrame= function(){
      if (moving<3)	{
         var sc = (Math.random() + 90) + 10;
    fiocco.duplicateMovieClip("s" + c, 50 + c, {_xscale:sc, _yscale:sc, _x:Math.random() * 550, yp:(Math.random() * 4) + 1});
         c++
         moving++
      }
    }

  5. #5
    Grazie. Lo terrò presente, ma...
    Non c'è una soluzione senza dover rivedere il codice che ho già scritto?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    ops scusa ma lo mandato prima di finire
    codice:
    var fiocchiArray = new Array();
    var c = 0;
    var moving = 0;
    this.onEnterFrame = function()
    {
    	if (moving < 3)
    	{
    		var sc = (Math.random() + 90) + 10;
    		var _mc = fiocco.duplicateMovieClip("s" + c, 50 + c, {_xscale:sc, _yscale:sc, _x:Math.random() * 550, yp:(Math.random() * 4) + 1});
    		fiocchiArray.push(_mc);
    		c++;
    		moving++;
    	}
    };
    // cosi per annulare  si duplichino scrivi solo
    //this.onEnterFrame = null;
    function removeFiocchi()
    {
    	for (var a in fiocchiArray)
    	{
    		fiocchiArray[a].removeMovieClip();
    	}
    	fiocchiArray = [];
    }
    // cosi rimuovi tutti fiocchi
    removeFiocchi();

  7. #7
    Originariamente inviato da me stesso
    Grazie. Lo terrò presente, ma...
    Non c'è una soluzione senza dover rivedere il codice che ho già scritto?
    Ribadisco i ringraziamenti, ma anche la mia richiesta.

  8. #8
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    for(z=c;z>=50;z--){
    removemovieclip(........)
    }

  9. #9

    @alpeweb

    Sì, questo è il concetto giusto, ma non riesco a completarlo:

    for(z=c; z>=50; z--){
    removeMovieClip(....)
    }

    Il clip dovrebbe chiamarsi "s" add c oppure sc, ma l'help di FlashMX 2004 mi dice: nomeIstanza.removeMovieClip() e lì mi perdo... perchè in più io ho un ciclo.
    L'istanza (che è fiocco) non centra più nulla, poichè i clip da rimuovere hanno nomi dati dal ciclo che li fà duplicare.
    E poi qual'è la sintassi corretta? clipdarimuovere.removeMovieClip() oppure removeMovieClip("clipdarimuovere")?

  10. #10
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    _root["s"+c].remove.......

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.