2011-05-30 89 views
3

我有一個用戶可以玩Flash遊戲的網頁。我們現在正在對頁面進行一些更改,要求將遊戲嵌入wmode=transparentwmode=opaque,以便我們可以在Flash遊戲的頂部顯示HTML元素。問題是,在Internet Explorer中(所有版本),如果用戶按下上/下箭頭鍵,整個頁面會滾動。我嘗試過所有我能想到的事情,並花了整整一天的時間尋找解決方案,但沒有成功。當閃光燈有焦點時,防止在IE中滾動

到目前爲止,我已經嘗試把遊戲放在一個iframe中,我嘗試禁用JS的上/下鍵,其中沒有一個解決了我的問題。

要求是:wmode必須是transparentopaque而我不可以修改flash遊戲。

+0

我希望你不投入'的wmode =透明| opaque'到你的代碼。它應該是'wmode =「transparent」'或'wmode =「opaque」'當然?!條('|')表示您選擇「透明」或「不透明」。 – anothershrubery 2011-05-31 08:44:59

+0

關閉課程......其中一個或另一個不是兩個。 – 2011-05-31 08:49:30

+0

你是否嘗試過在容器'div'元素上捕獲事件,僅僅是爲了竊笑?如果您可以在包含DOM元素上捕獲事件,則可以取消在該處傳播事件。 – 2011-05-31 10:36:26

回答

0

似乎根本就沒有辦法解決這個。我們只需要接受一個事實,即HTML內容(我們的例子中的FB就像聊天)會隱藏在Flash遊戲後面。

但我還是希望有人證明我錯了:)

+0

正確的答案是,您應該將頁面上的Flash實例視爲技術限制,並圍繞其設計頁面。 ;) – 2011-06-02 09:37:15

+0

是啊,但有時候,僅僅是不可能的:\ – 2011-06-02 10:12:51

+0

它總是可能的,除非它是由客戶的特定需求。這完全是關於教育客戶 - 他們已經習慣了並非所有的瀏覽器都能做到的事情,這只是一個重點。 – 2011-06-02 10:22:42

0

用戶需要在任何關鍵動作被攔截之前先對焦Flash動畫。這實際上是一種很好的行爲,不應該改變。

以某種方式讓用戶自動對焦電影是一個好主意,也許可以通過在它上面放置一些開始按鈕來讓他們首先點擊。然後,所有關鍵操作都應發送到Flash。

+1

閃存獲得焦點,因爲大多數遊戲都有一個「點擊這裏開始」按鈕(像你說的)。所以這不是問題。問題是,按鍵莫名其妙地「泄露」到即使閃光燈聚焦... – 2011-05-30 13:46:39

1

在Flash中使用wmode=transparent時,防止滾動的唯一方法是防止使用整個頁面的箭頭鍵進行滾動。 This page總結得最好。

基本上,當transparent模式處於活動狀態時,IE中的鍵盤事件傳播到瀏覽器;我不知道如何防止滾動(還沒有測試過),但你基本上必須防止全局的鍵盤滾動。

This discussion強調了IE8可能的解決方法,以及使用jQuery here的實現示例。我現在沒有IE的副本,但可能值得一試。

但是,AFAIK在Flash中的遊戲通常與wmode=transparent的效果不一樣,因爲在沒有用戶交互的情況下,焦點可能會被盜。您最好的選擇是修改頁面,以免Flash需要覆蓋HTML(即使YouTube避免在頁面上設置transparent,並且它們擁有整個內容)。

+0

可惜沒有HTML覆蓋不是一個選項的瀏覽器。我會看看你的鏈接,歡呼! – 2011-05-31 13:11:18

+0

嘿,我已經看到了這些鏈接:)也許我不得不再次去他們低谷:) – 2011-05-31 13:12:23

+0

沒有這樣的作品。 – 2011-06-01 12:06:44

0

一些JS魔法如果有效的話。

http://api.jquery.com/keypress/

http://api.jquery.com/event.preventDefault/

註冊的對象/嵌入標籤的按鍵事件處理程序。比方說,你有閃光對象與ID #flashobj

$('#flashobj')。keypress(function(event){event.preventDefault();});

或者,更棘手的,如果閃存對象綁定/嵌入是行不通的,你可以在按鍵綁定整個窗口,並沿該線檢查一番:

如果(event.target。 tagName.toLower()==「object」)...

里程可能會有所不同,因爲我記得event.target不是很可靠...

希望,閃光燈將趕上鍵盤事件,頁面會忽略它。我知道你說你嘗試過,但你的做法可能是不同的(我提出了兩個明顯不同的方式做到這一點,一個可能的工作)

+2

它不起作用:\ – 2011-06-01 12:03:27