如何在adobe air中在屏幕上绘制2厘米长的线条

时间:2013-07-25 04:34:45

标签: flex air flex4

我需要在Adobe Air应用程序的屏幕上绘制2厘米长的线条。我不知道怎么做!

说明: 我从另一个应用程序获取参数说x厘米,并且该参数以厘米为单位。 我需要在屏幕顶部x厘米处画一个圆圈。

最好的问候

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,你将无法在桌面上执行此操作,因为AIR总是为屏幕返回72DPI(但是我可能在这一点上不正确)。但是,假设AIR返回正确的DPI(在AIR 3.3之前没有返回正确的DPI,我相信),这在移动设备上相当容易。

基本上,只需乘以DPI即可将英寸转换为像素。

var dpi:Number = Capabilities.screenDPI; //unnecessary to save local version, just easier to reference
var heightCM:Number = 5;
var widthCM:Number = 5;

var widthPixels:Number, heightPixels:Number;
var heightIn:Number = cmToInches( heightCM );
var widthIn:Number = cmToInches( widthCM );

widthPixels = widthIn * dpi;
heightPixels = heightIn * dpi;

function cmToInches( value:Number ):Number {
    return value * .393701;
}

这将花费一个大小(我为高度和宽度构建它,但你可以根据需要调整它),以厘米为单位,将其转换为英寸,然后将其转换为像素。您显然希望将其转换为一个整洁的静态Util方法,但它可以解决这个问题。

如果您愿意,我去年创建了一个Flex应用程序,试图了解AIR如何处理DPI差异。它只是使用屏幕上的滑块在屏幕上绘制一个特定大小的红色矩形来确定大小(以英寸为单位)。我在这里没有它,但我回家时可以发布代码。

同样,我不相信这会在桌面应用程序中起作用,因为AIR总是报告72 DPI。我希望我错了,但我不相信自己。