2010-03-26 70 views
0

我试图使用Capabilities类在屏幕上准确地绘制一个精确大小的精灵(2.5“x 5”),无论屏幕的分辨率如何,但是当我相信代码是正确的时,大小精灵不准确 - 当用尺子实际测量时。ActionScript的屏幕测量

function inchesToPixels(inches:Number):uint 
    { 
    return Math.round(Capabilities.screenDPI * inches); 
    } 

var mySprite:Sprite = new Sprite(); 
mySprite.graphics.beginFill(0x000000, 0.5); 
mySprite.graphics.drawRect(0, 0, inchesToPixels(2.5), inchesToPixels(5)); 
mySprite.graphics.endFill(); 
addChild(mySprite); 

回答

1

我不能完全肯定这一点,但我的感觉是,screenDPI值由Capabilities类返回的将是运行相同的分辨率,即使显示器有不同的物理两台显示器相同的值尺寸。为了说明,如果你有两个显示器,一个是14“,另一个是28”,两者都显示相同的800×600像素分辨率,那screenDPI属性会返回相同的东西,因为它们都是使用相同的分辨率。

但是,由于显示器的物理尺寸不同,每个屏幕上文字实际英寸的点数将有所不同。所以,当你运行你的代码并测量你用尺子创建的屏幕上的Sprite时,它不会匹配真实世界的英寸。我不确定你是如何解决这个问题的(如果我正确的说是什么导致了这个问题),它似乎很难。

得不

0

我在你的应用程序开始建议告诉用户“我发现你的显示器是XX英寸”(其中xx是从screenDPI计算),并允许用户输入一个正确的显示器尺寸。