CEGUI事件机制
来源:互联网 发布:http测试工具 windows 编辑:程序博客网 时间:2024/04/30 11:05
Cegui中的事件机制用的是观察者模式。需要订阅事件的类必须从EventSet继承:
订阅的一个感兴趣的事件调用EventSet的subscribeEvent,比如Render对DisplaySize改变感兴趣,它可以通过以下代码来订阅:
// subscribe to hear about display mode changes
d_rendererCon =d_renderer->subscribeEvent(Renderer::EventDisplaySizeChanged,Event::Subscriber(&CEGUI::System::handleDisplaySizeChange,this));
subscribeEvent的第一个参数为字符串,在Cegui中是通过字符串匹配来来触发相应事件;第二个参数是对触发的回调函数的一个封装。
一旦订阅好自己感兴趣的事件后,接着就是等着它触发了。
voidDirectX9Renderer::setDisplaySize(constSize& sz)
{
if (d_display_area.getSize() !=sz)
{
d_display_area.setSize(sz);
EventArgs args;
fireEvent(EventDisplaySizeChanged,args, EventNamespace);
}
}
从上面代码可以看到当DisplaySize改变的时候会生成一个EventArgs对象,然后调用fireEvent函数,EventArgs 是回调参数,用过C#的朋友一定很熟悉它.
最后fireEvent则根据传入的字符串EventDisplaySizeChanged来触发之前注册的回调函数。
完整的类图:
- CEGUI事件机制
- cegui的事件机制
- CEGUI事件机制
- CEGUI事件机制
- CEGUI事件驱动机制2
- CEGUI中的事件驱动机制1
- CEGUI中的事件系统
- CEGUI的事件系统分析
- CEGUI 鼠标双击事件 解决办法
- 【CEGUI】CEGUI入门篇之注入输入事件(五)
- cegui
- CEGUI
- CEGUI
- CEGUI
- CEGUI事件处理流程简单分析
- CEGUI控件和响应函数的 联系机制
- 小记录:CEGUI中鼠标事件的处理
- cegui事件订阅为什么可以是私有的...
- The Begin
- H.264 Profile、Level、Encoder三张简图
- linux的chmod,chown命令 详解
- 把SharePoint访问Service Unavailable再次配置上来了
- Java 调用window下的ping命令实现ping的函数封装
- CEGUI事件机制
- passing data among pages
- 【C++】limits头文件 numeric_limits
- 分享10个 jQuery 的语言翻译插件
- 游戏史上80重要创新(原资料来自17173)
- 给用户赋权限
- 安装sql2005遇到的问题
- jQuery的平滑页面内锚定链接插件:$.smoothAnchor()
- LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg