Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Classi e MovieClip

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    Classi e MovieClip

    ho questo codice:
    function movieclip(txt,index,X)
    {
    _root.gallery.createEmptyMovieClip("contenitore1"+ index, 0);
    eval("_root.gallery.contenitore1"+index).createEmp tyMovieClip("foto"+index, 0);
    eval("_root.gallery.contenitore1"+index+".foto"+in dex).loadMovie("immagini/cane.jpg");
    eval("_root.gallery.contenitore1"+index)._x=X;
    eval("_root.gallery.contenitore1"+index).onPress=f unction(){trace (txt);}


    }
    movieclip(1,1,10);
    movieclip(2,2,100);

    quando chiamo per la prima volta la funzione tutto ok , la seconda volta mi cancella i movie clip precedenti;Perche?
    grazie

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Io farei così:

    codice:
    function crea_movieclip(txt, index, X)
    {
    	var mc = _root.gallery.createEmptyMovieClip("contenitore1" + index, index);
    	mc.createEmptyMovieClip("foto", 0);
    	mc.foto.loadMovie("immagini/cane.jpg");
    	mc._x = X;
    	mc.onPress = function()
    	{
    		trace(txt);
    	};
    }
    crea_movieclip(1, 1, 10);
    crea_movieclip(2, 2, 100);
    e non chiamerei una funzione con il nome di una Classe.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    fantastico ; la differenza dove stà ?(per capire).
    Solo nell livello del movieclip?

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Fondamentalmente si. Se crei i movieclip sempre nello stesso livello di profondità, il nuovo movieclip prende il posto del precedente..

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    adesso devo mettere questa funzione in una classe;
    il problema è lo stesso mi visualizza solo l'ultimo:


    Movie.prototype.CreaMovieClip=function(frame)//questa crea tutti i movieclip del livello 0 contenuti in this.mImmagini
    {
    for(var i=0;i<this.mImmagini.length;i++)
    {
    var mov=this.mImmagini[i];
    this.crea_movieclip(frame,frame,mov.X,mov.Y,mov.Im magine);

    }
    Movie.prototype.crea_movieclip(txt, index, X,Y,imm)/questa è la tua funzione
    {
    var mc = _root.gallery.createEmptyMovieClip("contenitore1" + index, index);
    mc.createEmptyMovieClip("foto",index);
    mc.foto.loadMovie("immagini/"+imm);
    mc._x = X;
    mc._y=Y;
    mc.onPress = function()
    {
    trace(txt);
    };

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    Movie.prototype.CreaMovieClip = function(frame)
    { 
    	for(var i = 0; i < this.mImmagini.length; i++){ 
    		var mov = this.mImmagini[i];
    		this.crea_movieclip(frame, frame, mov.X, mov.Y, mov.Immagine); 
    	}
    };
    Se invia sempre lo stesso valore di frame, allora l'altro metodo riceverà sempre lo stesso index...
    Anche quel parametro deve cambiare, ad esempio:

    codice:
    Movie.prototype.CreaMovieClip = function(frame)
    { 
    	for(var i = 0; i < this.mImmagini.length; i++){ 
    		var mov = this.mImmagini[i];
    		this.crea_movieclip(frame, i, mov.X, mov.Y, mov.Immagine); 
    	}
    };

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    si scusa il codice era sbagliato ; l'unico problema che persiste e per questo ti avevo mandato il codice parziale è che se anche nel ciclo for la tua rutine viene chiamata 3 volte col debug vedo che viene chiamata una sola volta perchè?

  8. #8
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Com'è che la vedi chiamata una sola volta?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ok questo è il nuovo codice che funziona(non del tutto):
    mov è una classe che contiene informazioni sull immagine(x,y,nome ecc..)
    for(var i=0;i<this.mImmagini.length;i++)
    {
    var mov=this.mImmagini[i];
    if(mov.frame==frame)
    {
    var mc = _root.gallery.createEmptyMovieClip("contenitore1" + i,i);
    mc.createEmptyMovieClip("foto",0);
    mc.foto.loadMovie("immagini/"+mov.Immagine);
    mc._x = mov.X;
    mc._y=mov.Y;
    mc.onPress = function()
    {
    trace(mov.Immagine);
    }
    }
    }
    tutto ok solo che quando premo il movieclip mi ritorna sempre lo stesso valore.Eppure mov.Immagine cambia.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ok questo è il nuovo codice che funziona(non del tutto):
    mov è una classe che contiene informazioni sull immagine(x,y,nome ecc..)
    for(var i=0;i<this.mImmagini.length;i++)
    {
    var mov=this.mImmagini[i];
    if(mov.frame==frame)
    {
    var mc = _root.gallery.createEmptyMovieClip("contenitore1" + i,i);
    mc.createEmptyMovieClip("foto",0);
    mc.foto.loadMovie("immagini/"+mov.Immagine);
    mc._x = mov.X;
    mc._y=mov.Y;
    mc.onPress = function()
    {
    trace(mov.Immagine);
    }
    }
    }
    tutto ok solo che quando premo il movieclip mi ritorna sempre lo stesso valore.Eppure mov.Immagine cambia.

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.