Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 39
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    60

    LoadMovie....dannato LoadMovie

    Salve ragazzi ho un piccolo problema :
    Ho un file XML (vendite.xml) contente delle informazioni eccolo :

    <?xml version="1.0" encoding="UTF-8"?>
    <dataroot xmlnsd="urn:schemas-microsoft-comfficedata">
    <vendo>
    <ID>1</ID>
    <Nome_proprietario>Angelo</Nome_proprietario>
    <Cognome_proprietario>Zuffianò</Cognome_proprietario>
    <Zona>Centro</Zona>
    <Via>Achille Grandi</Via>
    <Telefono>0831/508532</Telefono>
    <Metriq>230</Metriq>
    <Prezzo>100000</Prezzo>
    <Tipo_Immobile>Appartamento</Tipo_Immobile>
    <Garage>1</Garage>
    <Posto>0</Posto>
    <Vani>6</Vani>
    <Accessori>1</Accessori>
    <Piano>Secondo</Piano>
    <Riscaldamento>Autonomo</Riscaldamento>
    <giardino>1</giardino>
    <foto>rova</foto>
    </vendo>
    </dataroot>

    ..a me interessa caricare in una variabile il nome della foto presente nel nodo "foto" del file xml e attraverso un loadMovie in flash caricare tale immagine in un movie clip. Al primo frame di un layer ho inserito questo codice (ActionScript) :

    urlXML = new XML();
    urlXML.onLoad = convertXML;
    urlXML.load("vendite.xml");
    function convertXML () {
    mainTag = new XML();
    elementTag = new XML();
    articleList = new Array();
    elementList = new Array();
    mainTag = this.firstChild.nextSibling;
    if (mainTag.nodeName.toLowerCase() == "dataroot") {
    articleList = mainTag.childNodes;
    foto = new Array();
    for (i=0; i<=articleList.length; i++) {
    if (articleList[i].nodeName.toLowerCase() == "vendo"){
    elementList = articleList[i].childNodes;
    for (j=0; j<=elementList.length; j++) {
    elementTag = elementList[j];
    elementType = elementTag.nodeName.toLowerCase();
    if (elementType == "foto") {
    _root.foto.push(elementTag.firstChild.nodeValue);
    }
    }
    }
    }
    }
    d = 0;
    while (d<=foto.length) {
    prima+=foto[d];
    ++d;
    }
    }
    dopo=prima+".jpg";
    _root.foto1.loadMovie(dopo);

    ..il problema è nel fatto che nella variabile "dopo" al termine del seguente codice non è contenuta la stringa "rova.jpg" bensì solo ".jpg" come se ignorasse la stringa caricata dal file XML e per questo non mi carica nemmeno l'immagine nel movie !

    AIUTATEMI VI PREGO STO IMPAZZENDO DA GIORNI PER QUESTA COSA !!!!

  2. #2
    while (d<=foto.length) {
    prima+=foto[d];
    ++d;
    }


    credo che qui ci sia un'errore.
    Se facciamo un ipotesi che l'array contiene 3 oggetti

    questo ciclo riempirebbe la variabile "prima" in questo modo:
    foto0foto1foto2


    quindi:

    dopo=prima+".jpg";

    sarebbe foto0foto1foto2.jpg


    cmq per risolvere il problema prova così:
    while (d<=foto.length) {
    prima+=foto[d];
    ++d;
    }
    }
    prima = string(prima)
    dopo=prima+".jpg";
    _root.foto1.loadMovie(dopo);


    ripeto cmq c'è l'errore sul nome della foto che non acquiscisce l'estensione jpg
    -Raia Riccardo-
    Un forumello gnocco
    La vita è strana per questo bella

    non ero moderatore quando zork era un alcolizzato

  3. #3
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    nel load devi inserire un if che verifica se è stato scaricato il tutto, a quel punto eseguire la funzione e l'ultima parte dello script deve avvenire solo dopo che anche questa funzione era stata eseguita

    ho provato così e il trace mi da rova.jpg (importante: le jpg non devono essere progressive se no non te le caricarebbe comunque)

    urlXML = new XML();
    urlXML.path=this
    urlXML.onLoad = function(success){
    if(success){
    this.path.convertXML();
    }
    }
    urlXML.load("vendite.xml");
    function convertXML () {
    mainTag = new XML();
    elementTag = new XML();
    articleList = new Array();
    elementList = new Array();
    mainTag = urlXML.firstChild.nextSibling;
    if (mainTag.nodeName.toLowerCase() == "dataroot") {
    articleList = mainTag.childNodes;
    foto = [];
    for (i=0; i<=articleList.length; i++) {
    if (articleList[i].nodeName.toLowerCase() == "vendo"){
    elementList = articleList[i].childNodes;
    for (j=0; j<=elementList.length; j++) {
    elementTag = elementList[j];
    elementType = elementTag.nodeName.toLowerCase();
    if (elementType == "foto") {
    foto.push(elementTag.firstChild.nodeValue);
    }
    }
    }
    }
    carica()
    }
    function carica(){
    d = 0;
    while (d<=foto.length) {
    prima+=foto[d];
    ++d;
    }
    }
    dopo=prima+".jpg";
    trace(dopo)
    }
    _root.foto1.loadMovie(dopo);

  4. #4
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    Originariamente inviato da chisono
    while (d<=foto.length) {
    prima+=foto[d];
    ++d;
    }

    credo che qui ci sia un'errore.
    Se facciamo un ipotesi che l'array contiene 3 oggetti

    questo ciclo riempirebbe la variabile "prima" in questo modo:
    foto0foto1foto2
    sì giustissimo, se ci sono più foto ti da un risultato sballato, devi prenderti solo l'elemento dell'array foto che ti serve

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    60
    Grazie mille...provo immediatamente !

  6. #6
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    aspetta, il trace lo fa ma la foto non la carica neanche dopo che prima è stata trasformata in string

    vediamo che altro si deve fare

  7. #7
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    sarò deficente? avevo messo il loadmovie fuori della funzione

    così carica la foto correttamente

    urlXML = new XML();
    urlXML.path = this;
    urlXML.onLoad = function(success) {
    if (success) {
    this.path.convertXML();
    }
    };
    urlXML.load("vendite.xml");
    function convertXML() {
    mainTag = new XML();
    elementTag = new XML();
    articleList = new Array();
    elementList = new Array();
    mainTag = urlXML.firstChild.nextSibling;
    if (mainTag.nodeName.toLowerCase() == "dataroot") {
    articleList = mainTag.childNodes;
    foto = [];
    for (i=0; i<=articleList.length; i++) {
    if (articleList[i].nodeName.toLowerCase() == "vendo") {
    elementList = articleList[i].childNodes;
    for (j=0; j<=elementList.length; j++) {
    elementTag = elementList[j];
    elementType = elementTag.nodeName.toLowerCase();
    if (elementType == "foto") {
    foto.push(String(elementTag.firstChild.nodeValue)) ;
    }
    }
    }
    }
    }
    carica();
    }
    function carica() {
    prima = foto[0];
    dopo = prima+".jpg";
    _root.foto1.loadMovie(dopo);
    }

  8. #8
    loadMovie(dopo,"foto1");


    :quote:

    invece di

    _root.foto1.loadMovie(dopo);
    -Raia Riccardo-
    Un forumello gnocco
    La vita è strana per questo bella

    non ero moderatore quando zork era un alcolizzato

  9. #9
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    no è lo stesso

    anch'io preferisco come dici tu, ma funziona anche in quella maniera

    anche

    foto1.loadMovie(dopo)

    va se la funzione sta sulla _root

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    60
    Si in effetti con la vecchia versione anche a me non funzionava e stavo cercando di capirne il motivo, ora provo così e ti faccio sapere Storm !!! Grazie mille.

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.