引用

引用,就是使用其他控件的属性和变量。

下面我们来探究一下什么是引用吧!

"text": { "type": "text", "size": [ "default", "100%" ], "text": "a" }, "text_2": { "type": "text", "size": [ "default", "100%" ], "text": "b" }

由上方的代码块可知,我们可以使用引用减少重复属性:

"text@text_common": {"text": "a"}, "text_2@text_common": {"text": "b"}, "text_common": { "type": "text", "size": [ "default", "100%" ] }

这样,text、text_2控件都能用到type和size的值 并且值是相同

那么引用只需要在在控件名后加上@控件名,格式为 "controlName@namespace.otherControlName"。

controlName 为控件名,namespace 为引用控件所在的文件的命名空间,otherControlName 为引用控件的控件名。

这样就能在这个控件引用其他控件的属性值了!

引用变量

引用布仅可以使用其他控件的属性,也可以使用其他控件的变量:

"text@text_common": {"$a": "a"}, "text_2@text_common": {"$a": "b"}, "text_common": { "type": "text", "size": [ "default", "100%" ], "text": "$a" }

继承引用

如下面代码块所示,@$变量就可以使用继承引用了

"panel": { "type": "panel", "$b": "控件名", "controls": [ {"a@$b": {}} ] }

接着,给变量赋值
看到上方代码所示

赋值只需要"$变量": "控件名"

命名空间

命名控件是一个 JSON UI 文件的标识符,每次新建一个新的 JSON UI 文档都需要它,它甚至在跨文件引用中起到很大的作用。

不过,在使用它时,尽量避免命名空间重复。修改原版的 UI 文件时,也可以忽略掉命名空间,因为他已经在原版文件中声明了,并且 UI 文件的内容会与原版的 UI 文件的内容合并。

{"namespace": "start_screen"}

跨文件引用

跨文件引用它可以帮助我们整理控件,以免控件都在单独一个文件中,让文件杂乱无章。

在了解跨文件引用之前,我们需要了解到 命名空间 以及 跨文件引用的格式:
"控件名@命名空间.控件名"

如果你想新建一个文件储存某一些控件,你还需要了解 UI文件定义,并且还要给这个文件定义命名空间,之后引用这个命名空间中的控件就行了~