引用
引用,就是使用其他控件的属性和变量。
下面我们来探究一下什么是引用吧!
RP/ui/start_screen.json
1
2
3
4
5
6
7
8
9
10
11
"text": { "type": "text", "size": [ "default", "100%" ], "text": "a"},"text_2": { "type": "text", "size": [ "default", "100%" ], "text": "b"}
由上方的代码块可知,我们可以使用引用减少重复属性:
RP/ui/start_screen.json
1
2
3
4
5
6
7
"text@text_common": {"text": "a"},"text_2@text_common": {"text": "b"},"text_common": { "type": "text", "size": [ "default", "100%" ]}
这样,
那么引用只需要在在控件名后加上
controlName 为控件名,namespace 为引用控件所在的文件的命名空间,otherControlName 为引用控件的控件名。
这样就能在这个控件引用其他控件的属性值了!
引用变量
引用布仅可以使用其他控件的属性,也可以使用其他控件的变量:
RP/ui/start_screen.json
1
2
3
4
5
6
7
8
"text@text_common": {"$a": "a"},"text_2@text_common": {"$a": "b"},"text_common": { "type": "text", "size": [ "default", "100%" ], "text": "$a"}
继承引用
如下面代码块所示,
RP/ui/start_screen.json
1
2
3
4
5
6
7
"panel": { "type": "panel", "$b": "控件名", "controls": [ {"a@$b": {}} ]}
接着,给变量赋值
看到上方代码所示
赋值只需要
命名空间
命名控件是一个 JSON UI 文件的标识符,每次新建一个新的 JSON UI 文档都需要它,它甚至在跨文件引用中起到很大的作用。
不过,在使用它时,尽量避免命名空间重复。修改原版的 UI 文件时,也可以忽略掉命名空间,因为他已经在原版文件中声明了,并且 UI 文件的内容会与原版的 UI 文件的内容合并。
RP/ui/start_screen.json
1
{"namespace": "start_screen"}
跨文件引用
跨文件引用它可以帮助我们整理控件,以免控件都在单独一个文件中,让文件杂乱无章。在了解跨文件引用之前,我们需要了解到 命名空间 以及 跨文件引用的格式:
如果你想新建一个文件储存某一些控件,你还需要了解 UI文件定义,并且还要给这个文件定义命名空间,之后引用这个命名空间中的控件就行了~