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

    [Flash/XML] Modifica script EnricoLai senza Barranav

    Ciao Ragazzi,
    sto cercando di modificare lo script della guida creata da Enrico Lai sulla gestione dei contenuti di un file XML da flash. In particolare questo script che nella fattispece elenca i dati contenuti in un file xml utilizzando una barra di navigazione (barranav) nel quale poi inserire i clip con i testi presi dal file a cui è lincato.

    Avendo bisogno semplicemente di riportare nel mio filmato 4 nodi di dati (infatti il mio xml contiene solo gli ultimi 4 record del database) sto cercando di eleminare la barra di navigazione e ho scritto in questo modo:

    codice:
    fscommand ("allowscale", "false");
    filexml = "xmlsource.asp";
    paginainiziale="01";
    ApriXML();
       
       function ApriXML () {
      _root.loading = "Connecting to Data Base for XML data...";
     mioxml = new XML();
     myarray = new Array();
     mioxml.load;
     mioxml.onLoad = ElaboraXML;
      function ElaboraXML (success) {
      if (mioxml.loaded) {
       myarray = mioxml.childNodes;
       Dati();
       CreaTabelle();
       delete myarray;
       delete mioxml;
           }
             };
    };
    
       // Funzione che prende i dati XML e li mette in degli Array
       function Dati () {
       // Array che contengono i Dati -----------------------
     idap = new Array();
     dataap = new Array();
     luogoap = new Array();
       // ---------------------------------------------------
      for (k=0; k<=myarray.length; k++) {
       if (myarray[k].nodeName == "appuntamento") {
       idap.push(myarray[k].attributes.id);
      } else if (myarray[k].nodeName == "data") {
       dataap.push(myarray[k].childNodes.toString());
      } else if  (myarray[k].nodeName == "luogo") {
       luogoap.push(myarray[k].childNodes.toString());
      } 
              };
       };
    
       // Funzione che Crea i clip 
       // e li posiziona sullo stage del filmato
       function CreaTabelle () {
     // Parametri utilizzati per gestire lo scroll di barranav tramite il cursore di scrolling
     thecounter = 0;
      //---------------------------------------------------------------------------------------
      for (i=0; i<idap.length; i++) {
    _root.attachMovie("clipmsg", "clipmsg"+i, i);
       // Attribuisco la coordinata X e Y
       _root["clipmsg"+i]._x = 10
       _root["clipmsg"+i]._y = 25+i*45;
       // Passo al clip le variabili che ho preso dall'XML e messo negli Array
       _root["clipmsg"+i].idap = idvolo[i];
       _root["clipmsg"+i].dataap = hpartenza[i];
       _root["clipmsg"+i].luogoap = harrivo[i];
    
     };
    };
    Ma manco a farlapposta sul mio filmato swf non visualizzo nulla ... anche perchè probabilmente non mi è chiarissima nemmeno la creazione del filmato clipmsg che ho inserito nella libreria, esportato per Actionscript con il nome clipmsg e al cui interno ho inserito un campo di testo dinamico chiamato ancora una volta clipmsg ... ammesso che questo sia giusto perchè dal tutorial la creazione di questo clip non è proprio chiarissima!

    Dove sbaglio?
    Help!!


  2. #2
    ma se nn ti serve la scroll...semplicemente la potresti cancellare...anche se nel tuo caso l'es successiove quello con la paginazione fa al caso tuo

    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    Beh si infatti io ho cancellato la barranav, scrivendo così:
    codice:
    fscommand ("allowscale", "false");
    filexml = "xmlsource.asp";
    paginainiziale="01";
    ApriXML();
       
       function ApriXML () {
      _root.loading = "Connecting to Data Base for XML data...";
     mioxml = new XML();
     myarray = new Array();
     mioxml.load;
     mioxml.onLoad = ElaboraXML;
      function ElaboraXML (success) {
      if (mioxml.loaded) {
       myarray = mioxml.childNodes;
       Dati();
       CreaTabelle();
       delete myarray;
       delete mioxml;
           }
             };
    };
    
       // Funzione che prende i dati XML e li mette in degli Array
       function Dati () {
       // Array che contengono i Dati -----------------------
     idap = new Array();
     dataap = new Array();
     luogoap = new Array();
       // ---------------------------------------------------
      for (k=0; k<=myarray.length; k++) {
       if (myarray[k].nodeName == "appuntamento") {
       idap.push(myarray[k].attributes.id);
      } else if (myarray[k].nodeName == "data") {
       dataap.push(myarray[k].childNodes.toString());
      } else if  (myarray[k].nodeName == "luogo") {
       luogoap.push(myarray[k].childNodes.toString());
      } 
              };
       };
    
       // Funzione che Crea i clip 
       // e li posiziona sullo stage del filmato
       function CreaTabelle () {
     // Parametri utilizzati per gestire lo scroll di barranav tramite il cursore di scrolling
     thecounter = 0;
      //---------------------------------------------------------------------------------------
      for (i=0; i<idap.length; i++) {
    _root.attachMovie("clipmsg", "clipmsg"+i, i);
       // Attribuisco la coordinata X e Y
       _root.["clipmsg"+i]._x = 10;
       _root.["clipmsg"+i]._y = 25+i*45;
       // Passo al clip le variabili che ho preso dall'XML e messo negli Array
       _root.["clipmsg"+i].dataap = idvolo[i];
       _root.["clipmsg"+i].luogoap = hpartenza[i];
     };
    };
    Ma sul mio swf cmq non si vede il contenuto dell'XML!

  4. #4
    alora la funz creatabelle l'avevi scritta bene prima... -->>_root["clipmsg"+i].dataap = hpartenza[i];
    senza punto prima della parentesi quadra

    Codice PHP:
    function CreaTabelle () {
     for (
    i=0i<idap.lengthi++) {
    _root.attachMovie("clipmsg""clipmsg"+ii);
       
    // Attribuisco la coordinata X e Y
       
    _root["clipmsg"+i]._x 10
       _root
    ["clipmsg"+i]._y 25+i*45;
       
    // Passo al clip le variabili che ho preso dall'XML e messo negli Array
       
    _root["clipmsg"+i].idap idvolo[i];
       
    _root["clipmsg"+i].dataap hpartenza[i];
       
    _root["clipmsg"+i].luogoap harrivo[i];

     };
    }; 
    il fatto è che devi vedere se i dati li leggi..metti qualche trace nella funzione Dati() e controlla che vengano letti

    oppure semplicemente nella funzione creatabelle controlla che l'array lo vede almeno la lunghezza
    Codice PHP:
    function CreaTabelle () {
    trace("lunghezza array"+idap.length)
     for (
    i=0i<idap.lengthi++) {
    _root.attachMovie("clipmsg""clipmsg"+ii);
       
    // Attribuisco la coordinata X e Y
       
    _root["clipmsg"+i]._x 10
       _root
    ["clipmsg"+i]._y 25+i*45;
       
    // Passo al clip le variabili che ho preso dall'XML e messo negli Array
       
    _root["clipmsg"+i].idap idvolo[i];
       
    _root["clipmsg"+i].dataap hpartenza[i];
       
    _root["clipmsg"+i].luogoap harrivo[i];

     };
    }; 
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    forse ho trovato un errore nello script:
    codice:
    mioxml.load->mioxml.load(filexml);
    Dopo averlo inserito il trace che mi hai consigliato mi dice:
    codice:
    lunghezza array4
    questo tracciando solo l'array idap mentre controllanfo dataap e luogoap ottengo:
    codice:
    lunghezza array0
    Non è che sbaglio qualcosa nel caching del mio XML che è fatto così?
    codice:
    <appuntamento id="4">
    <data>14.06.2007</data>
    <luogo>Testo Numero 4</luogo>
    </appuntamento>
    <appuntamento id="3">
    <data>24.05.2007</data>
    <luogo>Testo Numero 3</luogo>
    </appuntamento>
    <appuntamento id="2"><data>21.05.2007</data>
    <luogo>Testo Numero 2</luogo>
    </appuntamento>
    <appuntamento id="1">
    <data>11.05.2007</data>
    <luogo>Testo Numero 1</luogo>
    </appuntamento>
    non ci sto capendo troppo!

  6. #6
    forse l'errore sta proprio nel xml
    prova con questo

    <appuntamento id="4"/>
    <data>14.06.2007</data>
    <luogo>Testo Numero 4</luogo>
    <appuntamento id="3"/>
    <data>24.05.2007</data>
    <luogo>Testo Numero 3</luogo>
    <appuntamento id="2"/><data>21.05.2007</data>
    <luogo>Testo Numero 2</luogo>
    <appuntamento id="1"/>
    <data>11.05.2007</data>
    <luogo>Testo Numero 1</luogo>

    anche se poi alla fine doveva cmq attaccarti sulloo stage i clip ...conescendo la lunghezza del primo array
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  7. #7
    Il trace degli array funziona prefettamente però i clip non vengono cmq attaccati sullo stage ... non capisco proprio perchè! :master:

    Ti ho inviato un PM ... scusa l'invadenza e naturalmente grazie!

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.