此组件的目的是测试学生对特定主题的知识 - 在下面的示例中,它将是地理位置。学生将获得一段缺少文字的文字。他/她必须填写(在这种情况下输入)缺失的单词 - 因此这种测试/练习称为间隙填充。练习中可能有几个句子有多个空白 - 看起来像这样:
伦敦是_______中________和最大的城市地区。作为两千年来的一个重要解决方案,伦敦的历史可以追溯到___________的成立。
组件必须能够在文本中显示带有“浮动”间隙的文本。这些间隙与TextInput控件具有类似的行为。一旦学生提交答案,该组件将返回键入的单词,然后将这些单词与预期答案进行比较。
组件应该能够显示文本,并且间隙动态地从文本中获取所有必需的参数。间隙的位置可以用特殊标记标记 - 例如#10# - 它将标记文本中间隙的位置和间隙的大小(字符数)。
因此,在加载到组件之前,上面的文本可能如下所示:
伦敦是#15#中#10#和最大的城市区域。作为两千年来的一个重要解决方案,伦敦的历史可以追溯到#8#的建立。
答案 0 :(得分:2)
答案 1 :(得分:0)
我想你可以拥有一个Canvas,并动态添加标签& TextInputs。这里的问题是知道换行的去向;我不确定如何从设置文本中轻松计算基于文本的控件的宽度,但它必须是可能的。
我想知道是否有一个布局控件可以为你做这个,但我只能看到HBox& VBox限制性太强。创建或查找通用自动换行布局控件会很有用。
答案 2 :(得分:0)
FlowBox是要走的路。您可以使用horizontalGap来控制文本和输入间隙之间的间距。
当涉及到编码方式时,我有一个javascript版本,你可以自由查看。 Rendering,Encoding of gapfill data。它是generic learning activity generator的宠物项目的一部分。
我已经搬到Flex了。我提供了learning activities in Flex的样本。你不会找到一个空隙填充,但你会找到一个“输入”你的答案足够接近。
所有开源。但是请注意,我在学习Flex的时候写过这个...这是学习各种技术的借口。代码几乎肯定有待改进。
如果你想出一些漂亮的东西,请考虑加入exercist project on eduforge