AnyLogic中两次使用'on click'的方法

A way to use 'on click' twice in AnyLogic

我在主代理中有4个矩形,代表不同的站点(位置)。这些站点分别具有与它们相关的信息,并且当组合在一起时,它们的值也被组合在一起。目前,我的模型正在列出所有可能的组合,即 1 和 2; 1、2 和 3; 1 和 3 等。我的目标是 select 自己组合而不是生成所有组合。

我目前正在使用 'on click' 将模型带到单独的视图区域。我想要的是点击这些矩形进行组合,但我担心如果我使用 'on click' 它会与视图区域冲突。这两个都可以吗?

谢谢

我建议您利用 Controls 调色板,它包含所有 GUI 元素。

您的问题实际上没有一个答案。这将是您设计用户界面的选择。例如,您可以在每个站点的角落添加一个按钮,该按钮会将您带到查看区域,而不是使用 on click 并使用 on click 作为多个站点的初始 selection .

或者,您可以在屏幕顶部添加两个单选按钮,一个用于单击多个站点 select,另一个用于在视图区域之间切换。这些按钮将链接到一个变量,该变量的值将根据最后单击的按钮在 0 和 1 之间变化。在这种情况下,您在 on click 中的代码可以是一个条件语句,例如:

if( variable == 0 )
viewArea.navigateTo();

else
< code to add site to selection >

最后,如果您确实需要使用 on click 两次,最好的方法是创建一个名为 count 的变量,例如 int 类型。并在 on click 字段中,使其值在第一次单击时增加 1。与上面的代码类似,添加一个 if 语句,您第二次单击该语句将取决于该变量。例如:

if( count == 0 )
{
  < code to add site to selection >;
  count++;
}

else
viewArea.navigateTo();

那样的话,第一次点击会让您 select 该网站,第二次点击会导航到那里。

我知道这不是一个直截了当的答案,但这个问题可以从多个角度来探讨。这至少应该给你一些想法。