DataGrid を拡張してごにょごにょ、を試していたときのこと。
package mycomponent { public class ExtDataGrid extends DataGrid { // 省略 } }
拡張内容は省略するとして。mxml の方ではこんな使い方をしたら、タイトルのコンパイルエラーが発生した。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:mycomponent="mycomponent.*" ...> <mycomponent:ExtDataGrid id="dataGrid"> <mx:columns> <!-- この行でコンパイルエラー --> <mx:DataGridColumn ... /> </mx:columns> </mycomponent:ExtDataGrid> </mx:Application>
解決方法は、mx:columns を mycomponent:columns にする。エラーの原因について。columns の実体(?)は、DataGrid の override public function set columns(value:Array):void である。今回は DataGrid を拡張した ExtDataGrid を使用しており、mycomponent という名前空間にマッピングさせている。そのため、mycomponent の名前空間経由で columns プロパティを参照するようにしないとコンパイルエラーになるようだ。