Skip to content
花生PeA edited this page Feb 23, 2019 · 2 revisions

Grid 独立于 drawInfo,在扩展和逻辑 Component 之间使用,其功能比较广,主要有:

  • 控制扩展和逻辑 Component 的某些(默认)行为,比如在 timeline.apply() 中设置 Canvas 的宽度,在 ConflictFixer 中控制 EvnetAxis 单次移动的大小
  • 参与计算叶子 Component 的 drawInfo,比如 grid.axisWidth 直接为成了 axisBody.width

Grid 不存在与叶子 Component 中。若叶子 Component 想要使用 Grid 中的信息,应该使用 drawInfo,由父节点将 Gird 赋值到叶子节点的 drawInfo 中。

设计 Grid 的目的主要有:

  • 可以快速的改变 Short Night 的某些行为
  • 为一套主题下衍生出多套主题提供可能。比如一个主题可以通过改变 Grid 中的信息,来改变这个主题的配色、绘制出图片的大小等

对于叶子 Component 来说,drawInfo 代表了这个 Component 的全部信息,而对于逻辑 Component,Grid + drawInfo 才能代表一个逻辑 Component 的全部信息。