0

編集: Stackoverflowの次の質問も参照してください: Flash Builder Mobile AS3プロジェクト:画面DPI、アプリケーションDPI、画像DPI、中央画像

DPI設定と関係があります.......


DisplayObjectを画面の中央に配置したい。これは、リソースから動的に作成された画像です。次のコードを使用して、オブジェクトの作成後にオブジェクトを中央に配置します。

public function showProgress(bValue : Boolean = true):void
{
  this.imgProgress.visible = bValue;
  if( bValue )
  {
    this.imgProgress.x = (this.stage.stageWidth - this.imgProgress.width) * 0.5;
  }
}

私には非常に単純に見えますが、オブジェクトはまだ中央にありません。例えば:

this.stage.stageWidth == 500;
this.imgProgress.width == 480;
Result is: 10px; (this.imgProgress.x) /* 10px is correct */

localToGlobalとGlobalToLocalを使用していくつかのことを試しましたが、予測できない結果が得られましたが、それでも中央に配置されていません。

画面のdpiか何かと関係があると思いますか?しかし、Capabilities.screenDPIは奇妙な結果を返します。たとえば、iPhone 3GSとして実行すると、163dpiが返されます。

正しい中心位置を計算するにはどうすればよいですか?

編集:いくつかの追加情報:

public class Main extends Sprite
{
// setup stage
this.stage.color = 0;
this.stage.align = StageAlign.TOP_LEFT;
this.stage.scaleMode = StageScaleMode.NO_SCALE;

imgProgressはthis.stageの子です

4

1 に答える 1

0

アスペクト比と関係があります(計算すると、正しく中央に配置できます)

参照: AS3モバイルアプリケーションでのApplicationDPIの設定

于 2012-05-30T12:40:36.003 に答える