なにやら意味のわからないタイトルになっていますが、
なんとなく書いている flexのmxmlコンポーネント。

<mx:Canvas>
  <mx:Label />
</mx:Canvas>

なんて書いていたと思ったら、

<mx:DataGrid>
  <mx:columns>
    <mx:DataGridColumn />
  </mx:columns>
</mx:DataGrid>

のように書いていた。

columnsなんてコンポーネントはないはず。
ここでcolumnsなんて書かなくても、mx:DataGridColumnでいいのになーと思っていた。
また、タグの下に書いたものはその親のaddChildによって追加されると思っていた。

しかし、それではいろいろとつじつまがあわないのも分かっていた。

なんとなーく、flex frameworkのソースをぶらぶらと気になる部分を見ていたら気がつきました。
単なるDataGridのsetterでcolumnsを設定していたという事でした。

[AS]
[Bindable(“columnsChanged”)]
[Inspectable(arrayType=”mx.controls.dataGridClasses.DataGridColumn”)]
override public function set columns(value:Array):void{
}
[/AS]

という事なんですね。
だから、columnsの子はDataGridColumnになり、Array型として登録していたということでした。

だから、addChildじゃないんだーーー。

ルールといえばルールだが、エンジニアとしてはソースでわかると安心できますね。
頭での理解がたりなくても、肌の理解度がふかまりますよね。

いやー、この辺もわかった上でドキュメントとか見れば書いてあるんでしょうね。
わからないと、書いてあってもそれが読めないんですよね。

改めて、mxmlの基本を勉強しました。
これで、もう少しは独自コンポーネントを作りやすくなりました。

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2009年6月
« 5月   7月 »
1234567
891011121314
15161718192021
22232425262728
2930  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ