【问题标题】:how to draw 2 centimeters long line on screen in adobe air如何在adobe air的屏幕上绘制2厘米长的线
【发布时间】:2013-07-27 02:37:57
【问题描述】:

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

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

最好的问候

【问题讨论】:

  • 起初我想建议从这个页面 (adobe.com/devnet/flash/articles/…) 进行转换。但是使用 Capabilities.screenDPI 似乎是错误的。在我的电脑上,我总是得到 72 像素,尽管它更多。我希望有人能给我们一个好的解决方案。

标签: apache-flex air flex4


【解决方案1】:

如果我没记错的话,您将无法在桌面上执行此操作,因为 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。我希望我是错的,但我不相信我是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    相关资源
    最近更新 更多