我有一個AIR桌面遊戲,有背景音樂,並在主菜單中重複動畫。是否有內在的可能性告訴AIR容器,當窗口失去焦點時(例如,通過alt + tab或按下windows鍵),AIR容器然後暫停其容器的內容(暫停音樂和動畫/ frameHandlers等等。)?是否有內置的方法來暫停AIR桌面應用程序?
還是隻能通過一個一個停止所有內容,當再次獲得焦點,一個接一個地開始一切?
我有一個AIR桌面遊戲,有背景音樂,並在主菜單中重複動畫。是否有內在的可能性告訴AIR容器,當窗口失去焦點時(例如,通過alt + tab或按下windows鍵),AIR容器然後暫停其容器的內容(暫停音樂和動畫/ frameHandlers等等。)?是否有內置的方法來暫停AIR桌面應用程序?
還是隻能通過一個一個停止所有內容,當再次獲得焦點,一個接一個地開始一切?
@JoshJanusch說的是真實的 - 你必須自己管理它,雖然設置stage.frameRate
可能會幫助你的情況。
大多數激活/停用我見過做經理以下一些:
stage.frameRate
0.01(減慢動畫和ENTER_FRAME
事件偵聽器,節省尤其是在移動CPU /電池)SoundManager
類,這可能是容易)setInterval
或setTimeout
因爲他們是使用定時器,可繼續觸發Workers
)隨意在評論中爲此列表提出建議。
哦,這非常方便,非常感謝。爲什麼要將幀率設置爲0.01,是否有理由? – user3432078
這是每個[文檔]最低的有效值(http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/Stage.html#frameRate)=) –
這是一個很好的答案雖然將幀率設置爲0.01 *,但仍會導致動畫移動(例如,應該每秒移動1像素的動畫會每隔100秒移動1個像素)。你可能會想要處理。如果這是一款遊戲,無論如何,您應該有一個暫停菜單,您可以在「Event.DEACTIVATE」觸發時使用。 –
後者。您必須在舞臺或「NativeApplication」上監聽「Event.ACTIVATE」和「Event.DEACTIVATE」,然後逐個停止所有操作,然後再重新啓動它們。 –
認真?! AIR容器中不應該有這種功能嗎? T_T 無論如何,感謝您的幫助。 – user3432078
Adobe不會自動執行任何操作。 Flash/AIR並不是一個簡單的SDK,有很多幫手和一切。它的意思是讓開發者完全控制的語言。不過想一想,他們會如何暫停呢?有多少人需要一個絕對靜態的屏幕,沒有聲音或任何東西?對於用戶來說,該應用會顯示爲凍結(技術上來說,這是)。另外,它不會與系統交互(即在OS X中滾動不活動的窗口)正確交互,並且實際上會違背大多數設計範例。 –