Visualizzazione dei risultati da 1 a 5 su 5

Discussione: pulsante + getTimer()

  1. #1
    Utente bannato
    Registrato dal
    Apr 2001
    Messaggi
    132

    pulsante + getTimer()

    Ciao,
    Ho un MC_pulsante sullo stage a cui ho associato su un keyframe vuoto le seguenti azioni per la comparsa di MC1:

    Codice PHP:
    pulsante.onPress = function(){
        
    _root.MC1.gotoAndPlay("r1");
    }

    r1 è la label che insieme ad r2 descrive ripettivamente la comparsa e la scomparsa di MC1 sullo stage.
    L'uscita dopo 5 secondi l'ho pensata portando l'MC1 sullo stage e sul suo unico frame ho inserito:

    Codice PHP:
    onLoad = function () {
    tempo getTimer();
    };
    onEnterFrame = function () {
    if (
    getTimer()-tempo>5000) {
    _root.MC1.gotoAndPlay("r2");
    }

    MC1 si porta sì sulla seconda label, ma ne rimane bloccato, come se ci fosse un comando stop();

    ho provato sostituendo:

    Codice PHP:
    _root.MC1.gotoAndPlay("r2"); 
    con

    Codice PHP:
    _root.MC1.play(); 
    a questo punto MC1 va in loop senza tener conto delle azioni di stop() che ho inserito in prossimità delle labels (r1,r2)

    Non capisco dove sbaglio, me lo dareste un piccolo suggerimento?
    grazie e ciao!

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,776
    Ciao..

    MC1 si porta sì sulla seconda label, ma ne rimane bloccato, come se ci fosse un comando stop();
    Questo comportamento, da quanto hai scritto, è più che giusto perchè la funzione onEnterFrame che hai dichiarato viene sempre considerata anche dopo che MC1 si porta sul frame "r2".

    Infatti la condizione indicata
    codice:
    if (getTimer()-tempo>5000) {
    _root.MC1.gotoAndPlay("r2");
    }
    ... una volta resa vera, porterà "ripetutamente" MC1 sul frame "r2", a prescindere dall'azione gotoAndPlay.

    Analogamente con questa azione
    codice:
    _root.MC1.play();
    sarà eseguito ripetutamente il play che farà "saltare" gli eventuali stop presenti nella time-line.

    Una soluzione potrebbe essere quella di eliminare la funzione onEnterFrame una volta verificata la condizione, ad esempio in questo modo:

    codice:
    onEnterFrame = function () {
    if (getTimer()-tempo>5000) {
    _root.MC1.gotoAndPlay("r2");
    delete onEnterFrame
    }
    }
    Però a mio parere il metodo che hai utilizzato non è tanto pulito.
    Ti consiglierei l'utilizzo del setInterval per creare delle temporizzazioni in modo più preciso.

    Eventualmente consulta la guida in linea di Flash o cerca l'argomento sul forum, sicuramente è stato già discusso varie volte.

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente bannato
    Registrato dal
    Apr 2001
    Messaggi
    132
    grazie Killer...
    vedo cosa riesco a fare con quello che ho già in mano e con quello che mi hai suggerito...

    grazie mille,a presto!

  4. #4
    Utente bannato
    Registrato dal
    Apr 2001
    Messaggi
    132
    risolto utilizzando come mi hai suggerito il setInterval + clearInterval.
    grazie davvero!

  5. #5
    Utente bannato
    Registrato dal
    Apr 2001
    Messaggi
    132
    altro problema...

    una volta aperto il sottomenù con l'apposito pulsante(1) vorrei farla chiudere (la stessa parte di animazione che avviene dopo tot secondi) cliccando semplicemente su un altro pulsante(2) del menù principale. ovviamente se il sottomenù non è ancora comparso non accadrà nulla!!

    lo so che è una ca***ta ma ho troppe ore di sonno arretrate!!!
    spero possiate aiutarmi!

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.