anylogic - 如何使按钮触发事件(定时器)?
问题描述
我正在从事消防疏散项目,并希望在单击按钮后触发事件。基本上我想使用按钮功能手动开始火灾疏散过程,但想触发一个大约 60 秒的计时器,让行人有时间使用事件功能进行疏散。
我试图通过手动单击另一个按钮让行人停止疏散过程,但我想使用事件触发计时器,因为这将是进行模拟的更好方法。单击按钮后,我似乎无法触发事件。我试过改变触发器类型,但不知道从那里去哪里。是否需要任何代码或需要其他步骤?
解决方案
即使动态事件在您的应用程序中很好,您也可以使用用户控制事件:
然后在您的按钮中,您可以使用以下代码:
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
动态事件和用户控制事件的区别在于,如果再次单击按钮:
- 使用动态事件,您将生成另一个事件实例,这意味着如果您在 t=0 秒和 t=30 秒时单击按钮,您将在 t=60 秒和 t=90 秒时生成 2 个事件
- 使用用户控制事件,您将重新启动相同的事件。如果您在 t=0 秒和 t=30 秒时单击按钮,您将在 t=90 秒时生成一个唯一事件。
所以取决于你喜欢哪一个……你可以选择。如果您单击按钮 2 次...或者如果您后悔单击它这么快...我不知道,我更喜欢用户控件
推荐阅读
- python - Python - 如果行包含 x 并且不以 IP 地址结尾
- java - 从 java 到 python 的 API 调用移植(Kostal Plenticore Inverter)
- python - 两个numpy元组数组之间的区别
- css - 带填充css的圆圈
- android - 如何使类在库中可见?
- c++ - 如何使用clang仅获取主要功能的AST
- bioinformatics - 我可以仅使用 PDB 文件进行 PCA(在 python3.x 中使用 MDAnalysis)吗?
- elasticsearch - Elasticsearch 复制 SELECT id, COUNT(id) FROM sometable
- nginx - 我怎样才能在 nginx 中允许所有内容?
- docker - Minikube 不从本地 docker 容器注册表中提取图像