Как добавить пользовательские свойства элемента списка Flex 4 spark - PullRequest
0 голосов
/ 03 января 2011

Я пытаюсь создать простое флеш-приложение, обеспечивающее интерфейс для сдачи экзаменов в старшей школе. Одним из требований является использование файла XML в качестве источника данных.
Теперь компонент List, связанный с файлом XML, содержит вопросы, состоящие из таких данных, как тело вопроса, тип вопроса (т. Е. Один выбор, множественный выбор, открыть, изображение и т. д.) и возможные ответы (где это применимо), мне было интересно, могу ли я добавить некоторые дополнительные данные (и каков наилучший способ сделать это) к каждому вопросу после его передачи в компонент списка.
Я пытаюсь достичь с этой целью двух основных целей: во-первых, отметить вопросы, на которые уже дан ответ, например, с помощью такого кода в классе ItemRenderer:

<s:Label color="{data.color}" text="{data.label}"/>

где data.color будет установлен всякий раз, когда пользователь дает ответ на вопрос.
Во-вторых, пока я думал о такой возможности, это отличный способ хранить ответы на конкретные вопросы. В этом случае класс объекта ответа был бы объектом, так как должно быть много типов вопросов (например, ответом может быть также растровое изображение).

Это вопрос как как это сделать, и если это вообще кажется хорошей идеей (и если нет, если есть лучший способ?), Потому что я совершенно новичок во всем Flash Builder и Гибкая вещь, и я не совсем привык ко всем возможностям и лучшим практикам.

Спасибо!

Ответы [ 2 ]

1 голос
/ 03 января 2011

Рекомендуется назначать результаты XML-данных для ValueObjects. Вы можете добавить дополнительные данные непосредственно в класс ValueObject или использовать другой класс, чтобы специально добавить логику в ваши VO, чтобы не смешивать логику и данные внутритого же класса.

Если вы не знакомы с Flex / FlashBuilder, взгляните на следующий учебник, вот ссылка на VOhttp://www.adobe.com/devnet/flex/videotraining/exercises/ex2_08.html#b

0 голосов
/ 03 января 2011

Я предпочитаю использовать что-то вроде модели презентации для каждого элемента в списке.

Идея состоит в том, что вы создаете класс с данными XML (данными модели) И свойствами, которые более важны для представления. Другими словами, вы отображаете данные XML на тип более высокого уровня и помещаете их в список. Примерно так: label делегирует модели, но color - это то, что вы добавляете в свой слой пользовательского интерфейса.

public class QuestionPM {
    private _model:XML;
    public function QuestionPM(model:XML) {
        _model = model;
    }

    public function get label():String { return _model.label; }
    public var color:String;
}
...