如何为间隙填充练习制作自定义Flex组件?

时间:2008-09-24 19:29:08

标签: flex actionscript-3 air

此组件的目的是测试学生对特定主题的知识 - 在下面的示例中,它将是地理位置。学生将获得一段缺少文字的文字。他/她必须填写(在这种情况下输入)缺失的单词 - 因此这种测试/练习称为间隙填充。练习中可能有几个句子有多个空白 - 看起来像这样:

伦敦是_______中________和最大的城市地区。作为两千年来的一个重要解决方案,伦敦的历史可以追溯到___________的成立。

组件必须能够在文本中显示带有“浮动”间隙的文本。这些间隙与TextInput控件具有类似的行为。一旦学生提交答案,该组件将返回键入的单词,然后将这些单词与预期答案进行比较。

组件应该能够显示文本,并且间隙动态地从文本中获取所有必需的参数。间隙的位置可以用特殊标记标记 - 例如#10# - 它将标记文本中间隙的位置和间隙的大小(字符数)。

因此,在加载到组件之前,上面的文本可能如下所示:

伦敦是#15#中#10#和最大的城市区域。作为两千年来的一个重要解决方案,伦敦的历史可以追溯到#8#的建立。

3 个答案:

答案 0 :(得分:2)

您需要一个支持流布局的容器。它不是标准Flex框架的一部分,但您可以找到一些工作实现here(优秀FlexLib的一部分)和here(独立实现)。

答案 1 :(得分:0)

我想你可以拥有一个Canvas,并动态添加标签& TextInputs。这里的问题是知道换行的去向;我不确定如何从设置文本中轻松计算基于文本的控件的宽度,但它必须是可能的。

我想知道是否有一个布局控件可以为你做这个,但我只能看到HBox& VBox限制性太强。创建或查找通用自动换行布局控件会很有用。

答案 2 :(得分:0)

FlowBox是要走的路。您可以使用horizo​​ntalGap来控制文本和输入间隙之间的间距。

当涉及到编码方式时,我有一个javascript版本,你可以自由查看。 RenderingEncoding of gapfill data。它是generic learning activity generator的宠物项目的一部分。

我已经搬到Flex了。我提供了learning activities in Flex的样本。你不会找到一个空隙填充,但你会找到一个“输入”你的答案足够接近。

所有开源。但是请注意,我在学习Flex的时候写过这个...这是学习各种技术的借口。代码几乎肯定有待改进。

如果你想出一些漂亮的东西,请考虑加入exercist project on eduforge