2015-08-07 4 views
0

Я бегу в проблему с этой ошибки в моем веб-приложение флэш времени компиляцииОшибка: не удалось разрешить <mx:columns> для реализации компонента

Error: Could not resolve <mx:columns> to a component implementation. 

Вот что имел обыкновение быть там (и было бы составить)

<?xml version="1.0" encoding="utf-8"?> 
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" verticalScrollPolicy="auto"> 
<mx:AdvancedDataGrid id="myDataGrid" 
      width="100%" 
      showHeaders="false" 
      includeInLayout="{myDataGrid.visible}" 
      defaultLeafIcon="{null}" 
      horizontalGridLines="true" 
      verticalGridLines="true" 
      horizontalGridLineColor="#E4E4E4" 
      verticalGridLineColor="#E4E4E4" 
      rowCount="6" 
      minHeight="94" 
      variableRowHeight="true" 
      selectable="false" 
      > 

    <mx:columns> 
     <mx:AdvancedDataGridColumn dataField="Property" headerText="Property" backgroundColor="#E5EFF5" width="0.5" wordWrap="true"/> 
     <mx:AdvancedDataGridColumn dataField="Value" headerText="Value" backgroundColor="white" width="0.5" itemRenderer="MyCustomRenderer"/> 
     <mx:AdvancedDataGridColumn dataField="RowIdentifier" visible="false"/> 
    </mx:columns> 
</mx:AdvancedDataGrid> 
</mx:Box> 

Теперь я хочу, чтобы изменить его к следующему

//In ActionScript 
package widgets 
{ 
import mx.controls.AdvancedDataGrid; 

public class CustomAdvancedDataGrid extends AdvancedDataGrid 
{ 
    public function CustomAdvancedDataGrid() 
    { 
    } 

    override protected function measure():void 
    { 
     super.measure(); 
     if(this.dataProvider != null && this.dataProvider.length > 0) 
     { 
      this.measuredHeight = this.measureHeightOfItems(0, dataProvider.length); 
     } 
    } 
} 
} 


// In Modified mxml to use the subclass 
<?xml version="1.0" encoding="utf-8"?> 
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:customWidgets="widgets.*" 
    verticalScrollPolicy="auto"> 
<customWidgets:CustomAdvancedDataGrid id="myDataGrid" 
      width="100%" 
      showHeaders="false" 
      includeInLayout="{myDataGrid.visible}" 
      defaultLeafIcon="{null}" 
      horizontalGridLines="true" 
      verticalGridLines="true" 
      horizontalGridLineColor="#E4E4E4" 
      verticalGridLineColor="#E4E4E4" 
      rowCount="6" 
      minHeight="94" 
      variableRowHeight="true" 
      selectable="false" 
      > 

    <mx:columns> 
     <mx:AdvancedDataGridColumn dataField="Property" headerText="Property" backgroundColor="#E5EFF5" width="0.5" wordWrap="true"/> 
     <mx:AdvancedDataGridColumn dataField="Value" headerText="Value" backgroundColor="white" width="0.5" itemRenderer="MyCustomRenderer"/> 
     <mx:AdvancedDataGridColumn dataField="RowIdentifier" visible="false"/> 
    </mx:columns> 
</customWidgets:CustomAdvancedDataGrid> 
</mx:Box> 

Я добавил mx.swc в путь компилятора Flex, как это предлагается в другой ссылке stackoverflow, но это не помогло.

Любая помощь приветствуется.

+0

Может кто-то подскажет, как это может быть сделано в ActionScript, возможно? – user2789284

ответ

2

Поскольку ваш подкласс AdvancedDataGrid находится в другом пространстве имен, то columns член должен быть в том же пространстве имен:

<customWidgets:CustomAdvancedDataGrid ...> 
    <customWidgets:columns> 
     <mx:AdvancedDataGridColumn ...> 
    </customWidgets:columns> 
</customWidgets:CustomAdvanceDataGrid> 
+0

Большое спасибо. Так оно и было. Но столбцы все еще находятся в пространстве имен mx? – user2789284

+0

Вы имеете в виду элементы AdvancedDataGridColumn? Да, они все еще находятся в пространстве имен mx. –

Смежные вопросы