Domanda

Ho questo codice:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="300" height="250">
  <param name="movie" value="Spotify_premium_300x250.swf" />
  <param name="quality" value="high" />
  <embed src="Spotify_premium_300x250.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="300" height="250"></embed>
</object>

MODIFICA: codice da Tom

<object onclick="javascript: window.open('http://www.stackoverflow.com', _blank, 'width=1024, height=600, menubar=no, resizable=yes');" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="300" height="250">
  <param name="movie" value="Spotify_premium_300x250.swf" />
  <param name="quality" value="high" />
  <embed src="Spotify_premium_300x250.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="300" height="250"></embed>
</object>

Vorrei che quando un utente fa clic sull'oggetto Flash, si apre un URL in una nuova finestra. Come farei per fare questo?

Saluti, Keith

È stato utile?

Soluzione

È possibile posizionare un DIV sull'oggetto Flash per acquisire il clic del mouse. Per fare ciò, è necessario impostare la wmode dell'oggetto flash su opaca e usare un po 'di javascript per posizionare il div. Ecco un esempio completo:

<html>
<head>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
    var flashvars = {};
    var params = {
        menu: "false",
        scale: "noScale",
        wMode: "opaque"
    };
    swfobject.embedSWF("MyFlashApp.swf", "swf", "300", "300", "9.0.0",
                       "expressInstall.swf", flashvars, params);

    $(function() {
        var swf = $("#swf");
        $("body").append(
            $("<div onclick=\"window.open('http://www.google.com');\"></div>").
                css({
                    position: 'absolute',
                    top: swf.offset().top,
                    left: swf.offset().left,
                    width: swf.attr('width'),
                    height: swf.attr('height'),
                    zIndex: 1
                })
        );
    });
</script>
</head>
<body>
<div id="swf"></div>
</body>
</html>

Nota l'uso di swf.attr ('width') invece di swf.width () , quest'ultimo restituisce 0, probabilmente perché è troppo presto per ottenere il dimensioni dell'oggetto flash. Successivamente, quando viene chiamato a mano, restituisce il valore corretto.

Altri suggerimenti

Devi farlo in flash con ActionScript

btnMovieClip.onRelease = function(){
    getURL("http://www.yoururl.com");
};

Crea un MovieClip che riempia l'intera scena e dagli il nome btnMovieClip. Inserisci il codice sopra in una cornice nella tua sequenza temporale.

Dipende (non sempre?).

Se vuoi che l'oggetto flash apra sempre lo stesso sito, puoi creare un evento al clic per il tag oggetto e fargli eseguire un pop-up JavaScript:

javascript: window.open('http://www.stackoverflow.com', _blank, 'width=1024, 
                        height=600, menubar=no, resizable=yes');

per aprire un altro sito.

Se si desidera che il film FLASH apra un collegamento, a seconda di ciò su cui si fa clic, è necessario aggiungere un'azione GoToURL all'interno del flash. Dovrai dire che l'azione si apre in una nuova finestra.

Qualcosa come GoToURL ('www.yahoo.com', true) dove true si riferisce all'apertura in una nuova finestra.

Tuttavia, poiché non ho il flash aperto, la mia sintassi è probabilmente disattivata.

Speriamo che questo sia abbastanza per iniziare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top