0

アニメーションの透明なフラッシュ ファイルがあります。このファイルは全画面表示にする必要があります。

このアニメーションでは、左から右に飛ぶ鳥がいます。このアクションはフラッシュ ファイルで行われ、透明モードでフラッシュ ファイルをパブリッシュしました。

次に、この SWF ファイルをすべてのレイヤーの上に挿入します。

これはすぐに実行できますが、このページのどこでもクリックすると、デフォルトのフラッシュ メニューが表示さdivれます。position

フラッシュメニューを可視領域だけに制限するにはどうすればよいですか?

更新:つまり、全幅でした。

Flash が私のために作成した HTML コードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
        <title>Untitled-1</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style type="text/css" media="screen">
        html, body { height:100%; background-color: #ffffff;}
        body { margin:0; padding:0; overflow:hidden; }
        #flashContent { width:100%; height:100%; }
        </style>
    </head>
    <body>
    <a href="#">TEST</a>
        <div id="flashContent">
            <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="1280" height="853" id="Untitled-1" align="middle">
                <param name="movie" value="Untitled-1.swf" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#ffffff" />
                <param name="play" value="true" />
                <param name="loop" value="false" />
                <param name="wmode" value="transparent" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="sameDomain" />
                <!--[if !IE]>-->
                <object type="application/x-shockwave-flash" data="Untitled-1.swf" width="1280" height="853">
                    <param name="movie" value="Untitled-1.swf" />
                    <param name="quality" value="high" />
                    <param name="bgcolor" value="#ffffff" />
                    <param name="play" value="true" />
                    <param name="loop" value="false" />
                    <param name="wmode" value="transparent" />
                    <param name="scale" value="showall" />
                    <param name="menu" value="true" />
                    <param name="devicefont" value="false" />
                    <param name="salign" value="" />
                    <param name="allowScriptAccess" value="sameDomain" />
                <!--<![endif]-->
                    <a href="http://www.adobe.com/go/getflash">
                        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                    </a>
                <!--[if !IE]>-->
                </object>
                <!--<![endif]-->
            </object>
        </div>
    </body>
</html>
4

2 に答える 2

0

メニューを無効にしたい場合は、html や js でそれを行うことはできませんが、次のようなactionscriptを使用してフラッシュ ファイルで行うことができます。

Stage.showMenu=false;

または、次のように Web ページの右クリックを無効にすることもできます。

<script language="javascript">
document.onmousedown=disableclick;
function disableclick(e)
{
  if(event.button==2)
   {
     return false;    
   }
}
</script>

<body oncontextmenu="return false">
...
</body>
于 2013-06-11T12:18:49.037 に答える
0

問題は、Flash が透明であることですが、HTML の上にあります。クリックすると、Flash 要素でクリック イベントが生成され、Web サイトの他の要素がブロックされます。

jQuery を使用すると、これを簡単に回避できます。クリック イベントの座標を取得してから、同じ座標を持つページ HTML 要素のクリックをトリガーする必要があります。

$('#flashContent').click(function(e){
    evt = e || window.event;

    // make flash disappear
    $('#flashContent').hide();

    // get element at point of click
    starter = document.elementFromPoint(evt.clientX, evt.clientY);

    // send click to element at finger point
    $(starter).click();

    // bring back the flash
    $('#flashContent').show();
});

これはほとんどの場合に機能します。jQueryをまだ使用していない場合は、セクションに jQuery ライブラリを含め、headこの関数を関数内にラップすることを忘れないでください。document.ready

注: 右クリックについては、これと同様の機能を作成する必要があります。代わりに、右クリック イベントをリッスンします。

それがあなたを助けたことを願っています。

于 2013-06-11T14:09:47.933 に答える