UI篇控件变量以及函数控件变量以及函数
控件变量以及函数
这里列出控件中可用的Aria函数以及控件对象自身的变量。
变量
固有变量
type 控件类型(固定值无法修改)
actions 触发器字典[字典类型]
dragX 当前X轴被拖动距离[数字类型](可赋值,但是应当是数字类型)
dragY 当前Y轴被拖动距离[数字类型](可赋值,但是应当是数字类型)
meta 元数据[字典类型]
动态变量
我记得在控件结构中提到了,属性是可以自己命名创建的。
比如下面这个配置:
background:
type: texture
attribute:
point: ~middle_center
width: 1000
height: 500
normal: ~AXLoginView/background.png
abcd: "~我是一条自定义属性"
这个时候这个控件可访问的变量包含attribute块下所有的值。
也就是abcd这个值,可以通过self.abcd来访问或赋值。
其余变量同理,比如width 可以通过self.width来访问或赋值。
当然,没有在这个块里面声明的值也可以赋值访问,比如self.a = 10
元素
通过控件对象自身,可通过元素访问语法来获取子级控件对象
比如我们获取子级的button控件,则可以用self['button']来访问。
函数
parent()
获取控件父级(如果是顶层控件返回的是UI对象)
参数:无
返回值:UI 或 控件
调用示例
self.parent()
childrenCount()
获取子级控件数量(仅限子级,孙级以及以上不包含)
参数:无
返回值:数字类型
调用示例
self.childrenCount()
remove()
移除当前控件
该语句不应在进行copy操作后立即调用
参数:无
返回值:无
调用示例
self.remove()
setDragXRatio(value)
设置X轴拖动比率
参数:value(比率,数字类型)
返回值:无
调用示例
self.setDragXRatio(0.5)
setDragYRatio(value)
设置Y轴拖动比率
参数:value(比率,数字类型)
返回值:无
调用示例
self.setDragYRatio(0.5)
getDragXRatio()
获取X轴拖动比率
参数:无
返回值:数字类型
调用示例
self.getDragXRatio()
getDragYRatio()
获取Y轴拖动比率
参数:无
返回值:数字类型
调用示例
self.getDragYRatio()
copy(name)
复制当前控件,并命名为name,调用后即刻添加至当前层级中
参数:name(复制后的控件名称,字符串类型)
返回值:控件对象
调用示例
self.copy("newControl")
clear()
清除当前控件的所有子级控件
参数:无
返回值:无
调用示例
self.clear()
getStackWidth()
获取当前控件的堆叠宽度(仅限HStack)
参数:无
返回值:数字类型
调用示例
self.getStackWidth()
getStackHeight()
获取当前控件的堆叠高度(仅限VStack)
参数:无
返回值:数字类型
调用示例
self.getStackHeight()
getSlotItemStack()
获取当前控件的物品(仅限Slot)
参数:无
返回值:物品对象
调用示例
self.getSlotItemStack()
getItemValueSum(key)
获取整个UI中和当前控件中物品相同的槽位的物品量总和(当前控件数量不计入其中)用于做图纸插件的UI显示材料(仅限Slot)
参数:key(物品键,字符串类型)
返回值:数字类型
调用示例
self.getItemValueSum("exampleKey")
getItemText(key)
获取当前控件的物品文本值,比如有一行lore是xxx: abc,该函数用于获取冒号后面的内容(仅限Slot)
参数:key(键内容,字符串类型)
返回值:字符串类型
调用示例
self.getItemText("exampleKey")
setContent(content)
设置文本框的内容(仅限TextBox | ChatTextBox)
参数:content(内容,字符串类型)
返回值:无
调用示例
self.setContent("exampleContent")
getContent()
获取文本框的内容(仅限TextBox | ChatTextBox)
参数:无
返回值:字符串类型
调用示例
self.getContent()
insert(text)
在当前指针位置插入文字(仅限TextBox | ChatTextBox)
参数:test(插入的内容,字符串类型)
返回值:无
调用示例
self.insert("exampleText")
setFocus(value)
设置当前控件是否获取焦点(仅限TextBox | ChatTextBox)
参数:value(布尔类型,true表示获取焦点,false表示失去焦点)
返回值:无
调用示例
self.setFocus(true)
isHovered()
获取控件此时是否鼠标悬停
参数:无
返回值:布尔类型
调用示例
self.isHovered()
setItemIcon(item)
设置控件的图标物品(仅限Slot 且类型为Icon)
参数:item(物品JSON,字符串类型, 这个值需要序列化物品发送)
返回值:无
调用示例
self.setItemIcon('{"id": "minecraft:stone","Count":1}')
getSameCount()
获取当前容器中,有多少和当前Slot相同的物品数量(仅限Slot)
参数:无
返回值:数字类型
调用示例
self.getSameCount()
needShowAll()
获取聊天栏控件此时是否需要全部展示(仅限ChatTextBox)
参数:无
返回值:布尔类型
调用示例
self.needShowAll()
getVisibleChildren()
获取当前控件下所有可见子控件,不包含孙控件
参数:无
返回值:列表
调用示例
self.getVisibleChildren()
create()
在当前控件层级通过模板创建控件
参数:tempID 模板ID、 newName 新创建控件的ID
返回值:无
调用示例
self.create('模板ID', '新控件ID')
示例返回值
// 返回一个控件对象
和界面的一级创建控件差不多,这个是在当前控件层级创建子控件。
send()
发送聊天栏输入框的内容(仅限 ChatBox 控件)
参数:无
返回值:无
调用示例
self.send()
get(index)
通过索引获取子控件
参数:index(子控件索引,数字类型)
返回值:控件对象
调用示例
self.get(0)
replay()
重新播放gif(仅限TextView)
参数:无
返回值:无
调用示例
self.replay()Previous
控件触发器
Next
尝试编写一个UI