cegui 学习 事件处理

有关event的有

添加事件 add

删除事件remove

激发事件 fire  ----比如窗体 的onresize(){fire(此窗体的xx事件发生)} 就是当这个窗体 onresize的时候 触发 xx事件 可以被其他窗体捕获----------告诉别人我这里发生了什么

添加事件处理函数 sub   A窗体-》sub(某个事件 ,func) A窗体发生某事件了 ,执行b窗体的func-----------------对另外一个窗体的事件做处理

查找事件 get

红色好像不对

(1)添加一个事件(2)删除一个事件(3)激发一个事件,其实就是调用事件相应的处理函数(4)添加事件处理函数(5)查找事件。这五种功能对应的函数分别为:

(1).addEvent

(2).removeEvent,removeAllEvents

(3).fireEvent,fireEvent_impl(内部实现函数)

(4).subscribeEvent(2个重载函数),subscribeScriptedEvent(2个重载函数)

(5).getEventObject,isEventPresent

下面代码的意思就是 右键触发EventRBClicked事件的处理函数

例子  :

//c++

const String FalagardActionButton::EventRBClicked((utf8*)"RBClicked");

void FalagardActionButton::onRBClicked(WindowEventArgs& e)
{
if(d_dragging) return;

fireEvent(EventRBClicked, e, EventNamespace);
}

//lua
<Window Type="WoWLook/ActionButton" Name="PacketButton_SP3" >
<Event Name="RBClicked" Function="Packet_Ext_ItemBtnClicked(3);" />

原文地址:https://www.cnblogs.com/minggoddess/p/1935923.html