0

関数をオーバーライドIGridItemRenderer.prepare()し、いくつかのことを行います。

override public function prepare(hasBeenRecycled:Boolean):void
{
  cb.selected = grid.selectionContainsIndex(rowIndex);//cb is CheckBox itemrenderer
}

この準備関数が呼び出されたとき? そして何回?そしてそれは何をしますか?デバッグ中に、このメソッドが継続的に呼び出されていることに気付きました.このメソッドをオーバーライドすることでパフォーマンスの問題はありますか?

4

1 に答える 1

2

Flex では、アイテム レンダラーはフレームワークによって自動的に構築、破棄、リサイクルされます。リソースを節約するために、以前に使用されていないオブジェクトをリサイクルしようとします。

準備は、アイテムレンダラーが新しい行、セル、オブジェクトなどに影響を受けるときに呼び出されます...

これを使用して、いくつかのラベル、フィールドなどを初期化できます...

デバッグ中に「継続的に呼び出されている」ことに気付いた場合、それはおそらく次のワークフローが原因です: - アイテムがフォーカスを獲得し、フレームワークが prepare() を呼び出します - IDE がメソッドで停止し、アプリケーションがフォーカスを失いました - デバッグが終了したら、あなたのアプリケーションが再びフォーカスを得ると、prepare メソッドが呼び出されます - など...

決定的には、{data.myFields} へのバインディングを使用して、データ オブジェクトが影響を受けるときに自動的に値を表示するか (prepare メソッドを介してサイレントに)、​​そうでない場合は、このメソッドをオーバーライドして、表示用のいくつかの属性を準備します。

パフォーマンスに関しては、すべてが似ているはずです。

ハイ

于 2013-01-21T14:07:44.620 に答える