編集: 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の子です