2012-10-29 65 views
0

我看到一些在線遊戲可以做到這一點:檢測當客戶焦點離開窗口

當您打開當前網頁到其他窗口或其他網絡選項卡,應用程序將繪製一個黑塊,並告訴你已經離開應用程序,點擊閃光區恢復。

我已經嘗試了一些事件,如焦點進出或鼠標離開舞臺,但反應不是我所期望的。可能我以錯誤的方式使用它們。請告訴我,如果你有解決方案。

var count:int = 0; 

this.stage.addEventListener(Event.MOUSE_LEAVE,function(e:Event):void 
{ 
    //only be called if your mouse cursor leave the area,but can't detect whether you're actually switch to other program. 
    trace('mouseleave',count++); 
}); 

this.stage.addEventListener(FocusEvent.FOCUS_OUT,function(e:Event):void 
{ 
    //no reaction 
    trace('focus out',count++); 
}); 

this.stage.addEventListener(MouseEvent.ROLL_OVER,function(e:Event):void 
{ 
    //no reaction 
    trace('mouseenter',count++); 
}); 
+2

它已經在[此線程](http://stackoverflow.com/questions/12373100/how-to-check-if-the-swf-has-been-unfocused-in-as3)中回答。在發佈問題之前進行搜索 – Moorthy

+0

也許你應該嘗試一下。它不會工作,直到你點擊它,這意味着如果你下載它,但從未點擊它,激活/停用的東西將永遠不會工作。 – Max

+0

我不知道爲什麼在選擇瀏覽器的其他選項卡時(在點擊舞臺之前)它沒有調度。此外,它在瑞士法郎和當您最小化和最大化瀏覽器時運行良好。我想那裏(HTML/JavaScript)必須解決這個問題。還需要關注html的''標籤。 – Moorthy

回答

1

有兩種方法:

  • 使用Event.ACTIVATE事件。但是swf應該在之前關注。
  • 使用來自ActionScript的JavaScript調用來檢查焦點上的窗口或選項卡。