Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    14

    duplicare una clip con alpha variabile

    Ciao ragazzi
    come caspitina faccio a creare un fade in una clip duplicata?
    non posso agire nella clip madre perchè è un insieme di fotogrammi che descrivono un oggetto 3D.
    Qui sotto vi inserisco il banalissimo codice base
    while (count1<5) {
    duplicateMovieClip (_root.frecce, "mc" + i , i);
    setProperty("mc" + i, _x, 151);
    setProperty("mc" + i, _y, 289);
    i++;
    count1++;
    }

  2. #2

    Re: duplicare una clip con alpha variabile

    Non ho capito quello che vuoi fare. Nel titolo hai scritto: duplicare il clip con alpha variabile. Poi nel post scrivi che vuoi un effetto di fade?


    Intanto ti aggiorno lo script... stavi usando comandi datati e alcuni anche deprecati (credo).
    codice:
    while (i<5) {
    	MC = _root.frecce.duplicateMovieClip ("mc" + i , i);
            MC._x = 151;
            MC._y = 289;
            //PER SETTARE L'ALPHA USERO':
            MC._alpha = 100; // (0-100)
            i++;
    }

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    14
    Grazie per la correzione
    il mio problema grosso è far comparire le varie clip con un effetto che va da alpha 0 a 100 e da 100 a 0

  4. #4

    Re: Re: duplicare una clip con alpha variabile

    C'è qualcosa che non mi torna: tutte le clip compaiono alle stesse coordinate secondo questo codice... quindi si sovrappongono, no? e allora se sono sovrapposte e hanno un effetto di fading diventa un pasticcio, cmq ti rispondo con due soluzioni:

    1)
    Se vuoi che i clip compaiano ciascuno con alpha diverso in proporzione all'ordine di apparizione fai così:

    codice:
    i = 0;
    while (i<5) {
    	MC = _root.frecce.duplicateMovieClip ("mc" + i , i);
            MC._x = 151;
            MC._y = 289;
            //PER SETTARE L'ALPHA USERO':
            MC._alpha = (i/5)*100; // (0-100)
            i++;
    }
    2)vuoi un intera animazione di fading per ogni clip che vai a duplicare, allora devi procedere così:

    Nel clip "frecce" crei un animazione di fading IN e fading OUT. Quando lo andrai a duplicare l'animazione di fading partirà automaticamente per ogni copia dell'originale. Programmare un fading con AS è in questo caso inutile e troppo complesso e poichè esistono animazioni fatte proprio per il fading meglio usare quelle.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    14
    Lo so che è complesso ma il problema è che la clip all'interno ha una sequenza di frame distinti con un oggetto 3D che si muove, indi il problema è individuare una funzione che crei un effetto di fade.
    Io all'interno di alcune clip utilizzo questo codice

    onClipEvent (load) {
    a = afin = _alpha;
    }
    onClipEvent (enterFrame) {
    a = _alpha;
    da = afin-a;
    da /= 5;
    _alpha += da;
    }

    ma questo non funziona con le clip duplicate??????????????


  6. #6
    Ripensandoci non è poi tanto pasticciato se lo facessi:

    codice:
    i = 0;
    while (i<5) {
    	MC = _root.frecce.duplicateMovieClip ("mc" + i , i);
            MC._x = 151;
            MC._y = 289;
            //CODICE PER LA GESTIONE ANIMAZIONE FADE
            MC._alpha = MC.start = 0;
            MC.fadeInOrOut = 0;
            MC.velocita = 5; //(inversamente proporzionale)
            MC.onEnterFrame = function () {
                    if (!fadeInOrOut) {
                            this._alpha += Math.ceil((100-this._alpha)/velocita);
                            if (this._alpha==100) fadeInOrOut = 1;
                    } else {
                            this._alpha -= Math.floor((100-this._alpha)/velocita);
                            //se vuoi quando raggiungi la fine
                            //dell'animazione puoi rimuovere il
                            //clip così:
                            if (this._alpha==0) this.removeMovieClip();
                    }
            }
            i++;
    }

    Bada che se duplichi l'oggetto 20 volte il player si impianta: questo codice ciuccia risorse, in particolare da sola l'azione onEnterFrame è pesante... poi se la duplichi 20 volte il player si impasta.

    PS: la velocità è inversamente proporzionale nello script, quindi

    velocita = 5;

    è più lento di

    velocita = 2;

    mentre

    velocita = 1; è addirittura istantaneo, non c'è proprio animazione passa direttamente ad alpha = 100


    plat :bubu:

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    14
    non funge ho guardato il codice e sembra corretto ma non funziona
    Non so più cosa inventarmi

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    14
    Come non detto è possibile che manchi qualche parentesi graffa??
    E come mai Hai inserito MC.start dato che poi non lo riutilizzi??

  9. #9
    Originariamente inviato da Lee
    Come non detto è possibile che manchi qualche parentesi graffa??
    E come mai Hai inserito MC.start dato che poi non lo riutilizzi??
    Non l'avevo testato e come al solito c'era qualche errore di distrazione:

    1) mancavano dei this
    2) ho scritto nella seconda parte floor() e invece andava ceil()
    3) avevo scritto MC.start ma come hai detto tu poi non mi è servito.
    Ora funziona:

    codice:
    i = 0;
    while (i<5) {
    	MC = _root.frecce.duplicateMovieClip("mc"+i, i);
    	MC._x = 151;
    	MC._y = 289;
    	//CODICE PER LA GESTIONE ANIMAZIONE FADE
    	MC._alpha = 0;
    	MC.fadeInOrOut = 0;
    	MC.velocita = 5;
    	//(inversamente proporzionale)
    	MC.onEnterFrame = function() {
    		if (!this.fadeInOrOut) {
    			this._alpha += Math.ceil((100-this._alpha)/this.velocita);
    			if (this._alpha == 100) this.fadeInOrOut = 1;
    		} else {
    			this._alpha -=  Math.ceil((this._alpha)/this.velocita);
    			//se vuoi quando raggiungi la fine
    			//dell'animazione puoi rimuovere il
    			//clip così:
    			if (this._alpha == 0) this.removeMovieClip();
    		}
    	};
    	i++;
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.