2012-08-07 29 views
0

我在Flash中創建了可展開橫幅廣告。除了一件事以外,一切都很棒。如何檢測用戶何時不再徘徊在Flash廣告上?我試圖給廣告一個「命中區域」,它可以用來檢測MOUSE_OUT。問題是,有一個視頻播放,以及需要點擊的社交媒體按鈕。如果我將擊中區域放在這些區域上,它們將不再可點擊。如果我將擊中區域放在按鈕後面,則當您將鼠標懸停在按鈕上時,會觸發事件MOUSE_OUTFlash可擴展橫幅 - 檢測鼠標離開

像這樣的場景的最佳做法是什麼?我也嘗試在舞臺對象上檢測MOUSE_LEAVE,但是一旦部署在HTML頁面上,這似乎不能正確運行。感謝您的幫助。

+0

也許這個功能不可行?我看到的大多數可擴展Flash廣告通常會保持展開狀態,直到用戶點擊關閉按鈕。大多數人會同意這一點嗎? – Chris 2012-08-07 15:57:25

+1

hmm不知道你可能能夠在你的主容器上使用roll_out事件topLevelSprite.addEventListener(MouseEvent.ROLL_OUT,buttonRollOutHandler);或者可能將其添加到舞臺上...另一個選項將使用ExternalInterface和javascript方法來檢測閃光燈的卷展欄和回調 – shaunhusain 2012-08-07 16:03:01

回答

0

您可以嘗試添加經常檢查stage.mouseXstage.mouseYENTER_FRAME事件。當鼠標位於Flash內容上時,這些值應該正確報告,並在鼠標不在舞臺上時報告上次已知的鼠標座標。但是,最後一個已知的鼠標座標可能並不總是舞臺的實際寬度或高度,因此您可能希望在其中添加一些容差。例如,如果您的(擴展的)Flash內容寬度爲500px,則在ENTER_FRAME事件中,您可以檢查stage.mouseX小於10px(鼠標向左移動)還是大於490px(鼠標正在移動到正確)並儘量減少Flash內容。重複高度,並根據需要調整容差值。

這應該給你想要的效果。我可以看到唯一的缺點是ENTER_FRAME事件的開銷只是爲了檢查鼠標是否已經離開內容,但我沒有看到任何解決方法。