Мне никогда не удавалось полностью понять, почему это так, но на самом деле это правильно. Если вы хотите получить информацию о ширине по высоте, вы можете использовать Capabilities.screenX
и Capabilities.screenY
.
Полагаю, вы используете Mac. 72 - это dpi на Mac; на Win-машине это значение обычно составляет 96.
Следующая цитата мне очень помогла. Это из длинного поста о dpi и разрешении экрана на http://www.scantips.com/no72dpi.html. Пост только косвенно связан с вашим вопросом, но информация о том, как работает screen dpi, полезна.
Ваш веб-браузер сообщает, что ваш размер экрана в настоящее время настроен на отображение 1440x900 пикселей (общая полная область вашего экрана, а не только окно браузера). Поэтому каждое изображение размером 412x324 пикселя выше будет отображаться при 412/1440 = 29% ширины и 324/900 = 36% высоты вашего полного экрана (при текущих настройках видео). Я легко могу пообещать, что это правда, даже не будучи там, но вы можете проверить это на своем экране для себя. Надеюсь, вам это тоже кажется очевидным, потому что именно так работают видеосистемы, и вы должны это знать.
ОБНОВЛЕНИЕ:
После еще одного исследования -
Как вы знаете, свойство screenDPI
не дает фактического количества пикселей на дюйм - вы получите то же значение для screenDPI
при 800x600, что и при 1440x900. Если вы уже знаете размеры экрана в дюймах, то вы можете рассчитать фактическое ppi - но, конечно, вы не можете получить эту информацию из ActionScript. В IE вы можете получить его из JavaScript, но это мало помогает.
Так что, насколько я могу судить, сделать это невозможно. Возможно, вы могли бы сделать что-то вроде сумасшедшего, например сделать снимок экрана вашего приложения с AS, и отправить его на сервер с информацией о разрешении экрана, и позволить серверу проанализировать его, чтобы сказать вам, сколько дюймов и в ширину ваше приложение - и так как вы знаете, сколько пикселей в ширину и в высоту вашего приложения, вы можете рассчитать количество пикселей на дюйм. Но я понятия не имею, как или если серверное приложение выполнит это.
Хотелось бы найти способ получить это через JavaScript. Я видел пару постов о том, как установить ширину / высоту div в 1 дюйм, а затем запрашивать offsetWidth / offsetHeight, но это работает не лучше, чем screenDPI
. Интересно, что я получаю 96 от этого метода (независимо от разрешения), хотя я получаю 72 от screenDPI
.
Насколько я могу судить, невозможно определить фактические пиксели в дюймах, не зная заранее размеров экрана в дюймах, и вы не можете получить эту информацию из браузера.
Облом.