0

我正在尝试<mx:List>使用从肥皂请求中收到的 dataProvider 填充。当我尝试实现此目的时出现以下错误:

TypeError: Error #1034: Type Coercion failed: cannot convert AchivementsItemRenderer@1906a851 to mx.controls.listClasses.IListItemRenderer. at mx.controls::List/createItemRenderer()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\controls\List.as:1987] at mx.controls::List/http://www.adobe.com/2006/flex/mx/internal::getMeasuringRenderer()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\controls\List.as:1896] at mx.controls::List/commitProperties()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\controls\List.as:911] at mx.core::UIComponent/validateProperties()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\core\UIComponent.as:7387] at mx.managers::LayoutManager/validateProperties()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\managers\LayoutManager.as:572] at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\managers\LayoutManager.as:700] at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1069]

如果我在 a 上使用相同的 dataProvider,<mx:Repeater>它可以正常工作。我错过了什么?

.mxml 文件

<?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:local="*" backgroundColor="#aabbcc" fontSize="11" creationComplete="init()"> `

    public var soap:SoapMyService = new SoapMyService();
    [Bindable]

    public var myData:Array;

    public function handleSoapResult(event:GetMyResultEvent):void {
        myData=event.result;
    }

    public function updateData():void {
        soap.getData(528);  

    }

    public function init():void {           
        soap.addgetMyDataEventListener(handleSoapResult);
        updateData();

    }

]]>

`

<mx:List id="myList" height="157" width="160" 
                    itemRenderer="theItemRenderer" 
                    baseColor="#323232" dataProvider="{myData}" >

</mx:List>
    </mx:VBox>

项目渲染器

<?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/halo" xmlns:local="*">

<s:states>
    <s:State name="normal"/>
    <s:State name="hovered"/>
    <s:State name="selected" />
</s:states>

<s:layout>
    <s:VerticalLayout/>
</s:layout>

<s:HGroup verticalAlign="middle" paddingTop="0" paddingBottom="0">
           <mx:Image source="http://www.xpogames.com/{data.img}" width="50" height="40" alpha.hovered=".5"/>
    <s:Label text="{data.username}" color.hovered="0x1313cd" color.selected="0x000000" verticalAlign="bottom"/> 
</s:HGroup>
</s:ItemRenderer>
4

1 回答 1

0

我通过使用<s:List>代替<mx:List>并插入event.resultArrayCollection. 感谢您的帮助!:)

于 2009-12-22T10:21:43.923 回答