У меня есть datagrid с указанием места и списка действий Наблюдение за птицами, катание на лодках, кемпинг. Datagrid заполняется на основе простого да или нет, если действие предлагается в этом месте. Я хочу заменить yes/no отдельным изображением для каждого действия. Я создал imagerender, и я могу получить изображение для изменения, но только для наблюдения за птицами. Мой вопрос в том, как я могу заставить его прокручивать этот файл данных и отображать изображение в соответствии со значением?Flex imagerender на основе значения datagrid
Спасибо.
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. –
Что касается меня, это гораздо более эффективный способ для новичков, чем использование некоторых современных методов с помощью ActionScript. – Constantiner
@Constantiner Вы абсолютно правы, это более легкое решение и будет работать в его ситуации , поэтому я не ответил на ваш ответ. Я подумал, что важно также указать на потенциальные проблемы с этим решением, если он захочет d, чтобы изучить более продвинутые методы. Разве это не то, как мы помогаем выпускникам-новичкам получить статус новичков? :) –