关于对 Unity 3D Strange IoC 框架事件分发器的认识
2017-02-06 14:51
751 查看
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
关于事件分发器的认识
public IEventDispatcher dispatcher { get; set; }
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
情况一:
派发者(标签):
[Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)]
监听者(标签):
[Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)]
触发相应的事件
crossContextBridge.Bind(事件):多次触发相应的事件(测试为触发4次)
[Inject(ContextKeys.CONTEXT_DISPATCHER)]
触发相应的事件
crossContextBridge.Bind(事件):多次触发相应的事件(测试为触发4次)
[Inject]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
结论:
通过 [Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)] 派发器派发的事件不需要 crossContextBridge.Bind(事件) 绑定,否者触发相应事件多次。
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
情况二:
派发者(标签):
[Inject(ContextKeys.CONTEXT_DISPATCHER)]
监听者(标签):
[Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)]
不触发相应的事件
crossContextBridge.Bind(事件):触发相应的事件
[Inject(ContextKeys.CONTEXT_DISPATCHER)]
不触发相应的事件
crossContextBridge.Bind(事件):触发相应的事件
[Inject]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
结论:
通过 [Inject(ContextKeys.CONTEXT_DISPATCHER)] 派发器派发的事件需要 crossContextBridge.Bind(事件) 绑定后才可以被
带 [Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)] 或 [Inject(ContextKeys.CONTEXT_DISPATCHER)] 的监听者监听到。
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
情况三:
派发者(标签):
[Inject]
监听者(标签):
[Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
[Inject(ContextKeys.CONTEXT_DISPATCHER)]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
[Inject]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
结论:
[Inject] 标签的分发器只能自己发射,自己监听,一般 View 发射事件,Mediator 注入 View,监听方法写到 Mediator 里。
例如:view.dispatcher.AddListener(事件名, 事件处理方法)
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
关于事件分发器的认识
public IEventDispatcher dispatcher { get; set; }
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
情况一:
派发者(标签):
[Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)]
监听者(标签):
[Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)]
触发相应的事件
crossContextBridge.Bind(事件):多次触发相应的事件(测试为触发4次)
[Inject(ContextKeys.CONTEXT_DISPATCHER)]
触发相应的事件
crossContextBridge.Bind(事件):多次触发相应的事件(测试为触发4次)
[Inject]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
结论:
通过 [Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)] 派发器派发的事件不需要 crossContextBridge.Bind(事件) 绑定,否者触发相应事件多次。
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
情况二:
派发者(标签):
[Inject(ContextKeys.CONTEXT_DISPATCHER)]
监听者(标签):
[Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)]
不触发相应的事件
crossContextBridge.Bind(事件):触发相应的事件
[Inject(ContextKeys.CONTEXT_DISPATCHER)]
不触发相应的事件
crossContextBridge.Bind(事件):触发相应的事件
[Inject]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
结论:
通过 [Inject(ContextKeys.CONTEXT_DISPATCHER)] 派发器派发的事件需要 crossContextBridge.Bind(事件) 绑定后才可以被
带 [Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)] 或 [Inject(ContextKeys.CONTEXT_DISPATCHER)] 的监听者监听到。
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
情况三:
派发者(标签):
[Inject]
监听者(标签):
[Inject(ContextKeys.CROSS_CONTEXT_DISPATCHER)]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
[Inject(ContextKeys.CONTEXT_DISPATCHER)]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
[Inject]
不触发相应的事件
crossContextBridge.Bind(事件):不触发相应的事件
结论:
[Inject] 标签的分发器只能自己发射,自己监听,一般 View 发射事件,Mediator 注入 View,监听方法写到 Mediator 里。
例如:view.dispatcher.AddListener(事件名, 事件处理方法)
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
相关文章推荐
- 关于事件处理的完整框架Event,delegate,event args,无图有真相。
- 关于Flash3D和Unity 3D
- Unity插件之NGUI学习(6)—— 关于Widget怎样加入触发事件(触发OnClick)
- 关于UGUI挡道3D的物体触发点击事件无法和3D物体分离的解决方案
- 实战Unity3D开发:从认识界面到游戏demo
- 为什么Windows那么多以On开头的方法?(关于对继承中事件处理的认识!)
- 关于事件过滤器的问题或者是框架设计问题
- Unity插件之NGUI学习(6)—— 关于Widget如何添加触发事件(触发OnClick)
- Unity 3D物体的点击事件响应以及NGUI坐标和世界坐标的互相转换
- 个人关于委托事件的一些浅显认识
- 关于PHP-Zend framework2 框架 学习过程。 阅前须知: ZF2中的配置文件是可以静态文件配置来注册和通过相关函数动态注册。 1.EventManager(事件驱动),关于事件驱动,在ZF2相关资料没有详细说明,可以参考ANDROID的事件驱动,MFC的消息响应/事件驱动。
- (每日心得)关于C#中委托与事件的一些认识(一)
- < Unity 3D专栏 >添加控件检测事件,函数处理
- Unity 3D 关于给APK包加广告的流程
- Unity 3D 学习笔记(一):关于坐标
- [Unity3d] 3.5 NavMesh的初步认识和简单运用
- Unity 3D学习笔记(三)——关于脚本
- (每日心得)关于C#中委托和事件的一些认识(三)
- 关于Unity的网络框架
- 关于使用zepto框架中的tap click穿透事件 webapp开发