2

いくつかの子要素を含む div があり、そのうちの 1 つは Flash ムービーです。

この div をロールオーバーすると、スタイルを変更して、ロールオーバーされたことを示します。私の問題は、特にユーザーがフラッシュ要素の上にマウスをすばやく移動した場合に、 mouseoverandイベントが常にトリガーされるとは限らないことです。mouseout

mouseoverイベントが常にトリガーされるようにする方法についての提案。

ソースがないプロプライエタリ コードであるため、Flash ムービー自体にイベントを追加することはできません。

また、フラッシュ内でロールオーバーとクリック イベントが発生する必要があるため、div/image でフラッシュ ムービーをカバーすることはできません。

4

3 に答える 3

2

object/embedタグのwmodeパラメータをopaqueに変更します。

コードは次のようになります。

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia
.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="800" height="600">
    <param name="movie" value="movie.swf">
    <param name="wmode" value="opaque">
    <embed src="movie.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="600"></embed>
</object>
于 2008-10-21T21:26:37.303 に答える
1

あなたができることは、フラッシュ要素を目に見えないdivで覆うことです。そのdivにマウスオーバーハンドラーを配置し、ハンドラーに行を追加して、カバーするdivを非表示にします。同時に、onmouseoverウィンドウに関数を追加します。これは、マウスがフラッシュ要素を離れたときにトリガーされるはずです。(私は願います)。

  1. あなたの<div>フラッシュを覆っています。
  2. ユーザーがその上にマウスを置くと:
    1. 実行する必要のある関数を呼び出します。
    2. それはそれ自体を隠し、SWFとの通常の相互作用を可能にします。
    3. ウィンドウにマウスオーバー機能を配置します。これにより、次のことが可能になります。
      1. オリジナルdivをもう一度表示します。
      2. 「マウスアウト」関数を呼び出します。
      3. 関数を削除しwindow.onmouseoverます。
于 2008-10-14T04:34:40.970 に答える
0

簡単な答えは、制約を考えるとできないということです。

あなたがすでに知っているように見える複雑な答え。Flash ムービーは、通常の DOM イベントをトリガーしないサンドボックスで実行されます。フラッシュでマウス イベントをトリガーする場合、DOM 要素でそれを隠すことはできません。Flash ムービーのソースにアクセスできない場合、JS の世界への「橋」を構築することはできません。

勝てない状況だと思います。

于 2008-10-14T07:28:05.707 に答える