2017-06-13 56 views
0

我一直在试图做几件事情,但我做不到。FileSystemTree itemRenderer

1 - 我一直对皮肤mx:FileSystemTree进行皮肤水平显示数据,我认为它几乎是不可能的,任何人都有想法如何使它?

2 - 我正在测试的第二件事是添加一个itemRenderer到FileSystemTree想要添加一对botton(添加和删除,至此我已经工作)。一切我试过到目前为止被赋予了同样的错误: TypeError: Error #1034: Type Coercion failed: cannot convert SKins::[email protected] to mx.controls.listClasses.IListItemRenderer.

<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         width="750" height="500"> 


    <s:layout> 
     <s:VerticalLayout/> 
    </s:layout> 
    <s:VGroup width="607" height="134"> 
     <s:HGroup width="607" height="68"> 
      <s:Button label="Button"/> 
      <s:Button label="Button"/> 
     </s:HGroup> 
     <s:TextInput width="600"/> 
    </s:VGroup> 
    <mx:HDividedBox> 
     <mx:FileSystemTree id="tree" width="615" height="480" allowMultipleSelection="true" 
          borderVisible="false" defaultLeafIcon="@Embed('../assets/folder.png')" 
          directory="{new File(raiz)}" dragEnabled="true" dropEnabled="true" 
          folderClosedIcon="@Embed('../assets/folder.png')" 
          folderOpenIcon="@Embed('../assets/openFolder.png')" fontSize="45" 
          fontStyle="normal" fontWeight="normal" iconFunction="selectIcon" 
          itemRenderer="SKins.FileSystemItemRenderer" showIcons="true" 
          textAlign="left" textDecoration="none" verticalAlign="middle"/>  

    </mx:HDividedBox> 

</s:WindowedApplication> 

这就是代码至极是要告诉树。

<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       autoDrawBackground="true"> 

    <s:Label text="{data}"/> 

</s:ItemRenderer> 

我试着用一个简单的渲染器收回错误#1034。

<?xml version="1.0" encoding="utf-8"?> 
<!-- http://blog.flexexamples.com/2010/04/08/creating-an-alternating-item-renderer-in-a-spark-list-control-in-flex-4/ --> 

<s:MXTreeItemRenderer name="IListItemRenderer" 
       xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx"> 

    <s:HGroup id="hGr" left="4" right="4" top="4" bottom="4"> 
     <s:RichText id="lbl" text="({itemIndex}) {data.label}" width="100%" /> 
     <mx:Image id="img" source="{data.img}" toolTip="{data.img}" width="100" height="67" /> 
    </s:HGroup> 

</s:MXTreeItemRenderer> 

我也尝试过其他渲染器,但结果相同。

我希望有人能帮助我。 谢谢。

回答

0

不能确定水平显示数据,但关于itemrenderer的第二点对我来说工作正常。这里是工作的代码

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

<s:HGroup id="hGr" left="4" right="4" top="4" bottom="4"> 
    <s:Rect id="indentationSpacer" 
      width="{treeListData.indent}" height="22" 
      alpha="0"> 
     <s:fill> 
      <s:SolidColor color="0xFFFFFF" /> 
     </s:fill> 
    </s:Rect> 
    <s:Group id="disclosureGroup"> 
     <s:BitmapImage source="{treeListData.disclosureIcon}" 
         width="16" height="16" 
         visible="{treeListData.hasChildren}" /> 
    </s:Group> 
    <s:BitmapImage source="{treeListData.icon}" 
        width="16" height="16"/> 
    <s:RichText id="lbl" text="{data.nativePath}" toolTip="{data.nativePath}" width="100%" maxDisplayedLines="1" /> 

    <s:Button label="Button"/> 
    <s:Button label="Button"/> 
</s:HGroup> 

+0

谢谢你的男人!!!你从头痛救我!我不知道为什么它没有工作,但你的解决方案是伟大的!我只是将RichText更改为Label,导致RichText未显示,再次感谢。 – Jaime