2010-03-26 3 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 값이 모니터는 실제 다른 한 경우에도 동일한 해상도를 실행하는 두 개의 모니터에 대해 동일한 값이 될 것 기능 클래스에 의해 반환되는 것입니다 치수.

두 개의 모니터가 있는데 하나는 14 "이고 다른 하나는 28"이며 둘 다 800 x 600 픽셀의 동일한 해상도를 표시하는 경우, 해당 screenDPI 속성은 둘 다이기 때문에 동일한 것을 반환합니다 동일한 해상도를 사용합니다.

그러나 모니터의 물리적 크기 때문에 각 화면에서 문자 그대로 실제 화면의 점 수는 달라집니다. 따라서 코드를 실행하고 화면에 표시되는 Sprite를 눈금자로 측정하면 실제 크기와 일치하지 않습니다. 나는 당신이이 문제를 어떻게 풀 수 있는지 확신하지 못한다. (나는 그것이 무엇을 일으키는가에 대해 옳다면) 그것이 어려울 것 같다.

Debu

0

내가 (XX는 screenDPI 계산한다) "나는 모니터가 XX 인치 감지"사용자가 말하는 앱 시작시에 제시하고 사용자가 올바른 모니터 크기를 입력 할 수 있습니다.