1

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

说明: 我从另一个应用程序获取参数,例如 x 厘米,而该参数以厘米为单位。我需要从屏幕顶部精确地画一个 x 厘米的圆圈。

此致

4

1 回答 1

0

如果我没记错的话,您将无法在桌面上执行此操作,因为 AIR 始终为屏幕返回 72DPI(不过,我在这一点上可能不正确)。不过,在移动设备上执行此操作相当容易,假设 AIR 返回正确的 DPI(我相信,在 AIR 3.3 之前,视网膜 iPad 没有返回正确的 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,我不相信这将在桌面应用程序中起作用。我希望我错了,但我不相信我错了。

于 2013-07-26T18:37:57.697 回答