2011-05-16 210 views
2

我可以在AS3中獲得瀏覽器窗口的大小嗎?AS3:獲取瀏覽器窗口大小?

我發現的最好的方法是用Javascript獲取大小並將其作爲FlashVar發送到Flash。這種方法的一個限制是,如果窗口被調整大小,它不會給出當前的大小。

有沒有一種純粹的Flash方式來做到這一點?

回答

3

這取決於您是否嘗試將swf設置爲全屏或僅爲其他目的獲取窗口尺寸。

如果你正在做全屏,你需要將你的​​設置爲NO_SCALE,並將你的flash對象嵌入到其高度和寬度參數設置爲100%的div中。要處理調整大小,您的Flash項目需要resize事件偵聽器(應用於舞臺),並且所有顯示對象都需要響應該大小調整偵聽器。一旦你的swf正確調整大小,你可以像已經提到的那樣使用stage.stageHeight/stageWidth在內部檢索確切的尺寸。

另一方面,如果您只想獲取窗口的角度,則需要使用ExternalInterface進行JavaScript調用。 jQuery有一些很好的工具來快速獲取屏幕尺寸。那麼它只是將數據發回閃存的問題。請記住,JavaScript也具有resize事件,並且您可以使用它來強制更新Flash中的狀態。

在序列的最初部分 - 在發送flashload時,您是正確的,但要響應屏幕大小更改,您需要應用其中一種技術。

祝你好運

6

如果您使用height: 100%; width:100%嵌入swf,則可以使用stage.stageWidthstage.stageHeight。如果情況並非如此,則可以使用ExternalInterface實現與JavaScript的通信。