2010-01-13 43 views
1

我有一個嵌入HTML頁面的Flash影片,該影片的頂部有一個DIV層。 Flash電影根據鼠標在電影上的位置進行滾動。當鼠標在DIV上時,客戶端希望滾動停止。我嘗試過使用mouseLeave事件,但那不是由DIV觸發的。如何檢測鼠標懸停在Flash影片上的HTML層?

當鼠標懸停在DIV上時,Flash電影可以檢測到這種方式嗎?

Flash電影是使用Flash CS4和AS3開發的。

這裏的DIV標籤:

<div style="position:absolute;top:0;left:0;width:1024;background:#fff;font-size:24px;z-order:2"> 
some text 
</div> 

回答

2

MOUSE_LEAVE事件不起作用,因爲即使鼠標懸停在div上,它仍然在SWF的邊界區域內。您必須在Flash中使用ExternalInterface才能註冊可用於JavaScript的函數,然後當鼠標懸停在div上時調用該函數。 Flash功能關閉滾動。

在Flash:

import flash.external.ExternalInterface; 
function stopScrolling() { 
    // stop scrolling 
} 
ExternalInterface.addCallback('stopFlashScrolling', stopScrolling); 

在Javascript中:

document.getElementById('theDiv').onmouseover = function(e) { 
    MySWF.stopFlashScrolling(); 
} 

MySWF是你的SWF的ID。

1

Flash動畫(一般)總是有最高的z-index。您是否嘗試過添加:

<param name="wmode" value="transparent"> 

到您的代碼?

+1

輕微的瑣事 - 嵌入式Flash電影不使用最高的z-index,它們直接渲染屏幕,繞過瀏覽器。將'wmode'設置爲'transparent'或'opaque'使得它們在瀏覽器上下文中呈現,使它們適合堆疊和疊加 – 2010-01-13 03:53:11