3

有人可以阐明Install4j的后退按钮实际上是如何工作的吗?在这一点上我应该注意我正在使用 install4j Multi-Platform Edition 5.1.2(build 5492)。

循环示例

此示例基于包含 2 个屏幕(“屏幕 1”和“屏幕 2”)的屏幕组。

  1. 开始画面
  2. 屏幕 1(在循环组中)
  3. 屏幕 2(在循环组中)
  4. 结束画面

屏幕组属性:

  • 循环索引开始:0
  • 循环索引步长:1
  • 循环表达式:(Integer)context.getVariable("i") < 2
  • 循环索引变量名:i

正如预期的那样,重复单击下一步会导致以下屏幕流程:

  1. 开始画面
  2. 屏幕 1 (i=0)
  3. 屏幕 2 (i=0)
  4. 屏幕 1 (i=1)
  5. 屏幕 2 (i=1)
  6. 屏幕 1 (i=2)
  7. 屏幕 2 (i=2)
  8. 结束画面

我希望后退按钮在上面列出的历史记录中后退一步。但是,实际行为如下:

  1. 结束画面
  2. 屏幕 2 (i=3)
  3. 屏幕 1 (i=3)
  4. 屏幕 1 (i=3)
  5. 屏幕 1 (i=3)
  6. 开始画面

显然,这不是任何理性用户所期望的。更复杂的是,5.1 Build 5435 的 Log Install4j 更改包括以下内容:

修复了返回存在屏幕循环的屏幕历史记录时的错误行为

这个例子中提出的另一个问题是,当倒退时如何减少循环计数器?使用循环屏幕组时,似乎没有实际的方法可以做到这一点。

如果是这种情况,实现可以向后逐步执行的循环的唯一方法是实现您自己的屏幕以覆盖previous()。副作用是您必须手动编写屏幕代码才能获得正确的循环后退按钮行为,这似乎很荒谬。

有没有其他人找到解决这个问题的好方法?install4j 手册非常蹩脚,因为“历史”这个词只出现了一次。没有关于后退按钮如何工作的规范。

4

1 回答 1

1

这是一个错误,它将在 5.1.4 中修复。请联系 support@ej-technologies.com 以获取已修复的当前版本。

这个例子中提出的另一个问题是,当倒退时如何减少循环计数器?使用循环屏幕组时,似乎没有实际的方法可以做到这一点。

这将在 5.1.4 中自动运行。

于 2012-11-04T16:44:47.350 回答