flex 4: item renderer with data provider from soap: cannot convert ir@194e5851 to mx.controls.listClasses.IListItemRenderer

StackOverflow https://stackoverflow.com/questions/1941381

  •  20-09-2019
  •  | 
  •  

Question

i'm trying to populate a <mx:List> with a dataProvider that i received from a soap request. i get the following error when i try to achieve this:

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]

if i use that same dataProvider on a <mx:Repeater> it works without any problems. what am i missing?

mxml file

<?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>

item renderer

<?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>
Was it helpful?

Solution

i resolved the issue by using <s:List> instead of <mx:List> and by inserting event.result into an ArrayCollection. thanks for your help! :)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top