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

    Animazione di un bottone flash BLOCCATA dopo il click

    Sale a tutti,
    ho un problema che mi sta facendo impazzire: ho un semplice bottone flash, con una semplice animazione al passaggio del mouse.
    Il mio problema è che, una volta inserito in una pagina html, e una volta cliccato, il bottone mi rimane bloccato come se ci fosse ancora il mouse sopra.

    Potete vedere il bottone in questione a questo indirizzo:

    http://fabrizioborgia.altervista.org/

    è il secondo bottone a sinista partendo dall'alto (quello di salvataggio), provate a cliccarlo, poi chiudete il popoup, e vedrete che l'animazione rimane bloccata, qualche idea?

    Vi allego anche il codice actionscript nel pulsante flash...non si sa mai

    import flash.net.*;
    import flash.external.*;

    BTN.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
    function mouseDownHandler(event:MouseEvent):void {
    ExternalInterface.call("c_Save()");
    }

  2. #2
    ehm....nessuno si è trovato ad avere questo problema o sa come risolverlo?

    Proviamo a girare la domanda, come si forza in ActionScript un pulsante flash a tornare al suo stato normale?? potrei risolvere così?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Dipende da come è fatto un pulsante, solitamente è un clip filmato composto da almeno due frame che al rollover o al press passa al secondo fotogramma, quindi per farlo tornare allo stato su basta mettere una azione
    codice:
    nome_pulsante.gotoAndPlay(1)
    o nel rollout o comunque nell'evento che dovrebbe farlo tornare allo stato su.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Ciao.
    Il problema credo sia dovuto sostanzialmente ad una "gestione superficiale" dei vari eventi mouse relativi a tali bottoni.
    Mi pare però di capire che in quella pagina non si hanno propriamente dei bottoni ma piuttosto delle istanze di movie clip che fungono da bottoni, e che l'animazione sia gestita per l'appunto dai vari eventi MOUSE_OVER, MOUSE_DOWN, MOUSE_UP e MOUSE_OUT.

    Nel caso specifico, premendo il pulsante del mouse quando il puntatore si trova sopra il bottone "salva", va ad aprirsi il popup in overlayer interrompendo quindi l'interazione che il mouse ha su tale bottone. Questo impedisce di fatto il verificarsi dell'evento MOUSE_OUT, cioè quell'evento che avviene normalmente quando il puntatore viene spostato fuori dal bottone, che è la stessa che probabilmente gestisce l'animazione riportandola allo stato iniziale.

    Lo stesso problema lo hai comunque anche su tutti gli altri bottoni quando si compie un'azione di trascinamento, cioè quando facendo click su un bottone si mantiene premuto il pulsante del mouse e ci si sposta fuori dal bottone stesso per poi rilasciare il pulsante del mouse.
    Noterai in quel caso che l'animazione continuerà a ripetersi fintanto che non si torna sopra il bottone. Questo perchè appunto non è stata prevista l'eventuale azione di "rilascio" fuori dal bottone.

    Potrei comunque sbagliarmi sul fatto che non si tratti di istanze di bottoni ma bensì di movie clip. In un "vero" bottone si ha comunque una gestione intrinseca degli stati del bottone stesso per cui la testina di riproduzione si sposta sui 3 frame nella timeline del bottone a seconda delle azioni compiute col mouse su tale bottone. Se però fossero appunto dei movie clip, l'animazione viene senz'altro gestita via as attraverso i vari eventi sopracitati e in tal caso basterebbe impostare adeguatamente delle azioni su questi per gestirla in modo corretto.

    Ovviamente non ci sono regole precise per fare questo, nel tuo caso potresti giusto ripristinare l'animazione e lo stato del bottone/mc attraverso la stessa funzione mouseDownHandler (che è richiamata al MOUSE_DOWN) prima che sia eseguita la chiamata per aprire il popup. Dovresti però cercare di capire come sia gestita l'animazione.


    EDIT:
    Scusami randi non ho fatto a tempo a rispondere che tu avevi già dato la tua risposta. In 3 righe hai indicato ciò che io cercavo di spiegare in mezza pagina
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Grazie ragazzi, ho capito il problema (e ho notato anche il bug segnalato sugli altri bottoni).
    Ho creato un handler per l'evento MOUSEOUT, come mostrato nel codice


    import flash.net.*;
    import flash.external.*;

    BTN.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
    function mouseDownHandler(event:MouseEvent):void {
    ExternalInterface.call("c_Delete()");
    }

    BTN.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
    function mouseOutHandler(event:MouseEvent):void {
    BTN.gotoAndPlay(1);
    }


    il problema è che non va, al momento di provare il filmato mi dice:

    1061: Chiamata a un metodo non definito gotoAndPlay mediante un riferimento con tipo statico flash.display:SimpleButton.

    da quanto ho capito non posso chiamare quella funzione con un riferimento statico, ho cercato su internet qualcosa che mi potesse aiutare, ma non riesco a trovare molto sul riferimento dinamico....potete illuminarmi???

    potete scaricare il .fla del bottone qui:


    www.fabrizioborgia.altervista.org/Upload/Delete.fla

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Quel codice va bene se il bottone è un movieclip, se è un simple botton non ci vuole, daltra parte lo stato sopra di un bottone si ha solo quando il mouse si trova sopra quando lo togli automaticamente ritorna nello stato su, evidentemente quello che blocca il pulsante è il popup che si apre sopra il pulsante stesso.

  7. #7
    mmm, non sono sicuro: quel bottone non apre il popup, è un altro bottone, sto tentando di eliminare il problema che si ha quando si clicca sul bottone e. mantenendo il mouse premuto, si trascina il puntatore fuori dal bottone

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    In as2 c'è una comoda funzione onReleaseOutside che purtroppo non esiste più in as3, prova a cercare come ottenere un surrogato di tale funzione in as3, comunque se vuoi avere un controllo tottale dei pulsanti tramite codice devi rifarli come movieclip, i pulsanti sono comodi ma limitati, nessuno li usa quasi più, soprattutto se hai bisogno di un pulsante con lo stato o comunque una animazione un pò più complessa.

  9. #9
    quindi metto tutto su un unico movie clip e gestisco tutto con i goto se non ho capito male, vero? ora mi leggo qualche guida, faccio qualche tentativo e vi farò sapere!! grazie ancora!! =)

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.