Airglass.js开发笔记:订阅

Airglass有层叠玻璃的概念,为此我创建了Glass类,并让Renderer类继承Glass。Glass类实现了处理原生与非原生的合成事件的订阅与退订功能。每一层渲染器都可以订阅其他任何渲染器发生的事件。最顶层的渲染器用来捕获和发布外部原生事件,就像最上层玻璃能感知光线穿过,层层传递给下层玻璃。

Airglass玻璃层叠概念

在上一篇想法的结尾,我谈到了交互与否和鼠标穿过元素默认行为的定义。按常规认知,位于最上层的元素会先感知到鼠标穿过事件。让问题变有趣的是:Airglass的世界里常有量子力学所描绘的不可思议情况发生。事件订阅机制让彼此相隔甚远的Glass有相同的感应成为可能。是创造它们的让它们相互感应。

事件订阅

在一个宇宙里,两个看似毫不相干的圆。在另一个宇宙里,有一条线将他们紧密相连。在Airglass里,Glass就充当宇宙的角色。也许只有更高级的生命体才能将全部平行宇宙贯穿起来。

渲染器之间事件的订阅

Glass相信平行宇宙。一个宇宙订阅另一个宇宙的事件,就像我允许一片Glass订阅另一片Glass内发生的全部事件。Glass把事件订阅做得很好。将上面左右两个Glass重叠,就像两张玻璃片层叠起来那样。虽然两个圆和一条曲线在不同的宇宙里,但平行的宇宙间却能完成如此默契地协作。这就是我在上面提及的Airglass中层叠玻璃的概念。

合成事件

事件充斥在宇宙的各个角落,无时无刻不在发生。Airglass中的任何事件都发生在Glass上,Glass之间又可以互相订阅发生在彼此宇宙里的事件。

一些事件是原生事件,另一些事件是非原生的合成事件。比如鼠标的按下、移动和抬起是原生事件。canvas画布上的虚拟元素被拖拽就是虚拟事件,将这些虚拟事件各项信息组装成合成事件。

统一合成事件描述规范,就像制定一套各宇宙都要遵守的事件触发协议一样重要。在Airglass中,描述一个事件需两点:谁触发了事件和触发了什么事件。

授权账号 » 
原创声明 » 未经授权,请勿复制转载,谢谢配合
联系方式 » 
微信:huazi19930927
邮箱:lanserdi@163.com
发布日期 » 2019年9月9日 周一
Github账号登录以留言