0

我正在尝试制作一个简单的 Flash 应用程序,提供用于将考试作为高中作业的界面。要求之一是使用 XML 文件作为数据源。
现在,将一个 List 组件绑定到 XML 文件,其中的问题由问题主体、问题类型(即单选、多项选择、打开、图像等)和可能的答案(如果适用)等数据组成,我想知道是否在将每个问题转移到 List 组件时,我可以为每个问题添加一些额外的数据(以及最好的方法是什么)。
我试图通过这个实现两个主要目标:首先,标记已经给出答案的问题,就像 ItemRenderer 类中的这样的代码:

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

每当用户回答问题时,都会设置 data.color 。
其次,在此过程中,我认为这种可能性是存储对特定问题的答案的好方法。在这种情况下,答案对象的类应该是对象,因为必须有许多类型的问题(例如,答案也可以是位图)。

这是一个关于如何做到这一点以及它是否看起来是个好主意的问题(如果没有,是否有更好的方法?),因为我对整个 Flash Builder 和 Flex 事物都很陌生,而且我不是真的习惯了所有的可能性和最佳实践。

谢谢!

4

2 回答 2

1

将您的 XML 数据结果分配给 ValueObjects 被认为是最佳实践,您可以直接在 ValueObject 类中添加其他数据,也可以使用另一个类专门为您的 VO 添加逻辑,以免在同一个类中混合逻辑和数据.

如果您不熟悉 Flex/FlashBuilder ,请查看以下教程,这里有一个参考 VO 的链接
http://www.adobe.com/devnet/flex/videotraining/exercises/ex2_08.html#b

于 2011-01-03T04:01:52.593 回答
0

我更喜欢为列表中的每个项目使用演示模型之类的东西。

这个想法是你用 XML 数据(模型数据)和对视图更熟悉的属性组成一个类。换句话说,您将 XML 数据映射到更高级别的类型并将其推送到 List 中。像这样的东西,label委托给模型,但是color你在你的 UI 层中添加的东西。

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;
}
于 2011-01-03T03:58:06.367 回答