首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex中的动态问卷调查

Flex中的动态问卷调查
EN

Stack Overflow用户
提问于 2011-04-02 20:17:45
回答 1查看 553关注 0票数 1

我想在Flex3中为调查问卷制作一个模板,它可以读取动态XML文件并创建一个调查问卷。一个XML示例:

代码语言:javascript
复制
<test>

<question>
  <q>Who was born earlier?</q>
  <answer value="true">Vincent van Gogh</answer>
  <answer value="false">Piet Mondrian</answer>
</question>

<question>
  <q>What color is Dutch national flag?</q>
  <answer value="false">blue, red and green</answer>
  <answer value="false">green, red and white</answer>
  <answer value="true">blue, red and white</answer>
</question>

<question>
  <q>Which season is the coldest?</q>
  <answer value="false">fall</answer>
  <answer value="true">winter</answer>
  <answer value="false">spring</answer>
  <answer value="false">summer</answer>
</question>

</test>

问题和答案的数量可能会有所不同。计划是使用带有单选按钮的嵌套中继器(一个用于问题,另一个用于回答)。我可以将所有的queston.q保存到一个答案中,但是如果在每个问题中有几个带有相同的“ArrayCollection”标签的答案,我应该如何处理我的答案呢?我如何访问每个的"value“属性,以检查用户是否选择了正确的答案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-02 23:39:24

您需要从XML创建域模型。不要跳过这一步,因为它很容易做,而且比你想象的更直接。首先创建一个简单的类:

代码语言:javascript
复制
public class Question {
   public var question : String;
   public var answers : ArrayCollection = new ArrayCollection();

   public Question( node : XML ) {
      question = node.q.text();
      for each( var answer : XML in question.answer ) {
          answers.addItem( new Answer( answer ) );
      }
   }
}

public class Answer {
   public var text : String;
   public var correct : Boolean;

   public Answer( node : XML ) {
      text = node.text();
      correct = Boolean(node.@value);
   }
}

按如下方式填充节点的ArrayCollection:

代码语言:javascript
复制
var questions = new ArrayCollection();
for each( var node : XML in xml.question ) {
   questions.addItem( new Question( node ) );
}

大致就是这样。然后,您的问题数组可以充当中继器的dataProvider。question.answers可以作为内部中继器的中继器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5523081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档