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

    Problema variabili esterne ed if

    Ciao a tutti.

    Devo chiedere il vostro immenso aiuto per un problema che mi pare impossibile!!

    Allora io voglio che il mio filmato principale in base ad una variabile presa da un txt esterno, apra oppure no un filmato esterno.

    La semplice struttura del txt, chiamato Start.txt, è così:

    &iniz=prima

    Nel primissimo frame del filmato principale ho scritto questo codice:

    codice:
    stop();
    wizard=new LoadVars();
    wizard.onLoad=function (success){
      if (iniz==prima){
        loadMovieNum("Filmato2.swf", 1);
      }else{
       gotoAndStop(2);
      }
    }
    wizard.load("Start.txt");
    Il problema è che anche se cambio la variabile nel file txt (es. &iniz=fine), il codice mi carica sempre il filmato2 esterno.

    Come mai? Quale può essere il problema?
    A me il codice sembra giusto!!

    Grazie per le vostre risposte, sperando che mi sia spiegato bene.

    Saluti
    L'uomo inciampa per imparare a rialzarsi.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    iniz e prima per come hai scritto, sono entrambe due variabili ed entrambe sono "undefined", perciò la condizione è sempre verificata

    secondo la tua richiesta e il codice, tu devi verificare che la variabile "iniz" contenuta nell'oggetto LoadVars esista e sia uguale alla stringa "prima"

    intanto ricorda che la sintassi di onLoad del LoadVars prevede un if...else per verificare che il file txt esterno venga caricato, quindi


    var myLoadVars = new LoadVars();
    myLoadVars.onLoad = function(success){
    if(this.loaded){
    // caricato
    } else {
    // non caricato
    }
    }
    myLoadVars.load("file.txt");


    detto questo, passiamo a vedere come deve essere scritta la condizione per funzionare

    if(this.iniz == "prima")

    ecco qui, questo è il codice corretto, dentro l'onLoad il this è riferito all'oggetto LoadVars e la variabile esterna deve essere riferita appunto a questo oggetto, poi la verifica deve essere fatta su di una stringa, che quindi deve essere contenuta dalle virgolette

    Codice PHP:
    stop();
    wizard=new LoadVars();
    wizard.onLoad=function (success){
      if(
    this.loaded){
        if (
    this.iniz == "prima"){
          
    loadMovieNum("Filmato2.swf"1);
        }else{
         
    gotoAndStop(2);
        }
      } else {
        
    trace("errore");
      }
    }
    wizard.load("Start.txt"); 
    un'ultima cosa, se vuoi che quando modifichi il txt, questo non crei problemi con la cache, devi forzarne ogni volta il caricamento e lo fai sostituendo il load in questo modo

    wizard.load("Start.txt?r="+random(999999));

  3. #3
    Grandissimo, funziona alla grande.

    Grazie tanto anche per la spiegazione iniziale, mi è servito.

    E' proprio vero che nn si finisce mai di imparare!!!

    Terrò presente anche il consiglio dei problemi che posso riscontrare nella cache con i txt.

    Grazie ancora.

    Ciao
    L'uomo inciampa per imparare a rialzarsi.

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.