Come faccio ad aprire una popup da flash?

Utente HTML.it
chiede

Come faccio ad aprire una popup da flash?

Redazione HTML.it
risponde

Flash da solo non può aprire finestre di popup, bensì pagine principali del browser, tramite:

getURL(“pagina.html”, “window”);

Per aprire una popup, si deve appoggiare al supporto javascript della pagina html che lo incorpora. Questo viene fatto in due modi:

1. inserendo una funzione javascript nella pagina html, e richiamandola dal filmato in flash:

getURL(“javascript:funzione(parametri)”);

2. generando la funzione direttamente da flash, con questa struttura:

getURL(“javascript:window.open(‘pagina.html’,’titolo’,’width=400,height=300′);void(0);”);

visualizza il codice in un file di testo

Fondamentale, è quel void(0) alla fine, che impedisce alla pagina contenente il filmato di diventare bianca.Consideriamo solo il secondo metodo (tutta la funzione generata da flash), e vediamo due modi generali e validi in ogni caso.

1° metodo: visualizza il codice in un file di testo

Nel primo frame della timeline principale incolliamo:

Movieclip.prototype.popup = function(nome,titolo,lar,alt,x,y,feat){
 getURL(“javascript:window.open(‘&;quot; nome +”‘,’” + titolo + “‘,’width=” + lar + “,height=” + alt + “,screenX=” + x + “,left=” + x + “,screenY=” + y + “,top=” + y +”,” + feat + “‘);void(0);”);
&Nbsp;}

e apriamo la popup, ad esempio tramite pulsante, con:

on(release) {
  popup(‘test.html’,’titolo’,400,300,50,50,’status=yes’);
 }

Con questo metodo, indichiamo: nome della pagina da lanciare, titolo sulla barra, larghezza, altezza, posizione sull’asse delle X, posizione sull’asse delle Y, eventuali attributi. Eventuali, nel senso che si può omettere la parte finale, e scrivere:

on (release) {
  popup(‘test.html’,’titolo’,400,300,50,50);
 }

2° metodo: visualizza il codice in un file di testo

Nel primo frame della timeline principale incolliamo:

Movieclip.prototype.centra = function (nome,titolo,lar,alt,feat){
 getURL(“javascript:var x = Math.round((screen.width/2)-(” + lar + “/2));var y=((screen.height/2)-(” + alt + “/2));window.open(‘” + nome + “‘,’” + titolo + “‘,’width=” + lar + “,height=” + alt + “,screenX=’ + x + ‘,left=’ + x + ‘,screenY=’ + y + ‘,top=’ + y + ‘,” + feat + “‘);void(0);”);

}

e apriamo la popup, ad esempio tramite pulsante, con:

on (release) {
  centra(‘test.html’,’titolo’,400,300,’status=yes’);
 }

Con questo metodo, indichiamo: nome della pagina da lanciare, titolo sulla barra, larghezza, altezza, eventuali attributi. Eventuali, nel senso che si può omettere la parte finale, e scrivere:

on (release) {
  centra(‘test.html’,’titolo’,400,300);
 }

Questa funzione, serve a lanciare la nuova finestra centrata nello schermo, indipendentemente dalla risoluzione del monitor dell’utente.

3° metodo: visualizza il codice in un file di testo

Da utilizzare con FlashMX. Nel primo frame della timeline principale incolliamo:

Movieclip.prototype.centra = function (nome,titolo,lar,alt,feat){
var w = System.capabilities.screenResolutionX/2;
var h = System.capabilities.screenResolutionY/2;
var x = Math.round(w-(lar/2));
var y = Math.round(h-(alt/2));
 getURL(“javascript:window.open(‘”+ nome + “‘,’” + titolo + “‘,’width=” + lar + “,height=” + alt + “,screenX=” + x + “,left=” + x + “,screenY=” + y + “,top=” + y + “,” + feat + “‘);void(0);”;
}

e apriamo la popup con:

on(release){
  centra (‘test.html’,’mia’,700,300,’status=yes’);
 }

Il paramentro finale, feat, rappresenta appunto gli attributi della finestra. Non scrivendo niente, la popup non avrà alcuna barra ne alcun menu. Scrivendo:

on(release){
  centra(‘test.html’,’mia’,700,300,‘status=yes’);
 }

avremo la barra di stato, scrivendo:

on(release){
  centra(‘test.html’,’mia’,700,300,‘status=yes,toolbar=yes’);
 }

avremo la barra di stato e la tollbar, e così via.