我尝试做这样的事情:
要求'middleclass'
Button = class('Button',DisplayObject)
所以为了创建一些我想成为显示对象的按钮......
myButton = Button()
但它不起作用。似乎DisplayObject不被识别为类。
答案 0 :(得分:0)
DisplayObject不是一个类......
它甚至不是一个合适的Lua对象,DisplayObject是一个用户类型,可能有很多含义,做你想做的事情是非常糟糕的想法......
如果你想用DisplayObject(比如一个按钮)创建一个Lua“类”,那么真正正确的方法是:
Mybutton = display.newImage(group, name)
function Mybutton:myCustomFunctionHere()
--dostuff
end
或者如果你真的想要一个按钮构造函数......
local function buttonConstructor(groupArg, nameArg, customArg)
local returnValue = display.newImage(groupArg, nameArg);
returnValue.someVar = customArg;
returnValue.anotherVar = customArg;
return returnValue;
end
middleclass不是为你想要做的那种东西而制作的...... DisplayObject实际上根本不是一个类......(即使它看起来像是一个因为它有属性和方法)
不要用沉重的OOP代码编写Lua,你可以在Lua中做OOP吗?是的,你可以,但这很简单,它设计一个轻型合金钢轮用于运输,或将三级火箭发动机放在飞机上,它是过度工程,不会提高任何性能(运行时间,编码)时间,编码维护......)或甚至可能使情况变得更糟。
学习如何使用Lua!非常灵活和有趣,具有非常广泛的架构选择!