2012年3月8日 星期四

當解析度變更時通知ActionScript

當解析度變更時,Swf原本會根據Stage.scaleMode的設定自動變更大小和位置。但是如果想要自行在ActionScript內調整,就會需要在ActionScript中取得解析度變更的通知。

雖然本來ActionScript就有提供Stage.onResize函式,不過只有在Stage.scaleMode設為noScale才會通知。然而實際使用時通常是不會設為noScale,所以只好另外從UE去通知ActionScript。

UE在解析度變更時有提供一個事件CALLBACK_ViewportResized。Scaleform GFx的介接碼也有使用這個事件,請參考UGFxInteraction::Send()。所以其實只要在這個函式中通知ActionScript就好了。呼叫GGFxEngine->GetOpenMovie()可取得目前開啟的GFxMoviePlayer,然後呼叫Invoke()來通知某個自訂的ActionScript函式就可以了。

沒有留言:

張貼留言