1

Adobe Air アプリケーションで、画面上に長さ 2 cm の線を描画する必要があります。やり方がわからない!

説明: 別のアプリケーションからパラメーター x センチメートルを取得していますが、そのパラメーターはセンチメートル単位です。画面の上部から正確に x センチメートルの円を描く必要があります。

よろしくお願いします

4

1 に答える 1

0

私の記憶が正しければ、AIR は画面に対して常に 72DPI を返すため、デスクトップでは実行できません (ただし、その点では間違っている可能性があります)。ただし、AIR が適切な DPI を返すと仮定すると、モバイルで行うのはかなり簡単です (AIR 3.3 より前の Retina 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 メソッドに変えたいと思うでしょうが、それはうまくいくでしょう。

必要に応じて、AIR が DPI の違いをどのように処理するかを理解するために、昨年 Flex アプリケーションを作成しました。画面上のスライダーを使用して画面上の特定のサイズに赤い四角形を描画し、サイズ (インチ単位) を決定します。職場にはありませんが、家に帰ったらコードを投稿できます。

繰り返しますが、AIR は常に 72 DPI を報告するため、これがデスクトップ アプリケーションで機能するとは思えません。私が間違っていることを願っていますが、間違っているとは思いません。

于 2013-07-26T18:37:57.697 に答える