事件的監聽與廣播

2021-10-05 14:32:57 字數 1809 閱讀 8359

建立指令碼eventtype,列舉型別,存放鍵值。

public

enum enventtype

建立指令碼eventcenter,eventtype就是建立的列舉型別,表示鍵,後面的delegate為值,要引入命名空間system。

using system.collections;

using system.collections.generic;

using unityengine;

using system;

public

class

eventcenter

建立指令碼callback,存放各種過載方法

public

delegate

void

callback()

;public

delegate

void

callback

<

t>

(t arg)

;//乙個引數的委託事件

在eventcenter中,定義新增監聽事件的方法

//新增監聽事件

private

static

void

addlistener

(eventtype enventtype,

callback callback)

//判斷傳入的委託與定義的鍵對應的委託事件是否一致(因為有許多過載,判斷引數是否一致)

delegate delegatefromkey = enventdic[enventtype]

;//得到定義的鍵對應的值

//如果值不為空,且值與傳入委託事件一致

if(delegatefromkey !=

null

&& delegatefromkey.

gettype()

!= callback.

gettype()

)新增不同型別的委託,當前事件所對應的委託是,需要新增的事件委託是"

, enventtype, delegatefromkey.

gettype()

, callback.

gettype()

));}

//經過上面兩個if步驟後,可以將兩個事件關聯

enventdic[enventtype]

=(callback)enventdic[enventtype]

+ callback;

//類似於鏈式結構

}

//廣播監聽:無參

public

static

void

broadcast

(enventtype enventtype)

else

具有不同型別的委託"

, enventtype));

}}}

需要顯示的文字框掛載指令碼,**如下,監聽的委託就是顯示該文字show()方法

private

void

awake()

private

void

ondestroy()

private

void

show()

新增滑鼠監聽事件,廣播無參委託

private

void

awake()

);}

新增sdcard插拔事件的監聽廣播

接收廣播的mreceiver private final broadcastreceiver mreceiver new broadcastreceiver 廣播的註冊 intentfilter intentfilter new intentfilter intentfilter.addaction...

Android 電話廣播的監聽

1 androidmanifest.xml 註冊廣播 android name android.permission.process outgoing calls android name android.permission.read phone state android name servic...

事件的監聽

點選我 button value 測試1 id mytest1 onclick test1 button id test2 測試2 d1 onmouseover over onmouseout out d2 這是最普通的乙個點選出現下拉滑塊。其中比較常用的事件是 onclick 單擊滑鼠左鍵觸發 o...