Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Menu con voci xml

  1. #1

    Menu con voci xml

    Salve a tutti,

    sto cercando di creare un menu che carica le voci da xml ma ho qualche problema.

    Innanzitutto ho creato un xml con nome "dati.xml":

    <?xml version="1.0" encoding="iso-8859-1"?>
    <portfolio>
    <lavoro nome="Cara mamma"></lavoro>
    <lavoro nome="Caro babbo"></lavoro>
    <lavoro nome="Cara zia"></lavoro>
    </portfolio>

    nome è attributo di lavoro perchè poi dovrò inserire altre variabili ed estrarle dall'xml e quindi questa sruttura è solo temporanea. Il valore stringa di lavoro per intenderci sarà qualcos'altro...

    poi ho creato il mio file in flash, ho creato un movieclip che contiene un campo dinamico il moviecli si chiama "campo" ed concatenato al nome per actionscript in modo che posso caricarlo dalla libreria, il campo dinamco ha impostato come variabile "dati".

    Sulla _root principale ho messo questo codice:

    filexml = "dati.xml";
    ApriXML();
    function ApriXML () {
    mioxml = new XML();
    myarray = new Array();
    mioxml.load(filexml);
    mioxml.onLoad = ElaboraXML;
    function ElaboraXML (success) {
    if (mioxml.loaded) {
    myarray = mioxml.firstChild.nextSibling.childNodes;
    for (i=0;i<=myarray.length;i++){
    if (myarray[i].nodeName == "lavoro"){
    _root.campoNew.dati = myarray[i].attributes.nome;
    _root.attachMovie("campo","campoNew",i,{_x:50,_y:1 0*i});
    }
    }
    };
    };
    };

    Risultato: Mi carica tre campi di testo dinamici che però hanno tutti lo stesso testo ovvero "cara zia".

    Ho pensato che la variabile può contenere un solo dato quindi il campo prende l'ultimo dato caricato dal ciclo nella variabile dati.

    Come potrei fare per ottenere tre voci differenti?

    grazie anticipatamente a chi mi risponderà

  2. #2
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    fai un trace dentro il ciclo for e vedi che ti esce...

    Codice PHP:
    if (myarray[i].nodeName == "lavoro"){
    trace(myarray[i].attributes.nome);
    _root.campoNew.dati myarray[i].attributes.nome;
    _root.attachMovie("campo","campoNew",i,{_x:50,_y:10*i});

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  3. #3
    il trace mi da output:

    Cara mamma
    Caro babbo
    Cara zia

    quindi da i tre valori dell'xml come sarebbe giusto.

    credo che il problema sia che con il ciclo la variabile "dati" prende i tre valori uno alla volta
    (ovvero il ciclo butta fuori prima "cara mamma" poi "caro babbo" e poi "cara zia") essendo "cara zia" l'ultimo valore, questo rimane caricato nei tre movieclip "campo" perchè hanno tutti e tre la variabile "dati" per il campo dinamico.

    Forse dovrei mettere nel movieclip "campo":

    dati = myarray[i].attributes.nome;
    ma temo non funzioni essendo il movie clip fuori dal ciclo...

    magari sto dicendo un eresia... :master:

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.