Wie richte ich ein Flash-Objekt eine URL in einem neuen Fenster zu öffnen?
-
08-07-2019 - |
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
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.