Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178

    swf.onload = function... ovvero eseguire quando è caricato un certo elemento

    il problema stavolta è una questione di timing...
    nella mia pagina index sono presenti un logo swf(7kb) e un preload java centrati nella pagina, voglio fare in modo che il preload appaia e vada in esecuzione un attimo prima che termina il fade-in del logo.

    sapendo la durata dell'animazione(circa 1sec e mezzo) ho impostato le istruzioni per la partenza come segue :
    codice:
    setTimeout("fade('bg')",1050);
    setTimeout("fade('bar')",1050);
    setTimeout("fade('loadER')",1050);
    setTimeout("startLoading()",1500);
    le prime due fanno comparire la barra di background del preload e la barra di avanzamento che viene aggiornata e incrementata dallo script, la terza è la gif stile "youtube" per far capire che il caricamento è in corso, la quarta fà partire effettivamente il caricamento delle immagini un attimo dopo che è completato il fade-in dei tre elementi sopra(400 millisecondi), ho inserito queste dentro la seguente funzione :
    codice:
    window.onload= function() {
    i 4 timeout
    }
    il problema è proprio il window.onload...l'istruzione entra in esecuzione solo quando tutti gli elementi della pagina sono stati caricati, la cosa può durare anche 3 secondi, dopo subentrano i timeout, con un attesa complessiva per l'apparizzione di 4 secondi e qualcosa, la velocità invece diminuisce drasticamente effettuando il refresh della pagina facendo partire i timeout troppo in fretta(in relazione al tempo specificato negli stessi, quindi un secondo dopo)

    vorrei invece che le istruzioni(e quindi i timeout) venissero letti ed eseguiti non appena viene terminato il download del file swf del mio logo, in modo da poter gestire liberamente e in sincrono il timing del logo e del preload...come posso mettere questa istruzione?
    è troppo impegnativo...

  2. #2
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178
    non c'è proprio modo per verificare che un swf è stato caricato ed usare quell'evento onload per azionare una serie di istruzioni?
    è troppo impegnativo...

  3. #3
    Prova a fare la stessa domanda nella pagina dedicata al flash, e chiedi se è possibile chiamare una funzione JS da una flash application.

  4. #4
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178
    problema risolto, ho trovato la soluzione quì : http://blog.codefidelity.com/?p=15

    ho inserito "getURL("javascriptreFIRE()");" nell'actionscript del primo frame del filmato, in questo modo appena inizia il play del flash viene richiamata la funzione contenente i 4 time out, ora posso controllare i timing di entrambi in sincrono a mio piacimento...
    è troppo impegnativo...

  5. #5
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178
    ultima domandina riguardo java e poi credo di aver risolto proprio tutti i problemi di tipo tecnici...
    nella pagina index firebug mi segnala i seguenti problemi di nomenclatura(non conformi a standard W3C) :



    quindi dovrei sostituire questo
    codice:
    loadER.style.visibility = 'hidden';
    con questo
    codice:
    getElementById(loadER).style.visibility = 'hidden';
    e così via, se però apporto le modifiche consigliate non funziona più niente...devo quindi ignorare la segnalazione oppure ho messo la sintassi sbagliata?
    è troppo impegnativo...

  6. #6
    ma che contiene loadER?

  7. #7
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178
    è il div a destra della barra di preload che contiene(come sfondo via css, che quindi posso cambiare con lo switch) la gif di precaricamento col pallino rotante
    è troppo impegnativo...

  8. #8
    no, non mi sono spiegato... loadER è un oggetto di tipo Element, ok, ma come lo ottieni?

  9. #9
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178
    mhh, non credo di aver specificato il modo in cui ottenerli, ho visto che nella funzione updateBar c'è alla riga 93 una condizione che verifica se è stato caricato tutto e quindi inseriva un elemento html nel div doneMsg, allora ho provato a mettere di seguito gli elementi di cui volevo cambiare la visibilità a caricamento effettuato(98 a 103) imitando la sintassi di sopra(riga 95) e ha funzionato, altro non sò...
    è troppo impegnativo...

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    getElementById("loadER").style.visibility = 'hidden';
    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

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.