2013-01-25 34 views
0

我有幾個不能從遊戲中暫停的Flash遊戲。我想寫一個包裝SWF,允許我暫停它們。重新編譯遊戲是不可行的,所以沒有功能可以添加到它們。修改加載的SWF的域內存以控制行爲

我可能需要做的是控制何時加載的swf獲取ENTER_FRAME事件並將調用重定向到flash.utils.getTimer到包裝器中定義的函數。這可以通過修改加載的ApplicationDomain對象的domainMemory ByteArray來完成嗎?

回答

0

domainMemory絕對不會幫你,it's just這個API來訪問快速內存。

你可以嘗試做的是反編譯遊戲瑞士法郎,並找到主要EnterFrame事件的調度(並加載遊戲瑞士法郎後,你必須找到這個調度通過顯示列表,例如,如果它沒有變成是階段或根目錄),它將用作遊戲刻度調度程序,而不是您將能夠截取此調度程序的默認EnterFrame事件。截取只需添加您自己的優先級更高的偵聽器:

//pause the game 
dispatcher.addEventListener(Event.ENTER_FRAME, onGameEnterFrame, false, 1); 
//resume the game 
dispatcher.removeEventListener(Event.ENTER_FRAME, onGameEnterFrame); 

protected function onGameEnterFrame(event:Event):void 
{ 
    event.stopImmediatePropagation(); 
} 
相關問題