Javascript flash.system.Capabilities.ScreenResolution和flash.system.Capabilities.screenResolutionX的报告值是否不正确?
我有一个网站,我使用.swf文件收集Flash屏幕分辨率数据,并从JavaScript收集相同的数据,然后将其发送到我的服务器 对于某些用户来说,这些数据看起来是错误的——闪存分辨率有时会比浏览器中报告的屏幕分辨率大或小 例如,一个用户拥有JavaScript中报告的Javascript flash.system.Capabilities.ScreenResolution和flash.system.Capabilities.screenResolutionX的报告值是否不正确?,javascript,actionscript-3,flash,actionscript,screen-resolution,Javascript,Actionscript 3,Flash,Actionscript,Screen Resolution,我有一个网站,我使用.swf文件收集Flash屏幕分辨率数据,并从JavaScript收集相同的数据,然后将其发送到我的服务器 对于某些用户来说,这些数据看起来是错误的——闪存分辨率有时会比浏览器中报告的屏幕分辨率大或小 例如,一个用户拥有JavaScript中报告的1600x900分辨率屏幕,但Flash报告的屏幕大小为1366x768 我使用的ActionScript属性包括: flash.system.Capabilities.screenResolutionX flash.system.
1600x900
分辨率屏幕,但Flash报告的屏幕大小为1366x768
我使用的ActionScript属性包括:
flash.system.Capabilities.screenResolutionX
flash.system.Capabilities.screenResolution
window.screen.width
window.screen.height
当人们期望这些值在ActionScript或JavaScript中始终不正确时,是否存在任何情况?我想问题在于flash player的
flash.system.Capabilities.screenResolutionX/Y
属性只报告主监视器的分辨率。(如@akmozo对该问题的评论所述)
来自:(我的)
此属性不会随用户的屏幕分辨率更新,而只指示Flash Player或Adobe AIR应用程序启动时的分辨率。此外,该值仅指定主屏幕
在JS中(这可能取决于浏览器),window.screen.width/height
将根据浏览器窗口所在的实际监视器进行报告
因此,您的差异可能出现在浏览器窗口在主显示器上为而非的情况下。(因此AS3报告主显示,JS报告实际使用的显示)
如果您需要使用Flash并获得准确的值,我建议您使用以下技术之一:
stage.fullScreenWidth
和stage.fullScreenHeight
值,该值应提供当前监视器的分辨率if(ExternalInterface.available){
var screenW:int = int(ExternalInterface.call("window.screen.width"));
var screenH:int = int(ExternalInterface.call("window.screen.height"));
}
尝试验证您的用户是否没有多个屏幕,因为flash返回的值仅适用于主屏幕和flash player启动时。事实上,它们不匹配的情况很可能是浏览器不在主屏幕上时-因此JS报告屏幕实际处于打开状态,AS3报告主屏幕。