今天和叶振华讨论了一下他在XLIB_D(脚本支撑库)中关于捕捉并处理事件的过程,和我最早的版本(简单事件捕捉)不同,他引入了子事件的概念,因此组成了一个事件树,如下:
[战斗情况变化]
|
/----------+----------\
[战斗结束] [新一轮战斗]
|
/---------+----------\
[攻击方胜利] [防守方胜利]
如果脚本捕捉[攻击方胜利]事件,[战斗结束]事件,那么当系统遇到了具体的[防守方胜利]事件,则将发生[战斗结束]事件(其中传递的参数说明了这是防守防守方胜利),因为没有捕捉子事件,所以就传递给父事件。那么,如果在处理[攻击方胜利]事件时,还希望执行[战斗结束]事件中的一些代码呢?我认为只要在[攻击方胜利]的脚本中的合适位置简单的调用[战斗结束]事件的处理脚本就可以了。
感觉这个思路是很不错的,虽然支撑系统复杂了许多,但是的确有利于脚本简单轻易的捕捉它所关心的事件并安插处理代码,在新项目中可以继承这个思路,只要重构一下实现代码就可以了。
没有评论:
发表评论