This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
api:event:zh [2023/11/29 12:51] hfsr [函数] |
api:event:zh [2023/11/29 13:11] hfsr [通用事件处理函数] |
||
---|---|---|---|
Line 96: | Line 96: | ||
在OpenOS 1.6.4及更高版本,中断功能已经被删除。下列两个函数现在已经过时。 | 在OpenOS 1.6.4及更高版本,中断功能已经被删除。下列两个函数现在已经过时。 | ||
- | - `event.shouldSoftInterrupt(): boolean` (自1.5.9起添加,在1.6.4被移除) | + | - `event.shouldSoftInterrupt(): boolean`(自1.5.9起添加,在1.6.4被移除) |
- | - `event.shouldInterrupt(): boolean` (自1.5.9起添加,在1.6.4被移除) | + | - `event.shouldInterrupt(): boolean`(自1.5.9起添加,在1.6.4被移除) |
- | 中断是一类用于关闭或停止进程的消息。在OpenOS中`computer.pullSignal()`函数和修饰过的此函数会产生两种类型的事件。 | + | 中断是一类用于关闭或停止进程的消息。在OpenOS中`computer.pullSignal()`函数及其封装会产生两种类型的事件。 |
若`event.pull*()`函数在指定了过滤器但不指定超时时间的情况下执行,一定情况下意味着无限期执行。这两种事件非常有用。 | 若`event.pull*()`函数在指定了过滤器但不指定超时时间的情况下执行,一定情况下意味着无限期执行。这两种事件非常有用。 | ||
- | - 软件中断是在按下`Ctrl+C`时产生的事件信号。信号包含两个参数,事件名称`"interrupted"` (中断)和电脑运行时间。 | + | - 软中断是在按下`Ctrl+C`时产生的事件信号。信号包含两个参数,事件名称`"interrupted"`和电脑运行时间。 |
- | - 硬件中断在按下`Ctrl-Alt-C`时产生。它会通过抛出`"interrupted"`(中断)异常以强制停止`event.pull*()`函数。 | + | - 硬中断在按下`Ctrl-Alt-C`时产生。它会通过抛出`"interrupted"`异常以强制退出`event.pull*()`函数。 |
===== 简易事件处理样例 ===== | ===== 简易事件处理样例 ===== | ||
Line 123: | Line 123: | ||
===== 通用事件处理函数 ===== | ===== 通用事件处理函数 ===== | ||
- | 此处提供了一个较好的通用事件处理函数。此样例中以`event.pull()`函数返回的事件ID作为回调函数列表的键,用元方法来处理未定义事件。请注意`event.pull`函数会让程序进入等待状态,直到出现可用事件。 | + | 此处提供了一个较好的通用事件处理函数。此样例的主要功能是以`event.pull()`函数返回的事件名称作为回调函数列表的键,用元方法来处理未定义事件。请注意`event.pull`函数会让程序进入等待状态,直到出现可用事件。 |
```lua | ```lua | ||
Line 165: | Line 165: | ||
event.listen("key_up", handleEvent) --注册handleEvent函数,使其在key_up事件发生时被调用,然后结束程序 | event.listen("key_up", handleEvent) --注册handleEvent函数,使其在key_up事件发生时被调用,然后结束程序 | ||
``` | ``` | ||
- | 也可以直接注册`myEventHandlers.key_up`,这样的话处理函数(`key_up`函数)会额外收到一个参数(事件名称)作为第一个参数。 | + | 也可以直接注册`myEventHandlers.key_up`,这样的话处理函数会额外收到一个参数(事件名称)作为第一个参数。 |
目录 | 目录 | ||
----------- | ----------- | ||
{{page>api:contents:zh&noheader&noeditbutton&nouser&nofooter}} | {{page>api:contents:zh&noheader&noeditbutton&nouser&nofooter}} |