0

状況
プロジェクタとしてエクスポートされた Flex プロジェクトがフルスクリーンで表示されます。プロジェクトには、背景と、それぞれが「場所」を表すいくつかのドットがあります。これらの場所は XML ファイルから取得され、その位置がパーセンテージで設定されます。ピクセル単位の位置は、アプリケーションの幅と高さによって計算されます (これは正常に機能します)。ドットは正しく配置されます。

背景は解像度 1280*1024 の JPG です。この時点で、背景はCanvaswithに設定されていbackgroundSize = autoます。これにより、イメージが引き伸ばされずに中央に配置されます。引き伸ばすと、醜いピクセル化された画像になり、プロポーションがバラバラになります。

問題
プロジェクトを 2 つの異なる解像度 (1 = 1280*1024; 2 = 1024*768) で表示すると、ドットが適切な位置にあり、背景画像が鮮明です。ただし、背景の解像度は 1 と同じであるため、解像度 2 では背景が完全には表示されません (引き伸ばされていないためです。論理的な結果です。

というわけで、背景を伸ばしてみました。結果:
正しい方法で配置されたドット http://i733.photobucket.com/albums/ww336/winkelman66/example1.jpg

小さい/その他の解像度:
代替テキスト http://i733.photobucket.com/albums/ww336/winkelman66/example2.jpg

解決?
この問題を解決するにはどうすればよいですか? プロポーションはそのままで、常に背景を下の中央に配置することを考えました。画像の詳細/部分が欠落しているため、これはオプションではありません。引き延ばすと、バランスの取れていない見苦しいピクセル化された画像が生成されます。
画像の一部を失わずに解像度の問題に取り組むにはストレッチが唯一の選択肢かもしれませんが、ドットが適切な位置にない問題を解決するにはどうすればよいでしょうか (画像 2 が示すように)。

4

2 に答える 2

1

これがまさにあなたの言いたいことかどうかはわかりませんが、試してみます:P

  1. 元の背景サイズを取得する
  2. 引き伸ばされた背景のサイズを取得する
  3. 幅と高さの差を計算する
  4. 差をポイント位置に反映
于 2010-02-17T10:42:39.640 に答える
0

大きな問題、簡単な解決策(これに何時間も取り組んだ後)。計算で1つの簡単なことを忘れました:位置のドットのサイズ(幅/高さ)を反映します...

したがって、パーセンテージからピクセル単位で位置を計算するときに同じ問題に直面した場合は、計算に含めることを忘れない(viewToBePositioned.width / 2)でください:-)

于 2010-02-17T16:00:37.463 に答える