BOLT UI界面引擎是如何工作的?(BOLT UI入门教程)
来源:互联网 发布:阿里云黑洞触发值 编辑:程序博客网 时间:2024/06/06 11:50
今天开始学习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入门教程)
- 迅雷bolt界面引擎
- 迅雷Bolt界面引擎
- Bolt界面引擎元对象(UIObject)的动态创建
- bolt界面引擎学习笔记一
- bolt界面引擎学习笔记一
- Bolt引擎内置的元对象介绍
- Bolt界面引擎 HostWnd的生存周期以及相应的objtree的绑定问题
- Storm 提交拓扑后UI中spout、bolt的Num都显示为0
- Bolt界面引擎QuickStart: SDK,教程和开发环境
- Bolt的生命周期
- 基于BOLT的仿迅雷加速器界面开发(一)
- 基于BOLT的仿迅雷加速器界面开发(二)
- Storm可靠的Bolt与不可靠的Bolt
- 一个bolt接收spout和另一个bolt的tuple
- Bolt界面引擎中XLUE布局XML文件节点属性配置详解
- 用Bolt引擎实现换肤指南
- 解读BOLT引擎例子——HelloBolt2
- 静态字段定义
- strcpy_s的用法
- 安装ubuntu 12.04 server版
- web.xml配置总结
- Javascript艺术&技术:节省字节的技术
- BOLT UI界面引擎是如何工作的?(BOLT UI入门教程)
- 解释隐式转换赋值构造和复制构造等一些列问题(运行就明白了)
- Flex Label组件扩展边框与背景
- sqlserver 高版本数据倒到低版本 不同SQL Server版本间的数据库恢复问题
- NSArray和NSMutableArray的使用总结
- 黑马程序员_java中的面向对象
- 简单php分页类
- exec函数族的详解
- Extjs gridPanel对选中行的操作