0

visibleのプロパティDisplayObjectが次のとおりであるかどうかについて困惑しています。

  • 表示オブジェクトが可視かどうかのFlex からの指示。
  • 表示オブジェクトを表示するためのFlexへの命令。

Flex Pilot を使用していくつかの Flex テストを自動化していて、表示オブジェクトがいつクリック可能になるかを確実に知る必要があるため、質問しています。私がテストしているアプリケーションでは、クリック可能とはレンダリングを意味するようです。

updateCompletedアプリケーションと私のテストの性質を考えると、イベントを監視することは現実的ではないと思います。特定の時点でのプロパティとコンテナのプロパティの値に基づいて、表示オブジェクトが表示されているかどうかを検出する方法が必要です。

表示オブジェクトのvisibleプロパティが true であっても、すべてのコンテナーが表示されている場合にのみ表示されることを理解しています。これは、ActionScript メソッドを記述して Flex Pilot を拡張し、表示オブジェクトとそのコンテナすべてにvisible=true. しかし、そのメソッドでさえ、表示オブジェクトが実際にレンダリングされているため、クリック可能であることを確認できないことが心配です。

私のパズルは、Adobe の 2 つの説明を読むことから生まれました。

高度なコンポーネントの作成について」visibleドキュメントでは、表示オブジェクトのレンダリング後に Flex によってプロパティが設定されることが示唆されています。この説明では、値を設定するのは Flex の仕事であるため、値は表示オブジェクトが表示されるかどうかを Flex から示すものです。

一方、アドビのプロパティの説明は、visibleプロパティが書き込み可能であることを示唆しています。また、コード サンプルは、アプリケーションが値を変更すると、Flex が表示オブジェクトを表示または非表示にすることで応答することを示しています。この記述では、アプリケーションはオブジェクトを表示するための指示として値を Flexに設定します。この場合、Flex は表示オブジェクト ( からにvisible変更された場合) またはそのコンテナー (からに変更された場合) を再レンダリングすると推測しています。falsetruevisibletruefalse

2 つの主な質問:

プロパティはvisible、表示オブジェクトの可視性に関する Flex からの指示と、オブジェクトを表示するかどうかに関する Flex への指示の両方として、これらの両方の方法で使用されますか?

アプリケーションがvisiblefalse から true に変更された場合、表示オブジェクトが実際に表示されるのはいつですか? セッターが戻るまでに表示されますか? それとも、プロパティの設定は、後のイベント中にオブジェクトが表示されるようにスケジュールするだけですか? 後者の場合、true の期間が存在する可能性がありvisibleますが、表示オブジェクトはまだレンダリングされていません。だとすると、ある瞬間の表示オブジェクトの状態から、表示オブジェクトがレンダリングされたかどうかを判断する方法に困ってしまいます。

4

1 に答える 1

3

DisplayObject をレンダリングするには、いくつかの重要な制約があります。まず第一に、それは表示リストにある必要があります。visible は true に設定する必要があります。そうしないと、レンダリングから無視されます。最後の重要な側面は、イベント処理、コード実行、およびレンダリングがいつ発生するかを基本的に説明する、いわゆるエラスティック レース トラックです。したがって、FlexEvent.UPDATE_COMPLETE のイベント ハンドラーを実装することはそれほど間違っていません。プロパティが変更されるたびにイベント ハンドラーがディスパッチされ、画面上のコンポーネントのレンダリングされた表現が変更されるからです。

visible プロパティは、表示オブジェクトの可視性に関する Flex からの指示と、オブジェクトを表示するかどうかに関する Flex への指示の両方として、これらの両方の方法で使用されますか? はい、FlexEvent.CREATION_COMPLETE がディスパッチされる前に、visible プロパティは最初にフレームワークによって true に設定されるため、Flash プレーヤーはコンポーネントを特定の状態 (Flex ビューの状態という意味ではありません) で描画しません。構築し、完全に初期化されたビューを持っています。

アプリケーションが false から true に変更された場合、表示オブジェクトが実際に表示されるのはいつですか? 次のレンダリング サイクルが発生した後。

于 2012-06-03T08:13:41.583 に答える