# 构造方法

  • 每个类的构造方法约定为 new
  • 且第一个参数为父控件 可以为 nil 例如
    class.text = extends(class.panel) {
        new = function (parent, ...)
            --... 此处略去1万字
            return object
        end,
    }
1
2
3
4
5
6

元类 将会自动生成其他构造方法

# 基础的控件类

名字 类型 说明
面板 panel 用来做底板 继承的子类可添加子控件
图像 texture 用来只显示图像不做任何操作
按钮 button 用来响应用户鼠标点击进入离开操作
文本 text 用来显示文字
编辑框 edit 用来获取用户输入文字
模型 model 用来显示 mdx mdl 模型

# 例子

  • 构造一个面板

    -- path, x, y, w, h
    local panel = class.panel.create("xx.blp", 300, 300, 300, 300)

1
2
3
  • 构造一个图像
    local texture = class.texture.create("xx.blp", 300, 300, 300, 300)

1
2
  • 构造一个按钮
    local button = class.button.create("xx.blp", 300, 300, 300, 300)

1
2
  • 构造一个文本
    --text,x, y, w, h, font_size, align
    local text = class.text.create("文本内容", 300, 300, 300, 300, 15, "center")

1
2
3
  • 构造一个按钮带文字

当 x y 轴不填时 默认是 0 w h 不填时 默认为父控件大小

    local button = class.button.create("xx.blp", 300, 300, 300, 300)
    button.text = button:add_text("文本内容", nil, nil, nil, nil, 15, "center")

    button.text:set_text("新的文本内容")
1
2
3
4
  • 创建一个像魔兽一样的技能按钮
    local w, h = 91, 71
    local button = class.button.create("xx.blp", 100, 100, w, h)
    button.icon = button:add_texture("xx2.blp", w - 32, h - 32, 32, 32)
    button.icon.text = button.icon:add_text("10", nil, nil, nil, nil, 8, 'center')

    local path = [[UI\Feedback\Cooldown\UI-Cooldown-Indicator.mdl]]
    button.model = button:add_model(path)

    button.model:hide()
    button.model:set_scale(0.65, 0.85)

1
2
3
4
5
6
7
8
9
10
11