While accessing information using Capabilities, i am getting incorrect values.
var screenX:Number = Capabilities.screenResolutionX;
var screenY:Number = Capabilities.screenResolutionY;
var pixelCheck:Number = screenX * screenY;
var pixels:Number = (screenX*screenX) + (screenY*screenY);
var screenSize:Number = Math.sqrt(pixels)/Capabilities.screenDPI;
var screenDpi:Number = Capabilities.screenDPI;
trace("screenX : " + screenX);
trace("screenY : " + screenY);
trace("pixelCheck : " + pixelCheck);
trace("pixels : " + pixels);
trace("screenSize : " + screenSize);
trace("screenDpi : " + screenDpi);
When i debug this on the flex emulator, for iphone 4, i get the following result.
screenX : 1280
screenY : 1024
pixelCheck : 1310720
pixels : 2686976
screenSize : 5.028220260069967
screenDpi : 326
The Screen dpi is correct, but since iphone has a resolution of 640 X 960, why is it showing different value.
This is expected behavior. Capabilities class is returning the correct values; which is the screen resolution for the device you’re running it on (aka not an iPhone ).
You can file a bug report/enhancement request. Or test it on an actual device. Overall I find the emulators to be hit or miss in terms of testing.