2010-03-26 69 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計算),並允許用戶輸入一個正確的顯示器尺寸。