使用带超类的middleclass库

时间:2012-09-29 04:43:06

标签: corona displayobject

我尝试做这样的事情:

要求'middleclass'

Button = class('Button',DisplayObject)

所以为了创建一些我想成为显示对象的按钮......

myButton = Button()

但它不起作用。似乎DisplayObject不被识别为类。

1 个答案:

答案 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!非常灵活和有趣,具有非常广泛的架构选择!