首页 > 解决方案 > 如何使按钮触发事件(定时器)?

问题描述

我正在从事消防疏散项目,并希望在单击按钮后触发事件。基本上我想使用按钮功能手动开始火灾疏散过程,但想触发一个大约 60 秒的计时器,让行人有时间使用事件功能进行疏散。

我试图通过手动单击另一个按钮让行人停止疏散过程,但我想使用事件触发计时器,因为这将是进行模拟的更好方法。单击按钮后,我似乎无法触发事件。我试过改变触发器类型,但不知道从那里去哪里。是否需要任何代码或需要其他步骤?

标签: anylogic

解决方案


即使动态事件在您的应用程序中很好,您也可以使用用户控制事件: 用户控制事件

然后在您的按钮中,您可以使用以下代码:

event.restart(60,SECOND); //you can choose any timeout here

或者

event.restart(); // this will use the configuration, which in this case I set up to 60 seconds

动态事件和用户控制事件的区别在于,如果再次单击按钮:

  1. 使用动态事件,您将生成另一个事件实例,这意味着如果您在 t=0 秒和 t=30 秒时单击按钮,您将在 t=60 秒和 t=90 秒时生成 2 个事件
  2. 使用用户控制事件,您将重新启动相同的事件。如果您在 t=0 秒和 t=30 秒时单击按钮,您将在 t=90 秒时生成一个唯一事件。

所以取决于你喜欢哪一个……你可以选择。如果您单击按钮 2 次...或者如果您后悔单击它这么快...我不知道,我更喜欢用户控件


推荐阅读