2011-06-27 5 views
0

Flex 4.5を使用して完全にサイズ変更可能なアプリケーションを作成したいと考えています。私はすでに実験しましたが、私のアプローチは維持するのが難しいようですので、私には良く見えません。ここに私のアプローチがある:私は実際にユーザのモニタの解像度を検出し、幅と高さのパラメータを読み取り、するには、FlashをレンダリングするフラッシュコンテナHTML(JSP)にリダイレクトする最初のページを持っているHTMLに関する完全にサイズ変更可能なアプリケーション - Flex 4.5

  1. 私のアプリケーションでは
  2. を通過したサイズは、私は、私はユーティリティクラスを作成した基準サイズとして1280×720を使用:

パッケージutilsの { 輸入mx.collections.ArrayCollectionを。 import mx.core.FlexGlobals; import mx.resources.ResourceManager; import mx.utils.ObjectProxy;

/** 
* 
* @author user 
* 
*/ 
public final class LayoutUtils 
{ 
    /** 
    * 
    * 
    */ 
    public function LayoutUtils() 
    { 
     throw new Error("Boooohhhhhhhhhh"); 
    } 

    public static function relativeToHeight(percentageValue:Number):Number 
    { 
     return percentageValue * FlexGlobals.topLevelApplication.height/100; 
    } 

    public static function relativeToWidth(percentageValue:Number):Number 
    { 
     return percentageValue * FlexGlobals.topLevelApplication.width/100; 
    } 
} 

}

私は、高さまたは幅に対するパーセント値を渡し、私は戻ってそれを取得します。だから私は実際にコンポーネントの高さ/幅を例えば{LayoutUtils.relativeToWidth(50)}にバインドします。これはアプリケーションの幅が1280ならば640を返します。しかしこれは幅や高さをほぼすべてのコンポーネントに設定することを意味し、パディングとアンカー位置も含めて混乱。

他に提案がありますか?私はすべてのサイズを正しく(フォントを含む)サイズ変更したい。私が利用可能なすべての利用可能なサイズは、同じアスペクト比を維持します。これは他の方法では見ることができないため、例えば16:9になります。

提案がありますか?

+0

を設定します。デフォルトでは、HTMLコンテナのサイズが変更されている限り、Flexは既にサイズ変更可能です。あなたが望むものがFlexをスケールする必要がない限り(これはデフォルトではありません)。 –

答えて

1

あなたが何かを拡大したい場合は、お使いのアプリケーションコンテナ(スプライト)にscaleXscaleYを使用して、私はあなたが「完全にサイズ変更可能」で何をしたいかわからない

stage.scaleMode = StageScaleMode.SHOW_ALL; 
+0

回答回答ありがとうございます。まだテストしていないので、アプリケーションの作成完了ハンドラに入力したコードを含めると、2つの異なるHTMLファイルに1280x720となるオブジェクトを定義するSWFファイルが含まれています他の1600x900アプリケーション全体(フォントなど)はそれに応じて縮尺されますか? – DaTroop

+0

はい、デバッグプレーヤーで試して、ウィンドウのサイズを変更してください。それはその後、スケールする必要があります。 – DanielB

+0

水平中心の位置合わせのために、ブラウザでフラッシュオブジェクトのサイズを変更する必要があります。それがOKになることを願っています。再度、感謝します! – DaTroop

関連する問題