Frage

Ich habe diesen Code:

<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>

EDIT: Code von 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>

Ich möchte es, wie wenn ein Benutzer klickt auf den Flash-Objekt, es öffnet sich ein URL in einem neuen Fenster. Wie würde ich über das tun dies gehen?

Cheers, Keith

War es hilfreich?

Lösung

Sie können ein DIV über Ihre Flash-Objekt positionieren Sie den Mausklick zu erfassen. Um dies zu tun, müssen Sie undurchsichtige die Wmode des Flash-Objekts setzen, und einige Javascript verwenden, um die div zu positionieren. Hier ist ein vollständiges Beispiel:

<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>

Beachten Sie die Verwendung von swf.attr('width') statt swf.width(), die letztere den Wert 0 zurück, wahrscheinlich, weil es zu früh ist, die Flash-Objekt Dimensionen zu erhalten. Später, wenn sie von Hand genannt wird, hat es den richtigen Wert zurück.

Andere Tipps

Sie müssen dies mit Actionscript in Flash tun

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

Erstellen Sie eine MovieClip-, die die ganze Szene füllt, und geben Sie ihm den Namen btnMovieClip. Setzen Sie den obigen Code in einem Frame in der Timeline.

Es hängt (nicht immer?).

Wenn Sie das Flash-Objekt wollen immer die gleiche Seite öffnen können Sie ein On-Click-Ereignis für den Objekt-Tag erstellen und es ein JavaScript-Pop-up ausführen:

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

eine andere Website zu öffnen.

Wenn Sie den Flash-Film wollen einen Link zu öffnen, je nachdem, was geklickt wird auf Sie eine GoToURL Aktion im Flash hinzufügen müssen. Sie müssen diese Aktion sagen, in einem neuen Fenster zu öffnen.

So etwas wie GoToURL('www.yahoo.com', true) wo wahr wird in einem neuen Fenster zur Öffnung Bezug genommen wird.

Da aber ich habe keine Flash meine Syntax öffnet wahrscheinlich ausgeschaltet ist.

Hoffentlich ist das genug, um Ihnen den Start.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top