如何对复杂网格中的菜单进行分支 UI
How to branch a menu that is in a complex grid UI
我们正在尝试在 movilizer 中创建一个大菜单以支持我们所有的选项,同时我们正在使用网格复合体 UI 来支持更大的设备。
因为我们使用复杂网格 UI,我们目前在复杂网格中有 3 个菜单和 2 个文本字段。但是,我们不能使用菜单分支到按下这些菜单中的按钮后调用的不同 movelet。
<question key="Q003" type="6">
<answer attributeType="14"
key="A003_1"
nextQuestionKey="Q407"
<text>menu1button</text>
</answer>
<answer attributeType="72"
key="A003_5"
nextQuestionKey="Q004">
<predefinedValue>X</predefinedValue>
</answer>
<complex linearGroupId="Information" gridGroupId="gridMenu" gridHorizontalLayout="false" linearPos="1" gridPosX="0" gridPosY="1" groupTitle="menuGrid"/>
</question>
<question key="Q004" type="6">
<answer attributeType="14"
key="A004_1"
nextQuestionKey="Q408"
<text>menu2button</text>
</answer>
<answer attributeType="72"
key="A004_3"
nextQuestionKey="Q005">
<predefinedValue>X</predefinedValue>
</answer>
<complex linearGroupId="Information" gridGroupId="gridMenu" gridHorizontalLayout="false" linearPos="2" gridPosX="1" gridPosY="1" groupTitle="menuGrid"/>
</question>
从我们的代码中摘录的这个示例将抛出一个错误,指出问题 Q003 不允许分支,但是我们需要这些单独的菜单。
有什么方法可以避免这个问题而不必为每个菜单创建不同的 movelet 吗?
提前致谢!
您只能使用 MEL 脚本实现此目的。
基本思路是:
- 您通过 MEL 脚本保存复杂 UI 中所有菜单的选择
- 复杂UI中第一个问题的所有答案link复杂UI
中第二个问题的所有答案
- 复数第二问的所有答案UI link复数第三题的答案UI ...以此类推
- 复杂的最后一个问题 UI links 到 epsilon 屏幕
- epsilon 屏幕使用限制来检查不同菜单的选择以相应地分支流程
这看起来像这样(简化),Q003:
<question key="Q003" type="6">
<answer key="A003_1"
nextQuestionKey="Q004">
<text>menu1button</text>
</answer>
<answer attributeType="72"
key="A003_DEFAULT"
nextQuestionKey="Q004">
<predefinedValue>X</predefinedValue>
</answer>
<onEnterAssignment>
$local:selections = null;
</onEnterAssignment>
<onLeaveOkPersistAssignment>
$local:selections["Q003"] = getQuestionKey();
</onLeaveOkPersistAssignment>
<complex linearGroupId="Information" gridGroupId="gridMenu" gridHorizontalLayout="false" linearPos="1" gridPosX="0" gridPosY="1" groupTitle="menuGrid"/>
</question>
Q004:
<question key="Q004" type="6">
<answer key="A004_1"
nextQuestionKey="QEPS">
<text>menu2button</text>
</answer>
<answer attributeType="72"
key="A004_DEFAULT"
nextQuestionKey="QEPS">
<predefinedValue>X</predefinedValue>
</answer>
<onLeaveOkPersistAssignment>
$local:selections["Q004"] = getQuestionKey();
</onLeaveOkPersistAssignment>
<complex linearGroupId="Information" gridGroupId="gridMenu" gridHorizontalLayout="false" linearPos="2" gridPosX="1" gridPosY="1" groupTitle="menuGrid"/>
</question>
和 QEPS(执行分支,非常简单):
<question key="QEPS" type="41">
<answer key="AEPS_1"
nextQuestionKey="END"/>
<restriction position="0" nextQuestionKey="Q003">
<condition>$local:selections["Q003"] != $answer:"A003_DEFAULT" ?OR $local:selections["Q004"] != $answer:"A004_DEFAULT"</condition>
</restriction>
</question>
我们正在尝试在 movilizer 中创建一个大菜单以支持我们所有的选项,同时我们正在使用网格复合体 UI 来支持更大的设备。
因为我们使用复杂网格 UI,我们目前在复杂网格中有 3 个菜单和 2 个文本字段。但是,我们不能使用菜单分支到按下这些菜单中的按钮后调用的不同 movelet。
<question key="Q003" type="6">
<answer attributeType="14"
key="A003_1"
nextQuestionKey="Q407"
<text>menu1button</text>
</answer>
<answer attributeType="72"
key="A003_5"
nextQuestionKey="Q004">
<predefinedValue>X</predefinedValue>
</answer>
<complex linearGroupId="Information" gridGroupId="gridMenu" gridHorizontalLayout="false" linearPos="1" gridPosX="0" gridPosY="1" groupTitle="menuGrid"/>
</question>
<question key="Q004" type="6">
<answer attributeType="14"
key="A004_1"
nextQuestionKey="Q408"
<text>menu2button</text>
</answer>
<answer attributeType="72"
key="A004_3"
nextQuestionKey="Q005">
<predefinedValue>X</predefinedValue>
</answer>
<complex linearGroupId="Information" gridGroupId="gridMenu" gridHorizontalLayout="false" linearPos="2" gridPosX="1" gridPosY="1" groupTitle="menuGrid"/>
</question>
从我们的代码中摘录的这个示例将抛出一个错误,指出问题 Q003 不允许分支,但是我们需要这些单独的菜单。
有什么方法可以避免这个问题而不必为每个菜单创建不同的 movelet 吗?
提前致谢!
您只能使用 MEL 脚本实现此目的。 基本思路是:
- 您通过 MEL 脚本保存复杂 UI 中所有菜单的选择
- 复杂UI中第一个问题的所有答案link复杂UI 中第二个问题的所有答案
- 复数第二问的所有答案UI link复数第三题的答案UI ...以此类推
- 复杂的最后一个问题 UI links 到 epsilon 屏幕
- epsilon 屏幕使用限制来检查不同菜单的选择以相应地分支流程
这看起来像这样(简化),Q003:
<question key="Q003" type="6">
<answer key="A003_1"
nextQuestionKey="Q004">
<text>menu1button</text>
</answer>
<answer attributeType="72"
key="A003_DEFAULT"
nextQuestionKey="Q004">
<predefinedValue>X</predefinedValue>
</answer>
<onEnterAssignment>
$local:selections = null;
</onEnterAssignment>
<onLeaveOkPersistAssignment>
$local:selections["Q003"] = getQuestionKey();
</onLeaveOkPersistAssignment>
<complex linearGroupId="Information" gridGroupId="gridMenu" gridHorizontalLayout="false" linearPos="1" gridPosX="0" gridPosY="1" groupTitle="menuGrid"/>
</question>
Q004:
<question key="Q004" type="6">
<answer key="A004_1"
nextQuestionKey="QEPS">
<text>menu2button</text>
</answer>
<answer attributeType="72"
key="A004_DEFAULT"
nextQuestionKey="QEPS">
<predefinedValue>X</predefinedValue>
</answer>
<onLeaveOkPersistAssignment>
$local:selections["Q004"] = getQuestionKey();
</onLeaveOkPersistAssignment>
<complex linearGroupId="Information" gridGroupId="gridMenu" gridHorizontalLayout="false" linearPos="2" gridPosX="1" gridPosY="1" groupTitle="menuGrid"/>
</question>
和 QEPS(执行分支,非常简单):
<question key="QEPS" type="41">
<answer key="AEPS_1"
nextQuestionKey="END"/>
<restriction position="0" nextQuestionKey="Q003">
<condition>$local:selections["Q003"] != $answer:"A003_DEFAULT" ?OR $local:selections["Q004"] != $answer:"A004_DEFAULT"</condition>
</restriction>
</question>