2012-05-18 140 views
1

使用Capabilities访问信息时,我得到的值不正确。显示错误信息的功能

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); 

当我在flex模拟器上调试这个,对于iphone 4,我得到以下结果。

screenX : 1280 
screenY : 1024 
pixelCheck : 1310720 
pixels : 2686976 
screenSize : 5.028220260069967 
screenDpi : 326 

的屏幕DPI是正确的,但由于iPhone拥有的640×960的分辨率,为什么它显示不同的值。

+2

我认为它是显示您的系统屏幕的rezolution,但不是从模拟器。试试:'Capabilities.os',找出Flash Player是哪个宇宙。 –

+0

是的,Capabilities.os给Windows 7 – frewper

+0

好吧,我在一个物理的Android设备上执行应用程序,并得到了它的确切分辨率。所以它只是一个问题,它实际上获得了计算机的分辨率和操作系统。 – frewper

回答

0

这是预期的行为。 Capabilities类正在返回正确的值;这是您运行它的设备(又称不是iPhone)的屏幕分辨率。您可以申请bug report/enhancement request。或者在实际设备上进行测试。总的来说,我发现仿真器在测试方面受到打击或遗漏。

+0

任何人检查那些错误报告? –