Install4j の戻るボタンが実際にどのように機能するかについて、誰かが光を当てることができますか? この時点で、install4j Multi-Platform Edition 5.1.2 (ビルド 5492) を使用していることに注意してください。
ループの例
この例は、2 つの画面 (「画面 1」と「画面 2」) を含む画面グループに基づいています。
- スタート画面
- 画面 1 (ループ グループ内)
- 画面 2 (ループ グループ内)
- 終了画面
画面グループのプロパティ:
- ループ インデックスの開始: 0
- ループインデックスステップ: 1
- ループ式: (Integer)context.getVariable("i") < 2
- ループインデックス変数名: i
予想どおり、[次へ] を繰り返しクリックすると、次の画面フローになります。
- スタート画面
- 画面 1 (i=0)
- 画面 2 (i=0)
- 画面 1 (i=1)
- 画面 2 (i=1)
- 画面 1 (i=2)
- 画面 2 (i=2)
- 終了画面
戻るボタンは、上記の履歴をさかのぼると思います。ただし、実際の動作は次のとおりです。
- 終了画面
- 画面 2 (i=3)
- 画面 1 (i=3)
- 画面 1 (i=3)
- 画面 1 (i=3)
- スタート画面
明らかに、これは合理的なユーザーが期待するものではありません。さらに複雑なことに、5.1 ビルド 5435 の変更ログ Install4j には次のものが含まれています。
画面ループが存在する画面履歴に戻るときの間違った動作を修正しました
この例で提起されたもう 1 つの問題は、前に戻るときにループ カウンターをどのようにデクリメントするかということです。ループされた画面グループを使用する場合、これを行う実際的な方法はないようです。
この場合、逆方向にステップスルーできるループを実装する唯一の方法は、previous()をオーバーライドするために独自の画面を実装することです。副作用は、ループの正しい戻るボタンの動作を取得するためだけに画面を手動でコーディングする必要があることです。これはばかげているようです。
他の誰かがこの問題のまともな回避策を見つけましたか? install4j のマニュアルは、'history' という単語が 1 回しか出てこないという点でかなり不自由です。戻るボタンがどのように機能するかについての仕様はまったくありません。