AS3:获取浏览器窗口大小?

时间:2011-05-16 14:25:05

标签: flash actionscript-3 browser window

我可以在AS3中获取浏览器窗口的大小吗?

我发现最好的方法是使用Javascript获取大小并将其作为FlashVar发送到Flash。此方法的一个限制是,如果调整窗口大小,它不会给出当前大小。

有一种纯粹的Flash方法吗?

2 个答案:

答案 0 :(得分:6)

如果您使用height: 100%; width:100%嵌入了swf,则可以使用stage.stageWidthstage.stageHeight。如果不是这种情况,您可以使用ExternalInterface实现与JavaScript的通信。

答案 1 :(得分:3)

这取决于您是否尝试将swf设置为全屏,或者只是为了其他目的获取窗口尺寸。

如果您正在全屏操作,则需要将stageScaleMode设置为NO_SCALE,并将Flash对象嵌入到高度和宽度参数设置为100%的div中。要处理调整大小,您的Flash项目需要一个resize事件侦听器(应用于舞台),并且所有显示对象都需要响应该调整大小侦听器。一旦你的swf正确调整大小,你可以如前所述,使用stage.stageHeight / stageWidth在内部检索精确的尺寸。

另一方面,如果您只想获取窗口的尺寸,则需要使用ExternalInterface进行javascript调用。 jQuery有一些很好的工具可以快速获取屏幕尺寸。然后它只是将数据发送回闪存。请记住,javascript也有一个resize事件,你可以使用它来强制flash中的状态更改。

你在序列的最初部分是正确的 - 在加载时发送flashvars,但是为了响应屏幕尺寸的变化,你需要应用其中一种技术。

祝你好运