Хорошо, простой рендеринг элементов, или я так подумал ... У меня есть некоторые данные, загруженные в список, одно из полей - project_Type. Это строка с надписью «RESIDENTIAL» или «COMMERCIAL». И исходя из этой строки, я просто хочу показать маленький дом или маленькое офисное здание в качестве значка. Итак, я скомбинировал мой itemrender следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<s:IconItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
labelField="dateAdded"
messageField="builder_Name"
iconFunction="myiconfunction"
iconWidth="48" iconHeight="48"
decorator="@Embed('assets/Right-48x48.png')" >
<fx:Script>
<![CDATA[
// iconFunction="myiconfunction"
// iconWidth="32" iconHeight="32" -->
private function myiconfunction(data:Object):String{
var type:String;
var projectType:String = (data != null) ? data.project_Type : "QUESTION";
if (projectType == "RESIDENTIAL") {
type = "assets/House-48x48.png";
}
else if (projectType == "COMMERCIAL") {
type = "assets/Commercial-48x48.png";
}
else if (projectType == "QUESTION") {
type = "assets/Question-48x48.png";
}
return type;
}
]]>
</fx:Script>
</s:IconItemRenderer>
Так что, довольно прямо там ... Но знайте пользовательский значок .... Хотя ошибок тоже нет. Что я делаю не так, ребята?
Обновление
Итак, я изменил средство визуализации элементов на следующее, но значок по-прежнему отсутствует ... Я дважды проверил данные, и RESIDENTIAL и COMMERCIAL оба передаются ...
<?xml version="1.0" encoding="utf-8"?>
<s:IconItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
labelField="dateAdded"
messageField="builder_Name"
iconFunction="myiconfunction"
iconWidth="48" iconHeight="48"
decorator="@Embed('assets/Right-48x48.png')" >
<fx:Script>
<![CDATA[
[Embed(source="assets/House-48x48.png")]
public var residentialClass:Class;
[Embed(source="assets/Commercial-48x48.png")]
public var commercialClass:Class;
[Embed(source="assets/Question-48x48.png")]
public var questionClass:Class;
private function myiconfunction(data:Object):Object
{
var projectType:String = (data != null) ? data.project_Type : "QUESTION";
if (projectType == "RESIDENTIAL") {
return residentialClass;
}
else if (projectType == "COMMERCIAL") {
return commercialClass;
}
return questionClass;
}
]]>
</fx:Script>
</s:IconItemRenderer>
Но, увы, ничего ...