海賊王をめざす男 マツです。こんにちは。

シルバーウィークにはまだ蝉の鳴き声が聞こえていましたが、もうすっかり夏のカケラはみなくなってしまいました。


DataGrid, TileList などの itemRenderer にカスタムコンポーネントを指定したとき、そのコンポーネントにアクセスする方法です。

main.mxml - TileList を用意します。

<mx:TileList id="thumbTileList"	itemRenderer="ImageComp">


ImageComp.mxml - Image を用意します。

<mx:Image id="thumbImage"/>


main.mxml - thumbTileList の itemRenderer (thumbImage) を参照。

// 適当な ArrayCollection を用意して dataProvider へ。
thumbTileList.dataProvider = _thumbAryC;
var _renderersAry:Array = thumbTileList.mx_internal::rendererArray;
if ( _renderersAry != null ) {
	for ( var a:int = 0; a < _renderersAry.length; a++ ) {
		if ( _renderersAry[a] != null ) {
			for ( var b:int = 0; b < _renderersAry[a].length; b++ ) {
				trace(_renderersAry[a][b].thumbImage);
			}
		}
	}
}


DataGrid, TileList などの itemRenderer を外から参照したいしたいときに使ってます。

HTML5飯