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 を opaque に設定し、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 を返します。これはおそらく、フラッシュ オブジェクトのサイズを取得するのが早すぎるためです。後で手動で呼び出すと、正しい値が返されます。

于 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 内にアクションを追加する必要があります。そのアクションに新しいウィンドウで開くように指示する必要があります。

where true のようなものGoToURL('www.yahoo.com', true)は、新しいウィンドウで開くことを指しています。

ただし、フラッシュを開いていないため、構文がオフになっている可能性があります。

うまくいけば、これで十分です。

于 2009-03-10T15:22:34.417 に答える
0

ActionScriptを使用してフラッシュでこれを行う必要があります

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

シーン全体を埋めるムービークリップを作成し、btnMovieClip という名前を付けます。上記のコードをタイムラインのフレームに挿入します。

于 2009-03-10T15:23:00.640 に答える