2011-05-16 164 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的通信。