Skip to content

Project XML DisplayList Tag 对齐

结论

component.xmldisplayList 当前需要同时区分三套命名:

含义
原始 XML tagcomponent.xml <displayList> 中实际出现的标签名
displayList variant工程协议中用于容器校验的有序多态变体名
editor DisplayListItem.typeFairyGUI 编辑器运行时在加载后使用的显示列表项类型名

本文档用于固定这三套命名的当前正式口径,避免后续 displayList 容器协议、工程读写逻辑和编辑器侧 DisplayListItem.type 继续漂移。

命名对齐规则

规则说明
原始 XML tag 只描述文件中出现的标签名例如 loader3dlist
displayList variant 只描述容器中的对象变体名例如 loader3Dtreeinputtext
editor DisplayListItem.type 采用编辑器加载后的归一结果例如 inputtexttree
读写时允许“原始 tag”和“variant”不同名当前明确存在 loader3d -> loader3Dlist -> treetext -> inputtext

对齐映射表

对象语义原始 XML tagdisplayList varianteditor DisplayListItem.type当前写回口径
图片imageimageimageimage
普通文本texttexttexttext
输入文本textinput="true",或显式 inputtextinputtextinputtextinputtext
富文本richtextrichtextrichtextrichtext
图形graphgraphgraphgraph
分组groupgroupgroupgroup
Loaderloaderloaderloaderloader
Loader3Dloader3dloader3D当前仓库按 loader3D 对齐loader3d
MovieClipmovieclipmovieclipmovieclipmovieclip
JTA 动画jtajtajtajta
子组件实例componentcomponent资源引用对象通常不单独写 type,其显示列表项由引用资源决定component
列表listlistlistlist
listtreeView="true",或显式 treetreetreelisttreeView="true"

条件化变体

下列 variant 不是单看原始 tag 就能确定,而是依赖额外条件:

原始 XML 载体条件displayList varianteditor 侧依据
textinput="true"inputtextUIPackage.loadComponentChildren(...)
listtreeView="true"treeUIPackage.loadComponentChildren(...)
loader3d无额外条件,但 variant 采用 CamelCaseloader3D当前工程协议容器口径

当前写回规则

场景写回结果
GTextFieldtext
GTextInputinputtext
GRichTextFieldrichtext
GTreelist,同时写 treeView="true"
GLoader3Dloader3d
GMovieClipjta
兼容读入的 movieclip当前统一写回 jta
GComponent / GButton / GLabel / GComboBox / GProgressBar / GSlider / GScrollBarcomponent

维护要求

项目要求
新增 displayList 对象类型必须同时更新原始 XML tag、displayList variant、editor 对齐口径和本表
调整 displayList 容器 variant 集合必须同步检查工程读入、工程写回和编辑器 DisplayListItem.type 是否仍一致
修改 text/tree/loader3d/jta 等归一规则必须同步更新本表,不允许只改代码常量
文档边界本文档只描述 displayList 命名与变体协议,不描述内部 reader / writer 实现细节

MIT Licensed