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

    un menu difettoso (script di wait, immagini a scomparsa)

    Vorrei sottoporvi un filmato che ho realizzato per aggirare un problema, ma che non si è rivelato esente da difetti.

    Il problema iniziale:
    ho un menu in flash composto da più di due bottoni, e alla pressione di questi bottoni voglio che scompaia un'immagine all'interno del filmato, e ne compaia una appropriata al link appena cliccato.
    In sostanza se clicco il bottone 2 deve comparire l'immagine 2, e così via.
    Il problema è far uscire, con una animazione, l'immagine attualmente visualizzata.

    La mia soluzione:
    ho creato 2 contenitori: A che contiene B, e nella cui timeline c'è l'animazione in cui B scompare dietro a una maschera; e B , che contiene le immagini, e le relative animazioni.
    Alla pressione di un bottone si attiva subito l'animazione di uscita di B (che rientra subito), e dopo un tempo prestabilito (1 secondo) si attiva l'animazione di ingresso dell'immagine all'interno di B, appena ricomparso dentro A.

    Funziona, ma si presentano due difetti non trascurabili:
    1. a volte dopo l'uscita di B con l'immagine al suo interno, e prima che l'immagine rientri, B ricompare con l'immagine vecchia al suo interno per un fotogramma o due; problema probabilmente attribuibile all'impossibilità di temporizzare perfettamente l'animazione, e che per ora non sono riuscito ad aggirare;
    2. ben più grave: se si clicca velocemente più volte lo stesso bottone, l'immagine ad esso associata 'impazzisce', e ripete all'infinito la propria animazione senza possibilità di fermarla se non chiudendo il filmato.

    Potete offrirmi qualche idea per ovviare a questi difetti? Magari sostituendo il metodo della temporizzazione con uno più affidabile.

    Potete vedere un esempio del filmato in questione, e scaricarne il sorgente, qui: http://wes.altervista.org/menu_pausa/
    Lo script relativo ai bottoni è il seguente:

    codice:
    on (release) {
    _root.cont_ext.gotoAndPlay("esce_img");
    
    var Aspetta = 1000
    function wait(){
    _root.cont_ext.cont_int.gotoAndPlay("entra_1");
    clearInterval(afterAspetta);
    }
    
    var afterAspetta=setInterval(wait,Aspetta);
    stop();	
    }
    Nota:
    cont_ext = A
    cont_int = B

    Vi ringrazio per ogni aiuto che potrete offrirmi.


    SB

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Prima cosa, rimuovi sempre l'interval prima di settarlo di nuovo:

    codice:
    on (release) {
    	_root.cont_ext.gotoAndPlay("esce_img");
    	var Aspetta = 1000;
    	function wait(){
    		_root.cont_ext.cont_int.gotoAndPlay("entra_1");
    		clearInterval(afterAspetta);
    	}
    	clearInterval(afterAspetta);
    	afterAspetta=setInterval(wait,Aspetta);
    	stop();	
    }

  3. #3
    Originariamente inviato da negatyve
    Prima cosa, rimuovi sempre l'interval prima di settarlo di nuovo
    Giusto
    Grazie negatyve, questo risolve il problema numero 2, che come dicevo era molto grave.
    Resta da aggiustare la temporizzazione :master:

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.