2008-09-05 75 views

回答

5

的代碼在該鏈接的關鍵部分是

systemManager.stage.addEventListener(Event.DEACTIVATE,deactivate); 

Flash播放器發送出局激活和關閉事件時焦點進入並離開玩家。您需要做的就是爲他們創建一個收聽者並做出適當的反應。

有關如何使用激活和停用事件的更清晰示例,請參閱blog.flexaxamples.com

此外,它看起來像激活和停用事件在某些瀏覽器中遇到麻煩。 Colin Moock has more info on that here.

+3

將無法​​正常工作 – jedierikb 2009-07-07 16:22:11

0

這將工作來檢測Flex窗口何時失去焦點,但檢測窗口何時重新獲得焦點而無需實際點擊Flex應用程序需要在HTML包裝中更新,是否正確?喜歡的東西:

<script language="JavaScript" type="text/javascript"> 
<!-- 
// ----------------------------------------------------------------------------- 
// Globals 
// Major version of Flash required 
var requiredMajorVersion = ${version_major}; 
// Minor version of Flash required 
var requiredMinorVersion = ${version_minor}; 
// Minor version of Flash required 
var requiredRevision = ${version_revision}; 
// ----------------------------------------------------------------------------- 
// --> 


    function onAppFocusIn() 
    { 
     ${application}.onAppFocusIn(); 
     alert("onAppFocusIn"); 
    } 

</script> 
<body scroll="no" onFocus="onAppFocusIn()"> 

我想實現這個,但onAppFocusIn()函數不執行,一旦我搬回到Flex應用程序窗口。當我查看源代碼時,代碼就在那裏。有誰知道爲什麼?

感謝, 安妮

1

你可以在主應用程序標籤添加一個處理激活。這可以檢測到Flex應用程序何時聚焦。 如:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" activate="activateHandler(event);" deactivate="deactivateHandler(event);">

0

在Flex 4.6,此命令的工作systemManager.stage.addEventListener(Event.DEACTIVATE,停用) 但要確保Flash應用程序的wmode設置爲窗口(默認)。當模式透明時,事件沒有被捕獲。你可以在你放置你的Flash應用程序的嵌入式html中設置wmode。例如:

<object classid="clsid:D27WEE-A16D-21cf-90F2-422253540410" width="100%" height="100%" 
id="MyApp" name="MyApp" align="middle"> 
<param name="movie" value="MyApp.swf?v=1.00.008" /> 
<param name="wmode" value="transparent">  <----- take out this 

...如果Wmode是指透明或不透明

相關問題