我有一個位置和活動列表的數據網格觀鳥,划船,露營。如果活動在該位置提供,則根據簡單的「是」或「否」填充數據網格。我想用每個活動的單獨圖像替換「是/否」。我創建了一個圖像渲染器,我可以讓圖像改變,但只能用於觀鳥圖像。我的問題是,我怎樣才能讓它循環通過該數據網格並根據值顯示圖像?基於datagrid值的flex imagerender
謝謝。
package widgets.Samples.CononGeocoder2
{
import mx.containers.HBox;
import mx.controls.Image;
import mx.controls.Label;
import mx.controls.dataGridClasses.*;
public class ImageRenderer extends HBox
{
private var imageReference:Image = null;
private var imageReference2:Image = null;
private var imageReference3:Image = null;
private var lbl:Label = new Label();
private var img:Image = new Image();
private var img2:Image = new Image();
private var img3:Image = new Image();
override public function set data(value:Object):void
{
//if(value != null && imageReference == null)
{
for each(data in value)
{
if(value.Birdwatching == "yes") {
img.source = "assets/images/Birdwatching.png";
addChild(img)
lbl.text = "(" + value.Birdwatching + ")";
img.toolTip = "Birdwatching";
imageReference = img;
setStyle("verticalAlign", "middle");
setStyle("paddingLeft","5");
}
if(value.Boating == "yes"){
img2.source = "assets/images/Boating.png";
addChild(img2)
lbl.text = "(" + value.Boating + ")";
img2.toolTip = "Boating";
imageReference2 = img2;
setStyle("verticalAlign", "middle");
setStyle("paddingLeft","5");
}
if(value.Camping == "yes"){
img3.source = "assets/images/Camping.png";
addChild(img3)
lbl.text = "(" + value.Camping + ")";
img3.toolTip = "Camping";
imageReference3 = img3;
setStyle("verticalAlign", "middle");
setStyle("paddingLeft","5");
}
//Place
}
}
}
}
}
我不會我們可以重寫'set data'函數來檢查被傳入的數據的值,然後通過actionscript將圖像添加到容器 – 2011-05-23 15:16:23
對於我來說,這對於新手來說比使用一些高級的ActionScript技術更有效的方法 – Constantiner 2011-05-23 15:19:11
@Constantiner你是絕對正確的,這是更簡單的解決方案,可以在他的情況下工作,這就是爲什麼我沒有降低你的答案的原因。我認爲在他想要的情況下指出這個解決方案的潛在問題也很重要d也研究更先進的技術。這不就是我們如何幫助新手從他們的新手身份畢業嗎? :) – 2011-05-23 15:22:36