outline-导出节点
导出文件的结构
导出的文件按照先后顺序主要由两部分组成,分别为:
- 节点信息
包含导出节点的所有数据。 - 用户代码
主要由用户写一些定制的代码,比如为某个节点重写构建函数。导出的文件末尾会有"--outline-custom"标志,在这标志之后添加的代码将被视为用户定制代码,再次导出该文件时定制代码将被保留。
- 节点outline包含了节点的基本数据,如坐标,缩放,颜色等。以及节点额外数据(ExtraData),主要用来描述节点作为控件的数据,来源为creator的自带组件,以及用户自定义组件
- 节点creator相当于节点的模板,导出的每个节点都对应一个节点creator作为模板,通过它可以构造一个或多个该节点及其子节点。节点creator又包括三个部分,首先是这个节点的节点outline,然后是用户自定义组件,最后是子creator(对应节点的子节点的节点creator)。
- 关系定义包括为节点creator确定父子关系,也为节点outline确定父子关系。
首先在creator中,需要定义一个脚本作为自定义组件的载体,脚本的属性名称需要作特殊标记。
标记分两种:
- 以"o__"作为前缀的主要用于自定义控件,该属性将会直接导出到节点outline的额外数据中,并且会去掉前缀,如属性"o__pos_0"导出到额外数据中就是"pos_0"。
- 以"o_"为前缀的,其组件整体会作为一个表导出到节点creator中,并且可通过添加"o_componentName"属性来设置组件名,与前者相似,属性在导出时前缀也会去掉。
基本接口函数 除了button控件,outline所创建的控件均是通过cocos2d-x的api所创建,都遵循cocos2d-x的api。
以下函数中,Creator表示某个节点的creator实例,Creator.Outline表示某个节点creator的节点outline数据。Node表示某个由节点creator创建的节点。
- Creator:create(Node node,bool withComponents)
构建这个creator所对应的节点并返回,若给出node实例,则还会把构建好的节点添加到node节点中作为子节点。若withComponents为true,将会把creator中的自定义组件(以"o_"为前缀的)克隆到构建的节点中。 - Creator:lastNode()
返回该creator构建的最近的一个节点,若creator还未构建节点,则返回nill。若最近的节点被销毁了,返回的依然是个userdata类型,所以这里要防范野指针。 - Creator.Outline:reset(Node node,bool cascade)
套用该outline中节点的基本数据到传入的node上。若传入的cascade为真,将会递归到所有子outline,对它们最近构建的节点进行reset。 - Node:applyWidget()
如果cocos creator中的节点包含Widget组件,那么导出的creator创建的节点就会包含applyWidget()方法,可以手动调用它来应用Widget;也可以重写父节点的setContentSize函数来实现动态适应。
推荐阅读
- 二叉树路径节点关键值和等于目标值(LeetCode--112&LeetCode--113)
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- vue|vue js-xlsx导入导出excel文件Demo
- 区块链P2P节点同步流程
- jenkins节点
- C#(App.config读取自定义节点,未能加载文件或程序集)
- Windows平台使用bat脚本导出日志
- jquery导出excel、pdf等[tableExport简单使用]
- jQuery节点创建与属性处理