Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    26

    HTML evento timeOut con SWF

    Buongiorno a tutti.
    Mi ritrovo in questa situazione: ho utilizzato un software che si chiama "flashificator" per creare dei percorsi virtuali tra immagini a 360°. Quando pubblico il progetto questo software crea un file index.html e una cartella "file" con dentro alcuni swf e tutti i file multimediali che ho utilizzato (immagini, foto dei VR ecc.). Eseguo index.hml con il browser e parte tutto perfettamente.
    Se nessuno utilizza l'applicazione per 5 minuti, vorrei partisse un loop di attesa che invita gli utenti a cliccare sullo schermo. Cliccando sullo schermo, si ritorna al file index.html e all'applicazione.

    Ho immaginato di creare 2 funzioni, un setTimeout e clearTimeout in modo che, caricando il file index.html parta un conto alla rovescia, al termine del quale, la pagina carica un link con la clip swf del loop di attesa.

    Ho provato a creare questo evento con un codice del tipo:

    var mioTempo;
    function contatoreVia()
    {
    mioTempo=setTimeout(function(){alert("Hello")},300 0);
    }

    function contatoreStop()
    {
    clearTimeout(mioTempo);
    }

    volevo creare un evento "onload" che faccia partire la funzione "contatoreVia" e un evento "onMouseMove" che mandi in continuazione la funzione "contatoreStop".

    Volevo... ma non sono riuscito a fare nulla!
    Per inciso devo dire che il file index.html che esegue l'swf con dentro tutto il mio percorso è a fullscreen. E che non posso creare del codice nell'swf perchè non lo genero io ma è una roba compilata dal software flashificator, quindi me lo tengo così com'è.

    Avete qualche idea in proposito?
    Grazie in anticipo!!

    Paolo

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    26
    Allora, aggiornamenti:
    sono riuscito ad arrivare al 90% della soluzione.

    ho creato un evento setTimeout che ricarica tutta la pagina.
    Questo evento è onload sul body. Appresso, sempre nel body, ho un evento onmousemove.
    l'evento onload è il setTimeOut così configurato:
    myVar=setTimeout(function(){window.location.href = "../nuovo_link_locale.html"},5000);

    mentre il clearTimeout è così:
    clearTimeout(myVar);

    Ora... tutto funziona su Opera, Safari e Chrome... ma non funziona su IE8, browser che devo necessariamente utilizzare. Non sembra registrare il setTimeout...
    Avete qualche idea?

    Grazie!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    26
    Ok... aggiornamento.
    IE8 mi dice che l'errore è alla riga in cui ho:
    <body onload="myFunction()" onmousemove="DumpInfo(event)">

    dove "myFunction" è:
    var myVar;

    function myFunction()
    <script>
    {
    myVar=setInterval(function(){window.location.href = "../link_locale.html"},5000);
    }

    e quel DumpInfo(event) è:
    function myStopFunction()
    {
    clearTimeout(myVar);
    myFunction();
    }
    </script>

    <script type="text/javascript">
    function DumpInfo (event) {
    myStopFunction();
    }
    </script>

    Secondo voi, perchè IE 8 mi identifica l'errore su: <body onload="myFunction()" onmousemove="DumpInfo(event)"> ???

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ma che ci fa <script> dentro a myFunction() ?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    26
    pardon, errore di copia e incolla. Il pezzo in questione, alla sua ultima versione, è:

    <script>
    var myVar;

    function myFunction()
    {
    myVar=setInterval(function(){window.location.href = "../link_locale.html"},5000);
    }

    function myStopFunction()
    {
    clearTimeout(myVar);
    myFunction();
    }

    function DumpInfo (event)
    {
    myStopFunction();
    }
    </script>

    e su <body onload="myFunction" onmousemove="DumpInfo">

    Funziona bene su Chrome ma non su IE8 che mi riporta un errore su <body ........>


  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    26
    Continua la mia solitaria ricerca della verità
    A questo punto sono arrivato ad una parziale soluzione. Ho sostituito:

    <body onload="myFunction" onmousemove="DumpInfo(event)">... </body>

    con

    <body onload="myFunction" ontouchmove ="DumpInfo(event)">... </body>

    e sono arrivato ad un passo dalla soluzione! Adesso funziona anche IE8 ma rimane un solo ultimissimo problema, per il quale chiedo l'aiuto del Forum:
    Dato il codice che ho postato ieri, l'evento setInterval oppure setTimeout, così come li ho inseriti, risentono di un problema: non si resettano. Nel senso che la funzione clearTimeout "interrompe" il conto alla rovescia che però poi riparte da dove si era interrotto.
    Come faccio a resettare il mio setTimeout (o il mio setInterval) in modo che ogni volta che tocco lo schermo e poi tolgo il dito, il conteggio riparta da capo?

    Fatevi avanti che questa è facile!

    Grazie

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Ma se usi setInterval dovrai poi usare clearInterval se usi setTimeout dovrai usare clearTimeout tu li stai mescolando non so se questa cosa è ininfluente
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    26
    Ciao,

    in giro pare che sia la stessa cosa, ma per sicurezza faccio una prova con setInterval e clearInterval.
    Ti dico che con setTimeout e clearTimeout non funziona. Cioè, funziona come ti ho detto: il tempo non viene resettato ma solo sospeso.

    Provo e ti dico, 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 © 2024 vBulletin Solutions, Inc. All rights reserved.