2012-05-03 30 views
0

Flexのコンポーネントの検証と無効化とはまだ混同しています。誰でも私に、どのような無効化ができないのか、またその逆のことができるかについて簡単な比較をしてください。フレックス検証無効化(コンポーネントライフサイクル)

本当にありがとうございます。

ありがとうございました。

+1

FlexのUIコンポーネントのライフサイクル(http://stackoverflow.com/questions/6357543/ui-component-life-cycle-in-flex)または[Flexの検証と無効化](http: //stackoverflow.com/questions/3103014/validation-and-invalidation-in-flex) –

+0

混乱する前にトピックを調べるために何をしましたか?検索を行うと、このトピックに関する豊富なドキュメント、ブログ投稿、プレゼンテーション、サンプルがあります。 Flexフレームワークのコードを開いてブレークポイントを入れて把握するのはどうですか? – JeffryHouser

答えて

1

私はコメントに同意しますが、これは「無効化」と「検証」方法の全体的な関係が欠落していると考えられています。基本的には、表示リスト、サイズ、プロパティのいずれかを無効にする呼び出しを行うときは、そのいずれかのブール値フラグを設定するように指示します(変更するプロパティを変更するときはいつでもこれら3つのうちのどれかは、widthの設定時にinvalidatePropertiesなどの適切な無効化メソッドを呼び出します)。次の入力フレーム/レンダリングが発生すると、フラグをチェックし、いずれかが無効に設定されている場合は、対応する検証メソッド(updateDisplayList、commitProperties、measure)を呼び出します。

FB/EclipseでCtrl + Shift + Tを押し、UIComponentをプルアップするには、UIComponent.asが開いたらCtrl + Oキーを押し、validateNowを入力するとメソッド本体が1行で表示されますそれが何をしているのかを説明する素敵なASDocコメントです。それよりも、validateClientをILayoutManagerで呼び出し、LayoutManager(Ctrl + Shift + Tをもう一度押す)を開いてvalidateClientを見ると、基本的にここで何をしているのかが分かります。

私はこのボートの中にあって、プロパティの更新とそれが兄弟/親/子どもに影響を与えることの関係を理解し​​ていないので、これはどこから来ているのでしょうか?プロパティはフレームのリフレッシュの間に複数回変更することができ、実際に再描画されるまで、その周りのすべてを再計算する必要はありません。

プロパティを変更して即座に(次の行実行時に)、レイアウトの他の部分を変更した場合の影響を確認できる問題があります。この場合、validateNow( )プロパティを変更した後で、再描画が発生する前に複数回発生しても、すべてのプロパティを即座に更新するよう強制します。これは、通常、望ましくないCPU時間が無駄になることを意味するため、一般的には素晴らしい方法ではありませんが、最も簡単なオプションです。

+0

素晴らしい返信です。ありがとう。 – TrexTroy

+0

私は正しくポイントにヒット喜んで問題はありません。誤った情報を記載しても誰でも私に知らせることができますが、私ができる限り多くの情報源で回答を返そうとしました。 – shaunhusain

関連する問題