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は実際にはまったくクラスではありません...(プロパティとメソッドがあるため、クラスのように見えますが)

Lua で OOP を行うことはできますか? はい、できますが、これは単純なものを複雑にするものであり、軽合金鋼のホイールをキャリッジ用に設計したり、飛行機に 3 段ロケット エンジンを搭載したりしています。これはオーバーエンジニアリングであり、何のパフォーマンスも向上しません (ランタイム、コーディング時間、コーディングのメンテナンス...) またはさらに悪化させる可能性さえあります。

それが何であるかとしてLuaを使用することを学びます! 非常に柔軟で興味深い、非常に幅広いアーキテクチャ オプションを備えています。

于 2012-09-30T17:53:15.597 に答える