父与子,属性和方法,基本概念简介

1. 控件和框体

前面已经提过,这里和其他概念放在一起说明。

控件: 抽象出来的类型,比如单行文本框类型,控件提供属性和方法给框体使用,并设置框体的默认行为和样式。这是系统提供的部分。

框体: 实际使用的界面元素,依照控件制造出来的,是自定义插件使用的部分。

2. 属性和方法, 事件处理方法

方法 控件提供给框体使用的方法,用于改变框体的样式和行为。使用时,框体和方法之间用":"连接。原因吗,多看看lua吧。。。

属性: IGAS系统的一个特有功能,使用属性可以方便的查询或者修改框体的样式之类,比如btn.Width可以替代btn:SetWidth(30), btn:GetWidth()使用。不过这个特性将主要用于图形化编辑时,提供属性编辑,方便开发。

事件处理方法: 框体是人机交互的媒介,框体会依据用户的各种行为产生事件,比如鼠标移进框体产生OnEnter事件,离开产生OnLeave事件,点击产生OnClick事件等,事件处理方法就是开发者用来相应某个事件的方法。详细见后面的例子。

3. 父框体和子框体

所有框体都有父框体,最基础的框体是UIParent,在CreateFrame(控件, 框体名, 父框体) 第三个参数如果不指定,那么父框体就是UIParent。子框体在这个系统中,并不单单是随着父框体隐藏和显示。实际上每个框体在内存中都保存为一张表,而经过IGAS的处理,子框体保存在父框体的表之中,这样可以形成有序的数据结构。优化内存管理。

4. 父控件和子控件

子控件从父控件处继承方法和属性,并拥有自己的方法和属性,最基础的控件是UIObject,这是个抽象控件,无法被生成,它定义系统产生的框体的基本行为。UIObject之下,是我依照BLZ提供的控件类型制作的基础控件,这些控件可以使用BLZ提供的XML模板制造框体,是系统的基座, 比如Frame控件,就是一个常用的基层控件。再往下,是一些常用的自定义控件,无法使用XML模板,他们本身就是完整的一个模版, 比如选择框ComboBox。有时间,我会做个继承图。

5. IGAS.GUI.CreateFrame

这个函数被单独提出,它的使用方法和BLZ提供的CreateFrame类似,不过由它产生的框体就能使用IGAS-GUI系统的一切便利,以后不特别指出的场合,CreateFrame就代表IGAS.GUI.CreateFrame。请勿混淆了。