2012-07-25 35 views
0

我有一個Spark列表,需要根據SQlite查詢發來的數據加載不同的圖像。根據SQLite的數據結果動態選擇嵌入圖像基於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; 
} 

然後我的itemRenderer我星火一覽表中有我用它來設置我想使用的圖標位圖像這樣的列表項。這是一個靜態的例子工程:

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

</s:BitmapImage> 

我的問題is..Can我動態拼接的BitmapImage的源莫名其妙的東西,將採取數量從我SQLite的數據,例如「現身1「成這樣的東西:

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

</s:BitmapImage> 

顯然這不起作用,但我不確定這是一個簡單的語法問題還是它可以用這種方式完成。

任何幫助將不勝感激。

回答

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}" /> 
+0

完美!謝謝非常傑森。您的頂級方法有效。我的語法是一個完整的初學者和所有:) – 2012-07-25 03:31:08