如何在原生lua环境实现quick对Button的扩展

我现在用3.2的版本,用原生的lua写代码,看到quick中有SpriteEx,ActionEx等对原生引擎进行各种扩展,现在我想实现类似的功能,不知道如何实现,求大神指点。

可以的,在\quick\framework\functions.lua文件中有详细说明
大致就是把想扩展的控件当成一个对象,用自定义控件继承过来,然后可以和C++的类一样自行扩展或重载函数
草草举例如下:

1、自定义一个基于button的新类:

在src下建立models目录,建立一个ClassButtonEx.lua文件,内容为

local UIButton = import(“framework.cc.ui.UIPushButton”) --引入要继承的基类文件位置
local ClassButtonEx = class(“ClassButtonEx”, UIPushButton)–继承之

–自定义的button扩展函数
function ClassButtonEx:MySelfFunction()
print(“dodododo”) --想干嘛干嘛,这里是在控制台打印一串英文,注意,print是lua原生函数,和quick扩展的printf用法不同
end

–重载的button函数,和原始的Button同名
function ClassButtonEx:align()
print(“heiheihei”) --重载基类的某一函数,这里是乱写的,意思明白就好
end

return ClassButtonEx

2、用的时候,先在要用的地方引入你自定义的类文件,这里是在MainScene.lua中调用

local ClassButtonEx = import("…models.ClassButtonEx")

然后自己创建对象,调用,如:

local MyButtonEx = ClassButtonEx.new(({ normal = “res/Button1001.png”, pressed = “res/Button1002.png” })
:onButtonClicked(function() print(“ok”) end)
:pos( display.cx / 2, display.cy )
:addTo(self)

–调用下自己定义的函数
MyButtonEx:MySelfFunction()