2010-03-26 7 views
0

Je tente d'utiliser la classe Capabilities pour dessiner une image-objet de taille précise sur l'écran à exactement (2,5 "x 5") quelle que soit la résolution de l'écran, mais même si je crois que le code est correct, le sprite n'est pas précis - en le mesurant réellement avec une règle.Mesures d'écran 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); 

Répondre

1

Je ne suis pas tout à fait sûr, mais mon sentiment est que la valeur screenDPI étant renvoyée par la classe Capabilities serait la même valeur pour deux moniteurs exécutant la même résolution, même si les moniteurs avaient des propriétés physiques dimensions. Pour illustrer, si vous avez deux moniteurs, l'un de 14 "et l'autre de 28", les deux affichant la même résolution de 800 x 600 pixels, cette propriété screenDPI retournera la même chose car ils sont tous les deux en utilisant la même résolution.

Cependant, le nombre de points dans un réel littéral réel sur chaque écran sera différent en raison des dimensions physiques du moniteur. Ainsi, lorsque vous exécutez votre code et que vous mesurez le Sprite à l'écran que vous créez avec une règle, il ne correspondra pas aux pouces du monde réel. Je ne sais pas comment vous pourriez contourner ce problème (si j'ai raison sur ce qui le cause), il semble que ce serait difficile.

Debu

0

Je suggère au début de votre application indiquant à l'utilisateur « Je détecté votre moniteur est XX pouces » (où XX est calculé à partir screenDPI), et permettre à l'utilisateur de saisir une taille de moniteur correct.

Questions connexes