0

我尝试做这样的事情:

需要“中产阶级”

Button = class('Button',DisplayObject)

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

myButton = Button()

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

4

1 回答 1

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

中间类不是为你想做的事情而设计的...... DisplayObject 根本不是一个类......(即使它看起来像一个类,因为它具有属性和方法)

不要用沉重的 OOP 思想编写 Lua,你可以在 Lua 中做 OOP?是的,你可以,但这会使简单的事情复杂化,它是为马车设计一个轻合金钢轮,或者在飞机上安装一个 3 级火箭发动机,这是过度设计,不会提高任何东西的性能(运行时、编码时间,编码维护......)甚至可能使情况变得更糟。

学习如何使用 Lua!非常灵活和有趣,具有非常广泛的架构选项!

于 2012-09-30T17:53:15.597 回答