2012-03-21 8 views
0

私はこのコードを読んで私を魅了しました。私は前にこのようなスキンニングを見たことがありません。私は、それに対して不利な点や代替案があるかどうかを知りたい。たとえば、addChild呼び出しのようにCPU使用量が多いのですか?フレックスのボタンをドキュメントの状態でスキニングする

<s:Button id="loginoutBtn" right="10" top="10" label="Log out" label.loggedout="Log in" skinClass.loggedin="skins.FBLogoutButtonSkin" skinClass.loggedout="skins.FBLoginButtonSkin" click.loggedin="logout()" click.loggedout="login()"/> 

背景:上記のボタンはログインの例です。私は多くのスキニングを手がけてきましたが、そのプロセスはほとんど常に新しいスキンと一緒に行くための新しいコンポーネントをもたらしました。また、ToggleButtonを使用しますが、上記の使用例が良いでしょうか?

ログインとログアウトのボタンをxyの場所に配置しなければならない場合、どうすればよいでしょうか?

私は、次の2つのボタンまたは1つのボタンを行うと、プロパティを変更するか、このケースでは、私は彼らの関連するスキンとそれぞれのincludeInに設定された2つのボタンを持っていると思うので、

<s:Button id="loginBtn" includeIn="loggedIn" right="10" top="10" skinClass="skins.FBLoginButtonSkin" click="login()"/> 

<s:Button id="logoutBtn" includeIn="loggedOut" right="10" top="10" skinClass="skins.FBLogoutButtonSkin" click="logout()" /> 

答えて

1

この特別なケースでは、カスタムスキンを使用してToggleButtonを使用します。

なぜですか?代わりに「ホスト」コンポーネント内の2つの

  • クリーナーコードに要求

    • つのみカスタムスキン:不要二つのボタンまたは状態に関連する属性の束。 「選択された」だけが州に縛られる必要があります。
    • 質問があるので、おそらくCPU集約型のオプションは少ないです(A.ではボタンが1つしかなく、Bにはスキンが1つしかないため)。しかし、正直言って、とにかくそれは本当に問題ではないと思う:単一のボタンのパフォーマンスは本当に重要ではない。

    <s:ToggleButton id="loginBtn" selected.loggedin="true" selected.loggedout="false" 
           skinClass="skins.FBLoginToggleButtonSkin" 
           click="logInOrOut(loginBtn.selected)" /> 
    

    注:2つのラベルは、カスタムToggleButtonSkin内に定義されます。

    <s:Label text="log in" text.selectedStates="log out" /> 
    
  • +0

    私はスキンを多目的に考えると思っていましたが、もっとたくさんのものとしてスキンが作成されているのを見ています。 –

    +0

    @ 1.21ギガワットいくつかのスキンは「多目的」にすることができますが、通常はテーマで作成するスキンを作成します。たとえば、ButtonSkinを1つ作成し、アプリケーション全体ですべてのボタンに適用します。再利用不可能なカスタムコンポーネントの場合もありますが、このような特定の状況では再利用可能なコンポーネントにも適用できます。スキンをそのコンポーネントの特定のスタイリングとして見ています。コンポーネントを別の方法で表示する方法ですその行動や意味を変えてはいけません。 – RIAstar

    +0

    ありがとうRIAstar –

    1

    。パフォーマンスの影響の違いを確認するには、生成されたAS3コードを保持することが必要な場合があります。詳細については、このリンクを参照してください。

    http://saravananrk.wordpress.com/2008/05/26/keep-generated-actionscript-in-flex/

    どちらのアプローチが有効であるが、私は、彼らが将来変更される可能性があるように2つの異なるボタンを好むし、より多くの異なるなります。すべてのプロパティが状態に基づいている1つのボタンを持つ多くのポイントはありません。 2つのボタンがある場合もあり、コードをきれいに保ちます。

    +0

    おかげで@keyle - あなたは一度、すべてのか、プロジェクトごとにスキンを作成するのですか? (RIAstarにも同じ質問があります –

    +0

    スキン1つと2つのCSSプロパティ – keyle

    関連する問題