QyMod的UI注册与创建
本页讲解如何通过QyMod进行UI的注册与创建,以及一些UI逻辑的常规操作
Mcstudio完成UI界面布局的绘制
UI分为用户显示层与交互逻辑层,用户显示层的配置文件可通过官方的Mcstudio功能完成UI界面布局的绘制并保存为json配置文件
注册并创建您的UI界面到游戏中
QyMod将在客户端中注册并创建UI的逻辑封装为UIMod中的AddUI接口以使用,在客户端脚本文件中直接使用AddUI注册UI界面即可,如下示例将展示通过AddUI接口创建一个"TutoralUI"的界面以及绑定逻辑到TutoralUI.py脚本里
py
# TutoralScripts.Client
from QingYunModLibs.ClientMod import *
UIMod.AddUI("TutoralUI")
# TutoralScripts.TutoralUI
from QingYunModLibs.UIScreen import * # 导入UI脚本逻辑所需的依赖库
uiName = "TutoralUI"DANGER
注意:TutoralUI.json的文件命名以及UI的命名空间必须与UI的脚本文件命名一致,否则会导致UI注册创建失败!
通过UIScreen中的接口获取到当前界面的uiNode
剔除UI系统类后,UI的实例对象(uiNode)可以通过UIModComp接口获取以调用UI的所有实例方法
py
from QingYunModLibs.UIScreen import *
uiName = "TutoralUI"
uiNode = UIModComp(uiName)INFO
uiNode与clientApi.GetUI获取到的返回值等价,且与原生ModSDK的ui实例self属性等价
使用QyMod完成UI按钮监听回调绑定
AddButton函数
装饰器AddButton函数可以为某个Button控件绑定按钮回调事件到回调函数上以实现点击按钮实现指定逻辑的效果,且可以通过传递uiName参数使Button的绑定回调具有热更功能,以下示例将展示如何实现为一个"/panel/button"按钮控件绑定回调使其按下弹起后打印"Touch"的逻辑
py
# TutoralScripts.TutoralUI
from QingYunModLibs.UIScreen import *
uiName = "TutoralUI"
@AddButton("/panel/button", "Up", True, uiName)
def OnClick(args):
print "Touch"INFO
AddButton的四个参数:控件路径,回调触发事件状态类型,是否吞噬点击事件,uiName