Как мне настроить flash-объект на открытие URL-адреса в новом окне?
-
08-07-2019 - |
Вопрос
У меня есть этот код:
<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>
Редактировать:Код от Тома
<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>
Мне бы хотелось, чтобы, когда пользователь нажимает на флэш-объект, он открывал URL-адрес в новом окне.Как бы я это сделал на твоем месте?
Приветствия, Кит
Решение
Вы можете расположить DIV над вашим флэш-объектом, чтобы зафиксировать щелчок мыши.Чтобы сделать это, вам нужно установить wmode флэш-объекта на непрозрачный и использовать некоторый javascript для позиционирования div.Вот полный пример:
<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>
Обратите внимание на использование swf.attr('width')
вместо того , чтобы swf.width()
, последний возвращает 0, вероятно, потому, что еще слишком рано получать размеры флэш-объекта.Позже, при вызове вручную, он возвращает правильное значение.
Другие советы
Вам нужно сделать это во flash с помощью ActionScript
btnMovieClip.onRelease = function(){
getURL("http://www.yoururl.com");
};
Создайте видеоролик, который заполнит всю сцену, и дайте ему имя btnMovieClip.Поместите приведенный выше код во фрейм на вашей временной шкале.
Это зависит (не так ли всегда?).
Если вы хотите, чтобы флэш-объект всегда открывал один и тот же сайт, вы можете создать событие щелчка для тега object и запустить всплывающее окно JavaScript:
javascript: window.open('http://www.stackoverflow.com', _blank, 'width=1024,
height=600, menubar=no, resizable=yes');
чтобы открыть другой сайт.
Если вы хотите, чтобы ФЛЭШ-фильм открывал ссылку, в зависимости от того, на что нажали, вам нужно добавить GoToURL
действие во вспышке.Вам нужно будет указать, что это действие должно открыться в новом окне.
Что - то вроде GoToURL('www.yahoo.com', true)
где true относится к открытию в новом окне.
Однако, поскольку у меня нет flash open, мой синтаксис, вероятно, отключен.
Надеюсь, этого достаточно, чтобы вы начали.