跳轉到內容

BlitzMax/模組/事件/事件佇列

來自華夏公益教科書

事件佇列是一個簡單的先進先出佇列,用於收集由應用程式發出的 TEvent 物件。

PollEventWaitEvent 命令可以用於接收事件佇列中的下一個事件,而 PeekEvent 命令可以用於檢查事件佇列是否為空。

使用 PostEvent 將事件新增到事件佇列。

全域性變數

[編輯 | 編輯原始碼]

CurrentEvent

[編輯 | 編輯原始碼]

Global CurrentEvent:TEvent=NullEvent

描述:當前事件

資訊CurrentEvent 全域性變數包含由 PollEventWaitEvent 最近返回的事件。

PeekEvent

[編輯 | 編輯原始碼]

Function PeekEvent:TEvent()

描述:檢查事件佇列中的下一個事件

資訊PeekEvent 檢查事件佇列中的下一個事件,不會從事件佇列中刪除它或修改 CurrentEvent 全域性變數。

如果事件佇列中沒有事件,PeekEvent 返回 Null

PollEvent

[編輯 | 編輯原始碼]

Function PollEvent()

描述:從事件佇列中獲取下一個事件

返回值:事件佇列中下一個事件的 ID,如果事件佇列為空,則返回 0

資訊PollEvent 從事件佇列中刪除一個事件並更新 CurrentEvent 全域性變數。

如果事件佇列中沒有事件,PollEvent 返回 0。

WaitEvent

[編輯 | 編輯原始碼]

Function WaitEvent()

描述:從事件佇列中獲取下一個事件,如果需要則等待

返回值:事件佇列中下一個事件的 ID

資訊WaitEvent 從事件佇列中刪除一個事件並更新 CurrentEvent 全域性變數。

如果事件佇列中沒有事件,WaitEvent 會暫停程式執行,直到有事件可用。

PostEvent

[編輯 | 編輯原始碼]

Function PostEvent( event:TEvent,update=False )

描述:將事件釋出到事件佇列

資訊PostEvent 將事件新增到事件佇列的末尾。

update 標誌可以用於更新現有事件。如果 update 為 True 並且在事件佇列中找到了具有相同 idsource 的事件,則將更新現有事件,而不是將 event 新增到事件佇列。這對於防止諸如計時器事件之類的高頻率事件淹沒事件佇列非常有用。

Function EventID()

描述:獲取當前事件 ID

返回值CurrentEvent 全域性變數的 id 欄位

EventData

[編輯 | 編輯原始碼]

Function EventData()

描述:獲取當前事件資料

返回值CurrentEvent 全域性變數的 data 欄位

EventMods

[編輯 | 編輯原始碼]

Function EventMods()

描述:獲取當前事件修飾符

返回值CurrentEvent 全域性變數的 mods 欄位

Function EventX()

描述:獲取當前事件 x 值

返回值CurrentEvent 全域性變數的 x 欄位

Function EventY()

描述:獲取當前事件 y 值

返回值CurrentEvent 全域性變數的 y 欄位

EventExtra

[編輯 | 編輯原始碼]

Function EventExtra:Object()

描述:獲取當前事件額外值

返回值CurrentEvent 全域性變數的 extra 欄位

EventText

[編輯 | 編輯原始碼]

Function EventText$()

描述:獲取當前事件額外值,並轉換為字串

返回值CurrentEvent 全域性變數的 extra 欄位,轉換為字串

EventSource

[編輯 | 編輯原始碼]

Function EventSource:Object()

描述:獲取當前事件源物件

返回值CurrentEvent 全域性變數的 source 欄位

EventSourceHandle

[編輯 | 編輯原始碼]

Function EventSourceHandle()

描述:獲取當前事件源物件控制代碼

返回值CurrentEvent 全域性變數的 source 欄位,轉換為整數控制代碼

華夏公益教科書