如何在AnyLogic中实现长按按钮控制传送带运行?
AnyLogic实现长按按钮控制传送带运行
方案一:按住即运行、松开即停止
这是最直观的长按控制逻辑,按住按钮期间传送带持续运行,松开立即停止:
- 从Palette的「Presentation」面板拖入Interactive Region组件到界面,调整大小、位置,在「Look」属性里设置按钮样式(比如背景色、边框、显示文字)。
- 给该组件添加两个事件:
- 「On mouse pressed」事件:写入代码
conveyor.run(); - 「On mouse released」事件:写入代码
conveyor.stop();
- 「On mouse pressed」事件:写入代码
方案二:长按指定时长后启动、松开即停止
如果需要按住按钮达到一定时长(比如1秒)才触发传送带运行,松开就停止:
- 从Palette的「Agent-Based」面板拖入Timer组件,设置:
- 「Repeat」为
false - 「Delay time」设为你需要的长按时长(比如
1000,单位毫秒) - 「Action」里写入代码
conveyor.run();
- 「Repeat」为
- 同样用Interactive Region模拟按钮,添加两个事件:
- 「On mouse pressed」事件:写入代码
timer.start(); - 「On mouse released」事件:写入代码
timer.stop(); conveyor.stop();
- 「On mouse pressed」事件:写入代码
初始状态保持
你之前在conveyorEnter块中添加conveyor.stop();实现初始停止的逻辑可以保留,确保模型启动时传送带处于停止状态。
内容的提问来源于stack exchange,提问作者wickkiQWQ
相关产品推荐
相关产品推荐

