flash.system.Capabilities.screenResolutionY 和 flash.system.Capabilities.screenResolutionX 的报告值是否不正确?
Are the reported values for flash.system.Capabilities.screenResolutionY and flash.system.Capabilities.screenResolutionX ever incorrect?
我有一个网站,我在该网站上使用 .swf 文件收集 Flash 屏幕分辨率数据,并从 JavaScript 收集相同的数据并将其发送到我的服务器。
对于某些用户来说,此数据看起来有误 - Flash 分辨率偶尔会大于或小于浏览器中报告的屏幕分辨率。
例如,JavaScript 中报告的一位用户的屏幕分辨率为 1600x900
,但 Flash 中报告的屏幕尺寸为 1366x768
。
我使用的 ActionScript 属性是:
flash.system.Capabilities.screenResolutionX
flash.system.Capabilities.screenResolutionY
我使用的 JavaScript 属性是:
window.screen.width
window.screen.height
是否存在任何情况下人们会认为这些值在 ActionScript 或 JavaScript 中始终不正确?
我想问题在于 Flash Player 的 flash.system.Capabilities.screenResolutionX/Y
属性只报告主显示器的分辨率。 (正如@akmozo 对问题的评论中提到的)
来自 documentation:(强调我的)
This property does not update with a user's screen resolution and instead only indicates the resolution at the time Flash Player or an Adobe AIR application started. Also, the value only specifies the primary screen.
在 JS 中(这可能取决于浏览器),window.screen.width/height
将根据浏览器 window 开启的实际监视器进行报告。
因此,您的差异可能出现在浏览器 window 在主显示器上 NOT 的情况下。 (所以 AS3 报告主要显示,而 JS 报告实际使用的显示)
如果您需要使用 Flash 并获得准确的值,我建议您使用以下技术之一:
使用 stage.fullScreenWidth
和 stage.fullScreenHeight
值,这将为您提供当前的显示器分辨率。
使用ExternalInterface并从JavaScript获取数据:
if(ExternalInterface.available){
var screenW:int = int(ExternalInterface.call("window.screen.width"));
var screenH:int = int(ExternalInterface.call("window.screen.height"));
}
我有一个网站,我在该网站上使用 .swf 文件收集 Flash 屏幕分辨率数据,并从 JavaScript 收集相同的数据并将其发送到我的服务器。
对于某些用户来说,此数据看起来有误 - Flash 分辨率偶尔会大于或小于浏览器中报告的屏幕分辨率。
例如,JavaScript 中报告的一位用户的屏幕分辨率为 1600x900
,但 Flash 中报告的屏幕尺寸为 1366x768
。
我使用的 ActionScript 属性是:
flash.system.Capabilities.screenResolutionX
flash.system.Capabilities.screenResolutionY
我使用的 JavaScript 属性是:
window.screen.width
window.screen.height
是否存在任何情况下人们会认为这些值在 ActionScript 或 JavaScript 中始终不正确?
我想问题在于 Flash Player 的 flash.system.Capabilities.screenResolutionX/Y
属性只报告主显示器的分辨率。 (正如@akmozo 对问题的评论中提到的)
来自 documentation:(强调我的)
This property does not update with a user's screen resolution and instead only indicates the resolution at the time Flash Player or an Adobe AIR application started. Also, the value only specifies the primary screen.
在 JS 中(这可能取决于浏览器),window.screen.width/height
将根据浏览器 window 开启的实际监视器进行报告。
因此,您的差异可能出现在浏览器 window 在主显示器上 NOT 的情况下。 (所以 AS3 报告主要显示,而 JS 报告实际使用的显示)
如果您需要使用 Flash 并获得准确的值,我建议您使用以下技术之一:
使用
stage.fullScreenWidth
和stage.fullScreenHeight
值,这将为您提供当前的显示器分辨率。使用ExternalInterface并从JavaScript获取数据:
if(ExternalInterface.available){ var screenW:int = int(ExternalInterface.call("window.screen.width")); var screenH:int = int(ExternalInterface.call("window.screen.height")); }