BlitzMax/模組/事件/事件佇列
事件佇列是一個簡單的先進先出佇列,用於收集由應用程式發出的 TEvent 物件。
PollEvent 和 WaitEvent 命令可以用於接收事件佇列中的下一個事件,而 PeekEvent 命令可以用於檢查事件佇列是否為空。
使用 PostEvent 將事件新增到事件佇列。
Global CurrentEvent:TEvent=NullEvent
描述:當前事件
資訊:CurrentEvent 全域性變數包含由 PollEvent 或 WaitEvent 最近返回的事件。
Function PeekEvent:TEvent()
描述:檢查事件佇列中的下一個事件
資訊:PeekEvent 檢查事件佇列中的下一個事件,不會從事件佇列中刪除它或修改 CurrentEvent 全域性變數。
如果事件佇列中沒有事件,PeekEvent 返回 Null。
Function PollEvent()
描述:從事件佇列中獲取下一個事件
返回值:事件佇列中下一個事件的 ID,如果事件佇列為空,則返回 0
資訊:PollEvent 從事件佇列中刪除一個事件並更新 CurrentEvent 全域性變數。
如果事件佇列中沒有事件,PollEvent 返回 0。
Function WaitEvent()
描述:從事件佇列中獲取下一個事件,如果需要則等待
返回值:事件佇列中下一個事件的 ID
資訊:WaitEvent 從事件佇列中刪除一個事件並更新 CurrentEvent 全域性變數。
如果事件佇列中沒有事件,WaitEvent 會暫停程式執行,直到有事件可用。
Function PostEvent( event:TEvent,update=False )
描述:將事件釋出到事件佇列
資訊:PostEvent 將事件新增到事件佇列的末尾。
update 標誌可以用於更新現有事件。如果 update 為 True 並且在事件佇列中找到了具有相同 id 和 source 的事件,則將更新現有事件,而不是將 event 新增到事件佇列。這對於防止諸如計時器事件之類的高頻率事件淹沒事件佇列非常有用。
Function EventID()
描述:獲取當前事件 ID
返回值:CurrentEvent 全域性變數的 id 欄位
Function EventData()
描述:獲取當前事件資料
返回值:CurrentEvent 全域性變數的 data 欄位
Function EventMods()
描述:獲取當前事件修飾符
返回值:CurrentEvent 全域性變數的 mods 欄位
Function EventX()
描述:獲取當前事件 x 值
返回值:CurrentEvent 全域性變數的 x 欄位
Function EventY()
描述:獲取當前事件 y 值
返回值:CurrentEvent 全域性變數的 y 欄位
Function EventExtra:Object()
描述:獲取當前事件額外值
返回值:CurrentEvent 全域性變數的 extra 欄位
Function EventText$()
描述:獲取當前事件額外值,並轉換為字串
返回值:CurrentEvent 全域性變數的 extra 欄位,轉換為字串
Function EventSource:Object()
描述:獲取當前事件源物件
返回值:CurrentEvent 全域性變數的 source 欄位
Function EventSourceHandle()
描述:獲取當前事件源物件控制代碼
返回值:CurrentEvent 全域性變數的 source 欄位,轉換為整數控制代碼