2011-08-02 63 views
0

我想使用Spark Grid,但同時我意識到對於某些組件,例如<GridItem>,沒有Spark等價物。
所以,我是混合兩種Spark和Halo組件的程序,但是當我跑了,我得到了錯誤:Spark Grid是否取代MX Grid?

"TypeError: Error #1034: Type Coercion failed: cannot convert spark.components::[email protected] to mx.containers.Grid."

程序:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> 

<s:Grid> 
    <mx:GridRow id="row1"> 
     <mx:GridItem>   
      <s:Label text="Description:" paddingTop="5"/> 
     </mx:GridItem>  
     <mx:GridItem>  
      <s:TextArea id="descTI" width="300" height="50"/> 
     </mx:GridItem> 
    </mx:GridRow>  
    <mx:GridRow id="row2"> 
     <mx:GridItem>   
      <s:Label text="Name:" paddingTop="5"/> 
     </mx:GridItem>   
     <mx:GridItem>  
      <s:TextInput id="nameTI" width="300"/> 
     </mx:GridItem> 
    </mx:GridRow> 
    <mx:GridRow id="row3"> 
     <mx:GridItem>   
      <s:Label text="Target:" paddingTop="5"/> 
     </mx:GridItem>  
     <mx:GridItem> 
      <s:TextInput id="targetTI" width="300"/>  
     </mx:GridItem> 

    </mx:GridRow> 
    <mx:GridRow id="row5"> 
     <mx:GridItem> 
      <s:Label text="Operand:" paddingTop="5" /> 
     </mx:GridItem> 
     <mx:GridItem> 
      <mx:DataGrid id="attrDG">  
       <mx:columns>   
        <mx:DataGridColumn dataField="variable" width="150"/>   
        <mx:DataGridColumn dataField="level"   
             width="150"/>  
       </mx:columns>  
      </mx:DataGrid>  
     </mx:GridItem> 

     <mx:GridItem paddingLeft="3" colSpan="2"> 
      <mx:DataGrid id="attrDG0">  
       <mx:columns>   
        <mx:DataGridColumn dataField="variable" width="150"/>   
        <mx:DataGridColumn dataField="level"   
             width="150"/>  
       </mx:columns>  
      </mx:DataGrid>  
     </mx:GridItem> 
    </mx:GridRow> 
</s:Grid> 
</s:Application> 

回答

2

spark.components.Grid並不意味着取代mx.containers.Grid。相反,它的直接用途是作爲spark.components.DataGrid組件的組件,這意味着在實現IList的數據提供程序中呈現項目。有關更多詳細信息,請參閱Spark Grid上的語言參考文檔。您可以繼續使用mx:Grid。您甚至可以在官方使用Flex 4.5參考號:MX Grid layout container中找到它的示例。

但是,我會提供一個觀察,你可能也想看看s:Form容器。您對前三行進行佈局的方式對我來說似乎更適合Form所設計的用例。

最後,s:DataGrid旨在代替mx:DataGrid。所以你應該確保使用它。