2009-06-26 94 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得到的東西),但在我看來,沒有辦法讓它在所有的瀏覽器/平臺上工作。

相關問題