2

我有这个代码:

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

我希望当用户单击 Flash 对象时,它会在新窗口中打开一个 URL。我该怎么做呢?

干杯,基思

4

3 回答 3

4

您可以在 Flash 对象上放置一个 DIV 以捕获鼠标点击。为此,您需要将 flash 对象的 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 对象的尺寸还为时过早。稍后,当手动调用时,它确实返回了正确的值。

于 2009-03-10T16:12:27.777 回答
0

这取决于(不是总是这样吗?)。

如果您希望 flash 对象始终打开同一个站点,您可以为对象标签创建一个点击事件并让它运行一个 JavaScript 弹出窗口:

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

打开另一个站点。

如果您希望 FLASH 电影打开一个链接,根据您点击的内容,您需要GoToURL在 flash 中添加一个动作。您需要告诉该操作在新窗口中打开。

GoToURL('www.yahoo.com', true)where true 是指在新窗口中打开。

但是,由于我没有打开 flash,我的语法可能已关闭。

希望这足以让您入门。

于 2009-03-10T15:22:34.417 回答
0

您需要使用 ActionScript 在 Flash 中执行此操作

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

制作一个填充整个场景的 MovieClip,并将其命名为 btnMovieClip。将上面的代码放在时间轴的一个框架中。

于 2009-03-10T15:23:00.640 回答