2009-06-26 92 views

回答

2

我从来没有能够完全包围我的头,为什么这是,但实际上是正确的。如果您想通过身高信息获取宽度,则可以使用Capabilities.screenXCapabilities.screenY

我相信你必须使用Mac。 72通常是Mac上的dpi;在Win机器上,其值通常为96.

以下引用对我有所帮助。这是关于dpi和屏幕分辨率在http://www.scantips.com/no72dpi.html的长篇文章。该帖子与您的问题仅有切线相关,但有关屏幕dpi如何工作的信息很有帮助。

您的网络浏览器报告说,您的屏幕尺寸目前设置为显示1440x900像素(屏幕的整个整个区域,而不仅仅是浏览器窗口)。因此,上面的每个412x324像素图像会出现在全屏(在当前视频设置下)的412/1440 = 29%宽度和324/900 = 36%高度处。我可以很容易地承诺,即使不存在也是如此,但你可以在自己的屏幕上查看它。我希望这对你来说也很明显,因为视频系统是如何工作的,而且你需要知道这一点。

更新:

一些调查研究后 -

如你所知,在screenDPI财产不给你每英寸的像素的实际数量 - 你将得到相同的值screenDPI在800x600,你会在1440x900。如果您已经知道屏幕的尺寸(以英寸为单位),那么您可以计算实际的ppi值 - 但是,当然,您无法从ActionScript获取该信息。在IE中,你可以从JavaScript获得它,但这没有多大帮助。

所以,就我所知,没有办法做到这一点。可能的话,你可以做一些疯狂的事情,比如用AS截取应用程序的屏幕截图,然后用屏幕分辨率信息发送给服务器,然后让服务器分析它告诉你你的应用程序有多宽和多高,以及由于您知道您的应用程序有多宽,多高像素,因此您可以计算每英寸的像素数。但是,我不知道如何或如果一个服务器应用程序会完成。

希望有一种方法可以通过JavaScript获取。我已经看到一些关于设置div的宽度/高度为1in的帖子,然后查询offsetWidth/offsetHeight,但这不会比screenDPI更好。有趣的是,我从这种方法得到96(不管分辨率),即使我从screenDPI得到72。

据我所知,如果不预先知道屏幕的尺寸(以英寸为单位),则无法确定一英寸内的实际像素,而且您无法从浏览器获取该信息。

无赖。

+0

但这仍然不能回答我关于屏幕尺寸dpi的问题。假设我想在屏幕上绘制一个真实尺寸的标尺,但不知道屏幕dpi是不可能的。 无论如何非常感谢。 – StfnoPad 2009-06-29 00:03:33

+0

我的意思是你得到正确的信息。 72是屏幕dpi的正确值。您可以通过javascript获取s reen dpi来检查我自己。它将在mac上成为72,在胜利上成为96。不确定其他系统。这是一个非常有趣的想法 - 真正的尺寸标尺。我想不出办法做到这一点。如果你不受限制,你会介意发布你的方法吗?完全理解你是否不想,当然。 – 2009-06-29 03:59:56

+0

DPI随每个屏幕而变化。只要想想一下,说你有三个屏幕: (1)一个20“1024x768(2)一个20”1280x768和(3)一个20“1920x1080。 这三个屏幕是否有相同的DPI?肯定不是。 我猜它有点让人困惑,你有屏幕dpi和操作系统的dpi。 干杯无论如何... – StfnoPad 2009-06-29 11:45:30

1

假设你有2个监视器,17“和19”与相同的分辨率1280x1024(我有这两个)。这意味着反映像素尺寸(或准确地说,适合一英寸的像素数量)的实际DPI对于这两个尺寸将是不同的 - 具有相同分辨率的较小显示器将具有较大的DPI值。

这意味着没有办法从actionscript或javascript获取实际的DPI。你可以用像素来获得屏幕宽度(1280),但是你不能以英寸得到实际的显示器尺寸,所以你不能计算它。

我想,窗口返​​回默认值72和mac 96,但不幸的是不反映真正的价值。

这意味着,有没有办法,例如,做一个正方形,这将是宽10英寸,所有显示器:\

在Windows

,如果您已正确安装显示器驱动程序,也许你可以得到DPI从监视器驱动程序(我想这是你可以从ie得到的东西),但在我看来,没有办法让它在所有的浏览器/平台上工作。

相关问题