BOLT UI界面引擎是如何工作的?(BOLT UI入门教程)
今天开始学习BOLTUI界面引擎,官方的教程写的太过粗糙了。第一步创建onload.lua文件
目录
- ·第一步 创建模板
- ·第二步 创建模板对象实例
- ·第三步 创建对象树
- ·第四步 实例化对象树
- ·效果
- ·源码
今天开始学习BOLT UI界面引擎,官方的教程写的太过粗糙了。
第一步 创建模板创建onload.lua文件1. 获取XLUE引擎内部的模板管理器对象,模板的创建,获取都需要通过这个对象
local templateMananger =XLGetObject("Xunlei.UIEngine.TemplateManager")
2. 获取要创建的hostwnd的模板,也就是读取指定的xml文件
local frameHostWndTemplate = templateMananger:GetTemplate("HelloXLUEWnd","HostWndTemplate")
上句代码用到了TemplateManger类的GetTemplate方法,该方法包括两个参数:
名称描述 templateID模板id templateClass 模板类型
它要读取的模板位于MainWnd.xml,模板类型是指xml标签<hostwndtemplate>,id:是批HelloXLUEWnd
<hostwndtemplateid="HelloXLUEWnd"class="FrameHostWnd">
<attr>
<mainwnd>1</mainwnd>
<title>itbug.baike.com</title>
<layered>1</layered>
<left>200</left>
<top>100</top>
<width>430</width>
<height>280</height>
<cacheleft>0</cacheleft>
<cachetop>0</cachetop>
<cachewidth>1000</cachewidth>
<cacheheight>720</cacheheight>
<center>1</center>
<topmost>0</topmost>
<visible>1</visible>
<enable>1</enable>
<active>1</active>
<maxbox>0</maxbox>
<minbox>0</minbox>
<minwidth>430</minwidth>
<minheight>289</minheight>
<maxwidth>1000</maxwidth>
maxheight>720</maxheight><
appwindow>1</appwindow>
<fps>30</fps>
</attr>
</hostwndtemplate>
第二步 创建模板对象实例
使用模板对象创建一个ID为MainFrame的实例,这个时候会根据之前记录下的节点对象,解析MainWnd节点的属性:
if frameHostWndTemplate then local frameHostWnd = frameHostWndTemplate:CreateInstance("HelloXLUE.MainFrame") ... end
第三步 创建对象树接着是创建对象树local objectTreeTemplate = templateMananger:GetTemplate("MainWndTree", "ObjectTreeTemplate")
在Mainwind.xml文件中对应要寻找的是:
<objtreetemplateid="HelloXLUETree"class="ObjectTreeTemplate"><attr><left>-200</left><top>-200</top><width>430</width><height>280</height></attr> //添加<obj>节点 </objtreetemplate>
在上述过程中,节点<obj>会被找到,并把其对象树对象上去。
第四步 实例化对象树if objectTreeTemplate then local uiObjectTree = objectTreeTemplate:CreateInstance("HelloXLUE.MainObjectTree") if uiObjectTree then frameHostWnd:BindUIObjectTree(uiObjectTree) frameHostWnd:Create() end end
在上述代码中,创建了对象化实例,并同时把对象化实例绑定到窗口模板实例上,它们之间是一一对应的。
效果会产生一个透明窗口:
BOLTUI界面引擎
BOLT UI界面引擎是如何工作的?(BOLT UI入门教程)相关推荐
- 学UI设计能从事哪些工作 如何学好UI设计
学UI设计能从事哪些工作?相信这个问题是很多人都关心的话题,今天小编就给大家分析一下UI设计从业方向有哪些!解决你们的后顾之忧! 一.按工作内容分类 1.视觉设计师 作为产品终极视觉稿的输出人员,对于 ...
- 科技感ui界面 html,技术实现丨如何增强UI页面的科技感
在界面中要想体现出更强的科技感,或者说让人眼前一亮.那么首先要知道,大众理解的科技感的东西或者说大众觉得很棒的科技感大概是什么. 人的审美一直在跟随着主流的媒体而变化 从1985年的电影<回到未 ...
- 【Unity3D编辑器扩展】Unity3D中实现UI界面控制,UI界面的显示和隐藏实现
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- UI素材模板|App搜索页UI界面设计版式
无论是在app还是在web端,搜索都是一个发现内容的重要方式.与web端不同,app上的搜 索功能在设计方面有自己独特的展现方式. 下面就看看这些App搜索页UI界面设计吧. 工作搜索App免费UI ...
- 2018年Sketch UI界面设计套件前十了解下!
Sketch近几年凭着大量的插件和免费教程迅速发展,而Sketch的忠实粉丝们也乐于将他们的免费模型分享出来.这也意味着你会在网上找到更多的免费Sketch素材,从完整的模型到内容详实的UI套件. 为 ...
- GUI,UGUI,NGUI三种编辑UI界面的插件
出现顺序:GUI,UGUI,NGUI的出现顺序:GUI-->NGUI-->UGUI. GUI:GUI是unity内置的,拥有大量的UI方面的类和方法.GUI用起来很繁琐,因为没有内置的按钮 ...
- 【转】学会这13个原则写UI界面文案,用户才能秒懂
原文网址:http://www.niaogebiji.com/article-12011-1.html 摘要: 首先,在写UI文案之前,为了理清思路,要先搞清楚三个问题:我(设计师)想让用户做什么? ...
- 仿win10系统UI界面纯html网页网站后台UI界面
仿win10系统UI界面纯html网页网站后台UI界面 一款经典仿win10系统UI界面纯html网页网站后台UI界面,效果超炫 演示地址:http://www.phprr.com/show-312
- 简单的UI框架 | 一、UI界面的搭建
简单的UI框架 UI界面的搭建 文章目录 简单的UI框架 前言 一.UI资源的导入 二.游戏主界面设置 1.背景设置 2.游戏主玩法图标按钮 3.游戏主玩法界面 4.预制体 总结 前言 本文将会学习到 ...
- 蓝牙聊天App设计1:Android Studio制作蓝牙聊天通讯软件(UI界面设计)
前言:蓝牙聊天App设计全部有三篇文章(一.UI界面设计,二.蓝牙搜索配对连接实现,三.蓝牙连接聊天),这篇文章是一.UI界面设计 课程1:Android Studio小白安装教程,以及第一个Andr ...
最新文章
- Nmap (网络映射器)好东西啊
- 【MATLAB】符号数学计算(四):符号表达式操作
- array,vector对象 数组越界检测
- ASP:当 request.cookies 发生 Microsoft VBScript 运行时错误 (0x800A000D) 类型不匹配: '[string:...
- A-Webkit第五章:添加成绩
- 网络故障排除连载之七:设备兼容性故障排除
- 韩研究人员声称:创造出了一块“不可破坏”的芯片!
- signature=486e34400687432217e65e837b8e6753,PXE常见错误代码表
- Android中WebService的应用
- 设计灵感|浓浓人文感!中文活动海报设计学习案例
- Liunx 内核漏洞
- 杰控组态软件的“远程连接服务”使用要点
- SQL Server 2005数据库可疑、置疑修复方法
- C# 使用openxml解析PPTX中的文本内容
- 8.15美团笔试和奇葩赛码网的输入坑
- mt管理器主题修改教程_华为微信气泡怎么设置皮肤 微信怎么改猫和老鼠的主题和气泡?...
- python绘制气象等值线图_用Matplotlib绘制Python等值线图
- 最优化理论基础与方法学习笔记——凸集与凸函数以及手写定理证明
- For循环—函数初步概念
- python实现bili手机客户端上下载的文件转成mp4