【发布时间】:2011-05-16 14:25:05
【问题描述】:
我可以获取AS3中浏览器窗口的大小吗?
我发现的最佳方法是使用 Javascript 获取大小并将其作为 FlashVar 发送到 Flash。此方法的一个限制是,如果调整窗口大小,它不会给出当前大小。
有没有一种纯 Flash 方法可以做到这一点?
【问题讨论】:
标签: flash actionscript-3 browser window
我可以获取AS3中浏览器窗口的大小吗?
我发现的最佳方法是使用 Javascript 获取大小并将其作为 FlashVar 发送到 Flash。此方法的一个限制是,如果调整窗口大小,它不会给出当前大小。
有没有一种纯 Flash 方法可以做到这一点?
【问题讨论】:
标签: flash actionscript-3 browser window
如果您使用height: 100%; width:100% 嵌入您的瑞士法郎,您可以使用stage.stageWidth 和stage.stageHeight。如果不是这种情况,您可以使用 ExternalInterface 实现与 JavaScript 的通信。
【讨论】:
这取决于您是尝试将 swf 设置为全屏,还是仅仅出于其他目的获取窗口尺寸。
如果您正在做全屏,您需要将您的stageScaleMode 设置为 NO_SCALE,并将您的 flash 对象嵌入到其高度和宽度参数设置为 100% 的 div 中。为了处理调整大小,您的 Flash 项目需要一个调整大小事件侦听器(应用于舞台),并且所有显示对象都需要响应该调整大小侦听器。一旦您的 swf 正确调整大小,如前所述,您可以使用 stage.stageHeight / stageWidth 在内部检索准确的尺寸。
另一方面,如果您只想获取窗口的尺寸,则需要使用ExternalInterface 进行javascript 调用。 jQuery 有一些很好的工具可以快速获取屏幕尺寸。然后只需将该数据发送回闪存即可。请记住,javascript 也有一个 resize 事件,您可以使用它来强制改变 flash 中的状态。
您在序列的初始部分是正确的 - 在加载时发送 flashvars,但要响应屏幕尺寸的变化,您需要应用这些技术之一。
祝你好运
【讨论】: