Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Problema con DuplicateMovie e _alpha

    Ciao a tutti ragazzi diciamo che sono nuovo di questo forum in quanto l'ho solo visitato ma mai postato ^^
    ora mi trovo qua a chiedere consiglio a voi sperando che sappiate darmi un aiuto con un codice action che sto scrivendo per fare un menu.

    Il codice che utilizzo è il seguente :

    codice:
    var container:MovieClip = setUpContainer();
    var ln:Number = 6;
    var spacer:Number = 2;
    var duplicate:MovieClip;
    for (var i = 1; i<ln; i++) {
    	var newY:Number = i*(container._height+spacer);
    	duplicate = container.duplicateMovieClip("clip-"+i, i, {_y:newY});
    	named = (duplicate);
    	this.onEnterFrame = function() {
    		if (named._alpha>=60) {
    			named._alpha -= 5;
    		} else {
    			delete this.onEnterFrame;
    		}
    	};
    	/* Mi traccio le variabili dentro il Ciclo*/
    	trace("1 - DUPLICATE = "+duplicate);
    	trace("2 - ALP = "+alp);
    	trace("3 - CONT = "+cont);
    	trace("4 - NAMED = "+named);
    	trace("-------------------------------");
    }
    /* Mi Creo il MovieClip */
    function setUpContainer():MovieClip {
    	var mc:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
    	var w:Number = 100;
    	var h:Number = 60;
    	mc.beginFill(0x8D0020);
    	mc.lineTo(w, 0);
    	mc.lineTo(w, h);
    	mc.lineTo(0, h);
    	mc.lineTo(0, 0);
    	mc.endFill();
    	return mc;
    }
    ora con questo codice mi sono creato e duplicato il mio bel clip solo che non riesco ad appliccargli a tutti i movieclip l'alpha. :master:

    Purtroppo non capisco perkè :master: ma me lo da solo sull'ultima istanza del duplicate inoltre vorrei che ognuno dei 6 clip creati abbia un alpha differrente dall'altro ma in modo graduale ad esempio:

    il primo clip abbia alpha 60%
    il secondo 65%
    il terzo 70%

    e cosi via dicendo..

    avevo pensanto di inserire un contatore fisso con valore 5 tipo :
    var Contat:Number = 5;

    e una variabile iniziale da assegnare ad alpha :
    var Alfa:Number = 60;

    cosi che poi incremento il tutto con un ciclo ma mi sono ingarbugliato

    help me Pls
    Grazie di cuore a chiunque mi aiuti o mi sappia dare consiglio
    lol

  2. #2
    Ciao meyumi grazie per la risposta mi aiutato a correggere una parte dello script ^_^ stimolandomi a cercare di continuarlo il risultato è il seguente :

    codice:
    
    var container:MovieClip = setUpContainer();
    var ln:Number = 6;
    var spacer:Number = 2;
    var duplicate:MovieClip;
    container.onEnterFrame = function() {
    	if (this._alpha<=30) {
    		this._alpha += 5;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    
    trace("-------------------------------");
    trace("00 - VALORE CONTAINER = "+container);
    trace("-------------------------------");
    
    for (var i = 1; i<ln; i++) {
    	var newY:Number = i*(container._height+spacer);
    	duplicate = container.duplicateMovieClip("Clip_"+i, i, {_y:newY});
    	named = this["Clip_"+i];
    
    
    	trace("-------- CICLO INTERNO --------");
    	trace("01 - VALORE DUPLICATE = "+duplicate);
    	trace("02 - VALORE DELLA Y = "+newY);
    	trace("03 - VALORE DELLA I = "+i);
    	trace("04 - VALORE NAMED = "+named);
    	trace("-------------------------------");
    
    }
    
    named1 = this["Clip_"+1];
    named2 = this["Clip_"+2];
    named3 = this["Clip_"+3];
    named4 = this["Clip_"+4];
    named5 = this["Clip_"+5];
    named6 = this["Clip_"+6];
    named1.onEnterFrame = function() {
    	if (this._alpha<=40) {
    		this._alpha += 5;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    named2.onEnterFrame = function() {
    	if (this._alpha<=50) {
    		this._alpha += 5;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    named3.onEnterFrame = function() {
    	if (this._alpha<=60) {
    		this._alpha += 5;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    named4.onEnterFrame = function() {
    	if (this._alpha<=70) {
    		this._alpha += 5;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    named5.onEnterFrame = function() {
    	if (this._alpha<=80) {
    		this._alpha += 5;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    named6.onEnterFrame = function() {
    	if (this._alpha<=90) {
    		this._alpha += 5;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    
    trace("-------- VARIABILI ESTERNE --------");
    trace("05 - VALORE NAMED1 = "+named1);
    trace("06 - VALORE NAMED2 = "+named2);
    trace("07 - VALORE NAMED3 = "+named3);
    trace("08 - VALORE NAMED4 = "+named4);
    trace("09 - VALORE NAMED5 = "+named5);
    trace("10 - VALORE NAMED6 = "+named6);
    trace("-------------------------------");
    
    
    /************** FUNCTION PER CREARE MC **************/
    
    function setUpContainer():MovieClip {
    	var mc:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
    	var w:Number = 100;
    	var h:Number = 80;
    	mc.beginFill(0x8D0020);
    	mc.lineTo(w, 0);
    	mc.lineTo(w, h);
    	mc.lineTo(0, h);
    	mc.lineTo(0, 0);
    	mc.endFill();
    	mc._alpha = 0;
    	return mc;
    }
    
    solo che adesso stavo pensando se era possibile creare un ciclo per racchiudere tutta la parte selezionata di rosso cosi da non dover dire ad ogni clip istanziato il prorpio valore di alpha ma farglielo incrementare con il ciclo

    help XD
    lol

  3. #3
    Ciao meyumi grazie ancora per il tuo aiuto ma il ciclo non funziona già avevo pensanto pure io ad una soluzione simile solo che la funzione dell'alpha applica il valore solo all'ultimo clip ed hai restanti clip non applica nulla come se non trova il nome delle istanze dei clip ... sono 2 giorni che mi sbatto per capire il motivo ma non lo trovo ho provato a fare 2.000 cicli differenti ma non riesco a trovare la soluzione pls

    oltretutto il valore dell'alpha di ciascun clip si incrementa di + 10 rispetto al clip superiore invece con in ciclo creato da te tutti i clip in teoria dovrebbero avere lo stesso valore alpha .... ma non mi fa neanche quello

    perfavore un consiglio, un suggerimento, un tutorial, mezzo script che funzioni .. qualsiasi cosa è ben accetta

    Originariamente inviato da meyumi
    codice:
    
    for (i=0;i<6;i++){
    named_mc = this["Clip_"+i];
    }
    named_mc .onEnterFrame = function() {
    	if (this._alpha<=40) {
    		this._alpha += 5;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    
    HELP
    lol

  4. #4
    ho modificato un pò il ciclo adottando questa soluzione in quanto quella proposta da te meyumi mi dava solo l'ultimo clip, inserendo invece la function dentro il ciclo me li fa vedere tutti e 6, solo che utilizzando il debugger di flash ho visto che non mi entra dentro la function anche se poi tutti i clip compaiono con l'alpha solo che aumenta il loro valore all'infinito ..... sn in panico XD
    codice:
    
    contatore = 40;
    for (i=0; i<6; i++) {
    	named_mc = this["Clip_"+i];
    	trace("named mc = "+named_mc);
    	named_mc.onEnterFrame = function() {
    		contatore = contatore+10;
    		if (this._alpha<=contatore) {
    			trace("named mc = "+named_mc+" alpha = "+contatore);
    			this._alpha += 5;
    		} else {
    			delete this.onEnterFrame;
    		}
    	};
    }
    
    ARIHELP
    lol

  5. #5

  6. #6
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Ciao, hai provato così?
    codice:
    for (i=0; i<6; i++) {
    	named_mc = this["Clip_"+i];
    	named_mc.onEnterFrame = function() {
    		if (this._alpha<=40) {
    			this._alpha += 5;
    		} else {
    			delete this.onEnterFrame;
    		}
    	};
    }

  7. #7
    Originariamente inviato da gobbo89
    Ciao, hai provato così?
    codice:
    for (i=0; i<6; i++) {
    	named_mc = this["Clip_"+i];
    	named_mc.onEnterFrame = function() {
    		if (this._alpha<=40) {
    			this._alpha += 5;
    		} else {
    			delete this.onEnterFrame;
    		}
    	};
    }
    si non funziona lo stesso
    lol

  8. #8
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Originariamente inviato da ~Z3n0V4~
    si non funziona lo stesso
    Uh, strano...
    E così (ci tento... )?
    codice:
    for (i=0; i<6; i++) {
    	_root["Clip_"+i].onEnterFrame = function() {
    		if (this._alpha<=40) {
    			this._alpha += 5;
    		} else {
    			delete this.onEnterFrame;
    		}
    	};
    }

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.