Abbiamo chiamato la funzione per avviare il filmato dal pulsante di un form, poi da un link testuale, quindi da un'immagine: in tutti i casi, dalla pagina html contenente il filmato.
Ora proveremo a chiamarla dal filmato stesso ( decisamente inutile, ma rende l'idea ).
.esecuzione del metodo da un filmato
Ad un pulsante dentro il filmato associamo il seguente script:
on(release){
getURL("javascript:avviaFilmato()");
}
Il risultato:
visualizza l'esempio | scarica l'esempio
Cosa abbiamo fatto? Il filmato ha chiamato una funzione Javascript, e la funzione ha avviato il filmato: Flash > Javascript > Flash.
Certo, in questo caso fare tutto il giro è superfluo, quando possiamo risolvere in Flash con:
on(release){
_root.play();
}
L'importante però è notare come un metodo Javascript possa essere chiamato da un filmato, e non solo dalla pagina html. In fondo, per questo esempio non abbiamo fatto nulla di nuovo. Abbiamo visto come definire una funzione Javascript, e sapevamo già come chiamarne una da Flash. Le due cose insieme, con gli opportuni metodi, ci offrono però altre possibilità.
Ad esempio, e qui la cosa inizia ad essere divertente, quando a chiamare la funzione è un altro filmato.
Nella nostra pagina, sono incorporati due filmati: il primo chiamarà la funzione Javascript, e il secondo ne subirà l'effetto. Il primo non ha bisogno di specificare i tag per i metodi (id, name e swLiveConnect), perchè qualunque filmato può chiamare una funzione Javascript, come abbiamo già visto (Flash > Javascript sempre possibile): ne avrà invece bisogno il secondo (Javascript > Flash solo con gli opportuni tag).
Gli elementi di questo esempio:
- pagina html con incorporati i due filmati: il primo senza tag per i metodi, il secondo si
- nel tag <head> della pagina html, la definizione della funzione
- nel primo filmato, il pulsante con associato:
on(release){
getURL("javascript:avviaFilmato()");
}