我可以在AS3中获取浏览器窗口的大小吗?
我发现最好的方法是使用Javascript获取大小并将其作为FlashVar发送到Flash。此方法的一个限制是,如果调整窗口大小,它不会给出当前大小。
有一种纯粹的Flash方法吗?
答案 0 :(得分:6)
如果您使用height: 100%; width:100%
嵌入了swf,则可以使用stage.stageWidth
和stage.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,但是为了响应屏幕尺寸的变化,你需要应用其中一种技术。
祝你好运