Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di ercoli
    Registrato dal
    Mar 2002
    Messaggi
    173

    attachMovie non funziona

    Grazie quanti vorranno rispondermi.

    Vorrei poter generare una serie di clip vuoti nei quali caricare delle jpg.

    Purtroppo il codice non funziona: eppure apparentemente è tutto in ordine.

    Preciso che pubblico gli swf con queste caratteristiche:
    - flash mx pro;
    - action script 2;
    - flash player 7.

    Ecco il codice:
    // creo oggetto LoadVars
    var esterno = new LoadVars();

    // verifico che le variabili siano state caricate per poter essere utilizzate
    esterno.onLoad = function (ok)
    { if (ok)
    {
    var limite:Number = Number(esterno.img)+1;
    var spaziatore:Number = 0;

    for(foto = 1; foto<limite; foto++){
    _root.attachMovie("clip", "clip_"+foto, foto);
    _root["clip_"+foto]._x = spaziatore;
    _root["clip_"+foto].loadMovie(foto+".jpg");
    spaziatore+=26.5;
    }
    }
    }

    // carico le variabili dal file esterno
    esterno.load("fileDati.txt");
    Ammesso che io riesca a farlo funzionare; se volessi creare dei tasti vuoti invece che clip vuoti, è possibile?

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    1. cosa non funziona e dove, prima di guardare il codice?

  3. #3
    Utente di HTML.it L'avatar di ercoli
    Registrato dal
    Mar 2002
    Messaggi
    173
    Ho provato a inserire nel clip vuoto presente nella libreria e denominato "clip" un elemento colorato.

    Al momento dell'esecuzione dello script direi che non vengono istanziati i clip generati dal ciclo, perchè non appaiono gli elementi colorati che ho inserito nel clip che si trova in libreria.

    Non generando istanze di clip non vengono caricate le immagini con il metodo loadMovie che si trova sempre all'interno del ciclo.

    Sicuramente l'istruzione if (ok) viene eseguita - così come il ciclo - perchè ho messo dei trace di verifica all'interno del ciclo stesso e funzionano...

    Ricapitolando.

    Funziona:
    - tutta la parte relativa al caricamento dei dati esterni da file.txt;
    - il ciclo for viene eseguito perchè ho verificato mettendo dei trace al suo interno.

    Non funziona:
    - l'istanziazione di clip con attachedMovie;
    - il caricamento di jpg all'interno di ogni clip generati dal ciclo for.


  4. #4
    Utente di HTML.it L'avatar di ercoli
    Registrato dal
    Mar 2002
    Messaggi
    173
    Dunque ho parzialmente risolto il mio problema.

    L'errore che commettevo era semplicemente che non concatenavo il mio clip presente in libreria...

    Ora il seguente codice funziona:

    codice:
    // creo oggetto LoadVars
    var file_esterno = new LoadVars();
    
    var spaziatore:Number = 0;
    
    // verifico che le variabili siano state caricate per poter essere utilizzate
    file_esterno.onLoad = function (ok){
    if (ok){
    var limite:Number = Number (file_esterno.img)+1;// creo un limite per il ciclo for
    			
    for(foto=1; foto<limite; foto++){
        _root.attachMovie("clip","pulsante_"+foto, foto);//creo un'istanza del clip in libreria
        _root["pulsante_"+foto]._x = spaziatore;// metto uno spazio fra un clip e l'altro
        _root["pulsante_"+foto].loadMovie("../foto_dhtml/menuDonna/"+foto+".jpg");// tento di caricare all'interno del clip una immagine .jpg
        var spaziatore:Number =spaziatore+26.5;//spazio fra un clip e l'altro
    
    			     }
        	}
    }
    // carico le variabili dal file esterno
    file_esterno.load("../foto_dhtml/menuDonna/menu_d.txt");
    Il problema che ho ora è che l'oggetto in libreria - il cui identificatore è "clip" - è in realtà un pulsante, all'interno del quale vorrei caricare un'immagine .jpg

    Purtroppo il codice sopra non funziona.
    Qualcuno può indicarmi la strada?

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    // creo oggetto LoadVars
    var file_esterno = new LoadVars();
    
    var spaziatore:Number = 0;
    
    // verifico che le variabili siano state caricate per poter essere utilizzate
    file_esterno.onLoad = function (ok)
    {
    	if (ok){
    		// creo un limite per il ciclo for
    		var limite:Number = Number (file_esterno.img)+1;
    		for(var foto=1; foto<limite; foto++)
    		{
    			//creo un'istanza del clip in libreria
    			var mc = _root.attachMovie("clip","pulsante_"+foto, foto);
    			// metto uno spazio fra un clip e l'altro
    			mc._x = spaziatore;
    			// crea un altro movieclip all'interno del primo
    			var ld = mc.createEmptyMovieClip("loader", 1);
    			// tento di caricare all'interno del clip una immagine .jpg
    			ld.loadMovie("../foto_dhtml/menuDonna/"+foto+".jpg");
    			//spazio fra un clip e l'altro
    			spaziatore += 26.5;
    			// rendi il clip esterno cliccabile
    			mc.onRelease = function()
    			{
    				trace("hello");
    			}
    	     }
        	}
    }
    // carico le variabili dal file esterno
    file_esterno.load("../foto_dhtml/menuDonna/menu_d.txt");

  6. #6
    Utente di HTML.it L'avatar di ercoli
    Registrato dal
    Mar 2002
    Messaggi
    173
    Grazie per il codice più pulito, e soprattutto grazie per avermi cavato da una via senza uscita.

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Di niente, ciao!

  8. #8
    Utente di HTML.it L'avatar di ercoli
    Registrato dal
    Mar 2002
    Messaggi
    173
    Vorrei spingermi più avanti.

    A questo punto ho fatto una variazione e da un solo swf, sono passato a due swf che comunicano tra loro pur essendo questi nella stessa pagina.

    Dando per scontato il codice postato da Negatyve (per motivi di spazio lo trovate poco più sopra), ho inserito nella function finale il seguente codice:
    codice:
    mc.onRelease = function()
    			{
    				var pari:Number = foto%=2;
    
    					if(pari==0){
    						lc = new LocalConnection();
    						lc.send("receiver", "sx", foto+1, foto+2);
    						lc.close();
    						delete lc;
    						}
    
    					else{
    						lc = new LocalConnection();
    						lc.send("receiver", "sx", foto, foto+1);
    						lc.close();
    						delete lc;
    						}
    			}
    Il problema che ho è che la variabile "foto" (che viene inizializzata dal ciclo for) ha sempre valore 1 e non capisco perchè...
    Quando premo il pulsante dunque invio al swf ricevente i nell'ordine i valori 1 e 2 - ossia foto e foto+1
    Centra per caso l'ambito di validità delle variabili usate all'interno delle funzioni?

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.