javascript - flash.system.Capabilities.screenResolutionY和flash.system.Capabilities.screenResolutionX的报告值是否不正确?

原文 标签 javascript actionscript-3 flash actionscript screen-resolution

我有一个网站,我在其中收集使用.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 :(重点是我的)


  此属性不会使用用户的屏幕分辨率进行更新,而仅指示Flash Player或Adobe AIR应用程序启动时的分辨率。此外,该值仅指定主屏幕。


在JS(可能取决于浏览器)中,window.screen.width/height将基于浏览器窗口所处的实际监视器进行报告。

因此,在浏览器窗口不在主显示屏上的情况下,您的差异可能会出现。 (因此,AS3报告主要显示,而JS报告实际使用的显示)

如果您需要使用Flash并获取准确的值,建议您使用以下一种技术:


使用stage.fullScreenWidthstage.fullScreenHeight值,应为您提供当前监视器的分辨率。
使用ExternalInterface并从JavaScript获取数据:

if(ExternalInterface.available){
    var screenW:int = int(ExternalInterface.call("window.screen.width"));
    var screenH:int = int(ExternalInterface.call("window.screen.height"));
}

关于javascript - flash.system.Capabilities.screenResolutionY和flash.system.Capabilities.screenResolutionX的报告值是否不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31926064/

相关文章:

javascript - 是否可以通过标签选择单选按钮?

php - AS3位图存储

flash - 如何在 AS3 中创建共享按钮

javascript - 如何添加下一个按钮弹出?

javascript - .load()与数据

javascript - 如何使用 ActionScript 在 IE 中关闭网络摄像头

ios - 由于光线不足,如何在自动闪光模式下开启或关闭闪光灯时得到通知

flash - 多个音频到netStream?

javascript - 检测页面是在三星股票浏览器中查看还是作为独立的 Web 应用程序查看

actionscript-3 - 禁用音频闪存