Tu dici un evento esclude l'altro... ma allora perchNN tra i due dovrebbe "vincere" il rollover del piattone sotto?
Allora .. vediamo di non creare troppa confusione...
C'è da chiarire una cosa.
Non è possibile agire col mouse su più pulsanti contemporaneamente anche se questi sono sovrapposti e il cursore stà contemporaneamente su tutti.
Flash darà priorità al pulsante che stà al disopra degli altri.
(detto così sembra boliviano antico)
Ti faccio un esempio per capire meglio.
Ci sono due pulsanti uno sopra l'altro.
codice:
+-----------------+
| +------------+ |
| | PulsanteA | |
| | | |
| +------------+ |
| PulsanteB |
+-----------------+
PulsanteA stà sopra PulsanteB, ovvero ha un ordine di profondità più elevato.
Ad entrambi associo uno script del genere:
on(rollOver){
trace("tieni aperto")
}
on(rollOut){
trace ("chiudi")
}
Più o meno come dovrebbe essere il tuo menu.
Ora.. se passo su B avverrà l'evento rollOver che dice di tenere aperto. Se esco da B verso l'esterno avverrà normalmente l'evento rollOut che dice "chiudi".
Fino a qui e tutto chiaro, no?
Mettiamo però il caso che una volta che sono su B, passo direttamente su A..
Cosà avverrà?
Avviene per prima cosa l'evento rollOut di B (quello che dice "chiudi") perchè flash considera che sono uscito da B in quanto sono su un'altro pulsante.. ma subito dopo avviene l'evento rollOver di A che dice, no! "tieni aperto".
Per questo motivo A, essendo l'ultimo ad avere la parola, avrà la meglio.
Analogalmente accadrà passando da A a B
Avverrà l'evento rollOut di A con l'azione "chiudi" che subito dopo verrà
Nel tuo filmato A non aveva l'evento rollOut per chiudere. E probabilmente, con un passaggio veloce da A verso lesterno, flash non fa in tempo a "catturare" gli eventi di B, in particolare l'evento rollOut che "chiude le tende".
Allora noi forzeremo il rollOut anche su A.
Tutto chiaro... oppure ho mischiato ancora di più le acque?
...
Passiamo ora all'hitTest
Per capire meglio ti consiglio di vedere la guida di questa azione direttamente in flash.
In pratica serve a verificare se una determinata istanza viene "colpita" da un'altra istanza (o da un punto) sullo stage.
Nel tuo caso, con questo metodo, potrai risparmiare parte dello script che hai utilizzato per i vari eventi sui pulsanti, e riversare tuttu su un'unco "evento" verificato dall'hitTest.
(vabbè ..questo diciamo che e glagolitico antico riveduto)
Ti spiego meglio passo per passo come modificare il filmato con questo metodo:
[list=1][*]Apri il tuo fla
[*]Iniziamo con eliminare qualche evento del pulsantino (quadratino).
Apri il pannello azioni e cancella tutto, poi inserisci solo questo evento:
codice:
on (rollOver) {
if (menu1._currentframe == 1) {
menu1.gotoAndPlay(2);
}
}
La condizione serve solo a non far ripetere l'animazione se la tendina è già aperta.
[*]Entra in menu1 e vai fino a visualizzare le voci\link.
Per ogni pulsante elimina l'evento rollOver, e qualunque altro evento che comanda l'animazione della tendina. Nel caso lascerai solo gli eventi release per il link.
[*]Ora vai fino all'istanza del pulsantone sotto le voci menu.
Dovrai cambiare questa istanza al posto suo ci dovrai mettere un nuovo simbolo di un frame che dovrà coprire l'area che comprende i link e il pulsantino principale
In pratica al posto del pulsantone dovrai ottenere, con un istanza "Clip Filmato", una cosa del genere:
codice:
.-------------.
| sublink 1 |
| sublink 2 |
| sublink 3 |
'. _ .--------'
||_||
'---'
La forma in rosso è il Clip Filmato.
[*]Ora dovrai tornare al tuo vecchio metodo "alfizzando" il clip per renderlo trasarente. Oppure puoi semplicemente creare la forma stessa (all'interno del clip) di un colore con alpha 0.
[*]Al clip associerai questo script:
codice:
onClipEvent (mouseMove) {
if (!this.hitTest(_root._xmouse, _root._ymouse, true)) {
_parent.gotoAndPlay(17);
}
}
[*]Un ultima cosa. Ho notato che hai utilizzato lo stesso nome istanza "bottone_1" per tutti e 4 i clip principali. Immagino sia una tua non curanza visto che il filmato era una prova iniziale, ma questo darebbe problemi con l'iht test che avrebbe riscontro soltanto sul primo dei 4 clip. Per cui ricordati di assegnare nomi istanza differenti.
[/list=1]