2010-08-17 43 views
2

我正在使用很多自定义的GWT事件,其中100个对象需要注册才能接收。无论如何,我可以自动注册相互类型的课程。或者根本没有办法解决这个问题,事件处理管理器需要引用所有想要接收事件的对象。我会更好地实施自己的事件总线系统吗?任何关于此事的想法都是最有帮助的。GWT自定义事件 - 使用事件发送者注册接收者

编辑:例

可以说我有超过1000墙对象组成,其中的墙壁可以移动,找到迷宫壁内的出口和200 NPC和玩家1对象迷宫。每次有一名玩家/ NPC击中墙上的onCollision时,该事件就会被解雇。因此,对于所有墙体物体接收此事件,他们大多数都会向玩家和NPC登记。可以看到,有1000个墙体对象有相当多的注册。

所以我问的是,有没有一种方法预先定义任何类型的墙对象将接收事件类型onCollision形式的任何对象的类型NPC或播放器。

+0

我不太明白这个问题 - 你可能会添加一些代码来说明它吗? – 2010-08-17 15:05:48

+0

我在上面添加了一个示例suitatuion。我没有任何代码atm,只在设计文档atm上工作。感谢您的回复。 – 2010-08-18 09:08:58

回答

1

使用事件总线。让每个NPC和玩家触发CollisionEvents并让所有墙体对象听取它。 Ray Ryan在去年Google I/O发表的精彩GWT演讲中提供了大约14分钟的代码。 http://www.youtube.com/watch?v=PDuhR18-EdM

+0

这是最有帮助的,虽然我认为我实际上在几年前观看过这个视频,并完全忘记了eventBus系统。非常感谢您的回复dagge – 2010-08-19 09:50:52

+0

不是没有thang;) – dagge 2010-08-19 10:08:09