0

我有一个 Spark 列表,需要根据来自 SQlite 查询的数据将不同的图像加载到其中。

在 SQLite 中,我有一个名为“IconId”的列,例如,它可能包含代表图标图像的值“1”、“2”、“3”等。

我的图标图像嵌入一个名为“ImageResources”的类中,如下所示:

[Bindable]
public class ImageResources
{

[Embed(source="../assets/caticons/icon1.jpg")]
    public static var Ic1Cla:Class;

[Embed(source="../assets/caticons/icon2.jpg")]
    public static var Ic2Cla:Class;
}

然后我有我的 Spark 列表的 itemrenderer,它有一个位图,我用它来设置我想用于这样的列表项的图标。这是一个有效的静态示例:

<s:BitmapImage source="{ImageResources.Ic1Cla}"   
         x="5" y="2">

</s:BitmapImage>

我的问题是..我能否以某种方式将 BitmapImage 源动态连接到将来自我的 SQLite 数据的数字(例如“1”)变成如下内容的东西:

<s:BitmapImage source="{ImageResources.Ic[data.IconId]Cla}"   
         x="5" y="2">

</s:BitmapImage>

显然这不起作用,但我不确定这是否是一个简单的语法问题,或者是否可以以这种方式完成。

任何帮助将非常感激。

4

1 回答 1

0

您可以动态访问变量,例如:

<s:BitmapImage source="{ImageResources['Ic' + data.IconId + 'Cla']}" />

还有其他方法,例如使用状态系统。通过设置当前状态,currentState = "image" + data.IconId;可以将其实现为:

<s:states>
    <s:State name="image1" />
    <s:State name="image2" />
</s:states>

<s:BitmapImage source.image1="{ImageResources.Ic1Cla}"
               source.image2="{ImageResources.Ic2Cla}" />
于 2012-07-25T03:14:23.127 回答