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

Discussione: flash, xml

  1. #1

    flash, xml

    Ciao,
    ho un problema,
    in un filmato ho inserito il seguente codice
    codice:
    filexml = "news.xml";
    ApriXML();
          function ApriXML () {
     mioxml = new XML();
     myarray = new Array();
     myarray2 = new Array();
     myarray3 = new Array();
     datax = new Array();
     oggettox = new Array();
     corpox = new Array();
     mioxml.load(filexml);
     mioxml.onLoad = ElaboraXML;
          function ElaboraXML (success) {
    		//se il documento XML è caricato prodeco all'estrapolazione
            if (mioxml.loaded) { 	//if mioxml.loaded
    		  myarray = mioxml.childNodes;
    
    	   // estrapolo dai tag
    		  for (j=0;j<=myarray.length;j++){	//for 1
    		  
    // APRO IL NODO PRINCIPALE (LISTA)
    		  if (myarray[j].nodeName == "lista"){	//if 1
    			   myarray2 = myarray[j].childNodes;
    				  for (i=0;i<=myarray2.length;i++){		//for 2
    // APRO IL NODO SECONDARIO (NEWS)
    					 if (myarray2[i].nodeName == "news"){	//if 2
    					   myarray3 = myarray2[i].childNodes;
    // APRO IL NODO COME COLONNA DATABASE colled: DATAX
    						  for (k=0;k<=myarray3.length;k++){//for 3
    							 if (myarray3[k].nodeName == "data"){	//if 3	
    							   _root.datax.push(myarray3[k].childNodes.toString());
    							 }//end if 3
    							if (myarray3[k].nodeName == "oggetto"){	// if 4
    							   _root.oggettox.push(myarray3[k].childNodes.toString());
    							 }//end if 4
    							if (myarray3[k].nodeName == "corpo"){	// if 5
    							   _root.corpox.push(myarray3[k].childNodes.toString());
    							   }//end if 5
    							 }// end for 3	
    					}//end if 2
    				}//end for 2
    			}//end if 1
    
    		}//end for 1
    		
    // STAMPO NELLA FINESTRA TEMPORANEA
    		};//end if mioxml.loaded
    trace ("Tot elementi = " + myarray.length);
    
    //ALLEGGERISCO LA CPU :)
    	 delete myarray;
         delete myarray2;
         delete myarray3;
         delete mioxml;
     };
    };
    con relativo documento xml
    codice:
    <lista>
    	<news>
    		<data>01.01.2007</data>
    		<oggetto>Nuovo Anno</oggetto>
    		<corpo>Buon 2007!</corpo>
    	</news>
    	<news>
    		<data>02.01.2007</data>
    		<oggetto>Nuovo Anno</oggetto>
    		<corpo>Buon 2007!</corpo>
    	</news>
    	<news>
    		<data>03.01.2007</data>
    		<oggetto>Nuovo Anno</oggetto>
    		<corpo>Buon 2007!</corpo>
    	</news>
    	<news>
    		<data>04.01.2007</data>
    		<oggetto>Nuovo Anno</oggetto>
    		<corpo>Buon 2007!</corpo>
    	</news>
    	<news>
    		<data>01.01.2007</data>
    		<oggetto>Nuovo Anno</oggetto>
    		<corpo>Buon 2007!</corpo>
    	</news>
    	<news>
    		<data>02.01.2007</data>
    		<oggetto>Nuovo Anno</oggetto>
    		<corpo>Buon 2007!</corpo>
    	</news>
    	<news>
    		<data>03.01.2007</data>
    		<oggetto>Nuovo Anno</oggetto>
    		<corpo>Buon 2007!</corpo>
    	</news>
    	<news>
    		<data>04.01.2007</data>
    		<oggetto>Nuovo Anno</oggetto>
    		<corpo>Buon 2007!</corpo>
    	</news>
    </lista>
    Vi spiego la mia peplessità... se adesso io voglio che vengano visualizzati i valori delle variabili (datax, campox, oggettox in un campo di testo dinamico come potrei fare (tralasciando che devo fare un duplicateMovie per permettere che tutte le news vengano visualizzate)?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    datax, oggettox e campox da quel che vedo sono array.

    Per far riferimento al singolo dato delle tre array,:

    datax[0] sarà uguale a 01.01.2007
    campox[2] sarà uguale a buon anno!, etc

    Creati un movieclip con all'interno tanti campi di testo dinamici quantio te ne servono.
    Dai un nome ai campi dinamici, nelle proprietà (Var: text_anno per esempio)
    A questo punto per visualizzare il valore semplicemente scrivi

    text_anno = datax[0];

    Ultimo consiglio, invece del duplicateMovieclip usa l'attachmovie e cicla per la length di ogni array.

  3. #3
    grazie mille!!
    un'ultima cosa.. per fare la lista delle news (dove ci sarà lo scroll) avevo pensato a un duplicateMovieClip in quanto i campi di testo dinamici si trovano in un mc con nome istanza "riga".
    in pratica vorrei che venisse fuori una cosa del genere:
    -----------------------
    | |
    | NEWS 1 |
    | |
    -----------------------

    -----------------------
    | |
    | NEWS 2 |
    | |
    -----------------------

    -----------------------
    | |
    | NEWS 3 |
    | |
    -----------------------

    .... ecc... quale (codice) e dove dovrei metterlo per fare una roba del genere??
    vi posto il codice da cui ricavo le variabili per i testi dinamici:

    codice:
    for (k=0;k<=myarray3.length;k++){//for 3
    
    	_root.main.riga.var_data = datax[k];
    	_root.main.riga.var_ogg = oggettox[k];
    	_root.main.riga.var_corpo = corpox[k];
    datax, oggettox e corpox sn le array (ved sotto!)

    grazie

  4. #4
    ho provato a fare un duplicate...
    con questo codice:
    _root.main.riga.duplicateMovieClip(_root.main + k, k);

    inserito nel ciclo appena postato..
    ma vengono sovrapposti!!!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Prova a studiarti questo codice e a adattarlo alle tue esigenze.
    Io preferisco usarte l'attachMovie piuttosto che duplicare movieclip già presenti sullo stage.

    Codice PHP:
    for (i=0i<myarray3.lengthi++) {

                
    // Inserisco un movieclip dalla libreria allo stage 
                
    _root.main.attachMovie("clipmsg""clipmsg"+ii);
                
                
    // Attribuisco le coordinate X e Y
                
    _root.main["clipmsg"+i]._x 10
                _root
    .main["clipmsg"+i]._y i*160;
                
                
    // Passo al movieclip le variabili che ho preso dall'XML e messo negli Array
                
    _root.main["clipmsg"+i].var_datadatax[i];
                
    _root.main["clipmsg"+i].var_ogg oggettox[i];         
        } 

  6. #6
    grazie mille,
    ora provo!

  7. #7
    ti posto il .fla va...
    sto andanto in fumo!!!
    grazie ancora!

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Si va in fumo dopo due giorni che si sbatte la testa su un codice, non dopo 9 minuti che si prova.....

  9. #9
    è una settima che ci vado dietro! fino a qualche giorno fa l'xml nn sapevo neanche cosa fosse!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Sarebbe meglio sbattessi la testa finchè ci riesci.

    In ogni caso non ho tempo per vederti il fla..
    Ti prego non prenderla a male o come una cosa personale.

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.