Visualizzazione dei risultati da 1 a 7 su 7

Discussione: eventi mouse clip

  1. #1

    eventi mouse clip

    Buongiorno,
    sto realizzando un filmato con flash ed as3.

    Devo gestire gli eventi ONMOUSEOVER e ONMOUSEOUT di un simbolo clip: Clip_1 (nome istanza clip1)

    All'interno di Clip_1 sono disposti verticalmente:

    UN TITOLO
    UN IMMAGINE
    DEI PULSANTI

    o meglio, inizialmente solo l'immagine. On mouseover compaiono il titolo ed i pulsanti on mouseout titolo e pulsanti dovrebbero sparire.


    Il codice sulla root principale è il seguente:
    codice:
    this.clip1.addEventListener(MouseEvent.MOUSE_OVER, function()
    {
     root['clip1'].gotoAndPlay(2);
    });
    
    this.clip1.addEventListener(MouseEvent.MOUSE_OUT, function()
    {
     root['clip1'].gotoAndStop(1);
    });
    Il problema che riscontro è che gli eventi scattano anche quando passo dall'immagine al titolo o dall'immagine ai pulsanti (cioè anche restando nell'ambito di clip1).

    Ho provato ad inserire un rettangolo trasprente sulla clip.
    La soluzione risolve il problema dell'"uniformità" della clip, cioè la clip risponde bene agli eventi del mouse però (problema :master: ) i pulsanti non sono più cliccabili.

    Ho provato anche con una maschera, risolve il problema dei pulsanti ma non quello degli eventi.

    Come ottenere capra e cavoli?

    Grazie
    Luca

  2. #2
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Francamente non è che ci abbia capito molto del problema che riscontri ma per fare quello che credo sia il tuo obiettivo, io farei così:

    Il clip1 deve essere strutturato in questo modo:
    Al fotogramma 1 = immagine + clip pulsanti con alpha* = 0 + un livello per il codice con uno stop();
    Al fotogramma 2 = Titolo + immagine + clip pulsanti con alpha 100% + livello con codice stop();
    Sempre nel fotogramma 2, dai un nome istanza a ogni clip pulsante, esempio: pulsante1, pulsante2 (devono essere clipFilmato non semplici forme).

    Nel primo fotogramma della timeline principale (stage) deve essere presente il clip1 con il suo nome istanza nelle proprietà e quindi inserisci questo codice nel primo fotogramma:
    Codice PHP:
    clip1.addEventListener(MouseEvent.MOUSE_OVERmouseover); 
    clip1.addEventListener(MouseEvent.MOUSE_OUTmouseout); 
    clip1.pulsante1.addEventListener(MouseEvent.MOUSE_OVERmouseoverPulsante1); 
    clip1.pulsante1.addEventListener(MouseEvent.MOUSE_OUTmouseoutPulsante1); 
    clip1.pulsante2.addEventListener(MouseEvent.MOUSE_OVERmouseoverPulsante2); 
    clip1.pulsante2.addEventListener(MouseEvent.MOUSE_OUTmouseoutPulsante2); 

    function 
    mouseover(evt:MouseEvent):void
    clip1.gotoAndStop(2); 

    function 
    mouseout(evt:MouseEvent):void
    clip1.gotoAndStop(1); 

    function 
    mouseoverPulsante1(evt:MouseEvent):void
    trace ("Il mouse è sul pulsante 1"); 

    function 
    mouseoutPulsante1(evt:MouseEvent):void
    trace ("Esco dal pulsante 1"); 
    }
    function 
    mouseoverPulsante2(evt:MouseEvent):void
    trace ("Il mouse è sul pulsante 2"); 

    function 
    mouseoutPulsante2(evt:MouseEvent):void
    trace ("Esco dal pulsante 2"); 

    * Il codice inserito nel primo fotogramma della timeline principale "vede" le istanze contenute al suo interno (stage) e "vede" le istanze contenute all'interno dell'istanza stessa.
    Per questo se non metti i pulsanti nel primo fotogramma del clip1 riceveresti un errore di oggetto non trovato, ovvero, pulsante1 e 2
    Quindi inserisci i pulsanti anche nel primo fotogramma del clip1 e se non vuoi che siano visibili li metti ad alpha = 0.


  3. #3
    Ciao sleter,
    grazie per la risposta.

    Ho provato a mettere gli elementi 'Titolo' e 'Pulsanti' con alpha=0 invece dei fotogrammi vuoti ma questo non risolve il problema che si ripresenta identico.

    La funzione onmouseover ri-scatta quando passo con il mouse da un elemento all'altro (titotlo, immagine, pulsante) della clip.

    Questo è il problema, spero di essermi spiegto meglio.

    grazie ancora
    Luca

  4. #4
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Se metti il codice che ti ho indicato funziona tutto perfettamente ovvero:

    Al mouse sopra, il clip1 passa al fotogramma 2 dove sono visibili i 2 pulsanti,

    Al mouse sopra il pulsante 1 viene eseguita la funzione "mouseoverPulsante1" che esegue il trace corrispondente.
    Stessa cosa per l'uscita del mouse dal pulsante 1 mentre solo se si esce dal clip1 viene eseguita la funzione di mouseout assegnata all'evento: MOUSE_OUT del clip1.


    Hai chiesto come gestire gli eventi di mouse over e mouse out sia sul clip1 che sulle instanze al suo interno ? Il codice che ti ho proposto fa esattamente questo.

  5. #5
    Originariamente inviato da Sleter
    Hai chiesto come gestire gli eventi di mouse over e mouse out sia sul clip1 che sulle instanze al suo interno ? Il codice che ti ho proposto fa esattamente questo.
    No, non ho chiesto questo.
    Evidentemente non mi sono spiegato bene.

    A me non interessa gestire gli eventi delle istanze all'interno di clip1.

    A me basta gestire onmouseover e onmouseout per clip 1 ma, sia col mio codice che col tuo, quando passo dalla foto al titolo o dalla foto ai pulsanti entra in azione la funzione onmouseout e onmouseover di clip1.

    Quando il mouse si stacca dall'immagine, pur restando nella clip1, scatta l'onmouseout della clip1.

  6. #6
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    quando passo dalla foto al titolo o dalla foto ai pulsanti entra in azione la funzione onmouseout e onmouseover di clip1.
    Quello che scrivi si verifica solo se tra titolo e foto e pulsanti c'è spazio vuoto.
    In tal caso è ovvio che ti scatta il mouse over perchè di fatto, esci dal clip.

    Ciò che costituisce un clipFilmato non sono i suoi spazi vuoti ma sono le sue proprietà grafiche di linee e riempimenti. Di conseguenza, ciò che costituisce il tuo clip sono il titolo, l'immagine e i pulsanti e uscendo da questi elementi grafici esci dal clip in quanto entri in una zona priva di proprietà.

    Ti basta inserire un rettangolo trasparente sotto tutto il clip e avrai il mouse out solo all'uscita effettiva dal clip.

  7. #7
    c'è già, e non è neanche trasparente, è bianco come lo sfondo....

    ma non "unisce" il clip....

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.