0

別のクラスの関数値の値を割り当てたオブジェクトのタッチ イベントを書き込もうとしています。ただし、次のエラーが表示されます。'addEventListener' nil 値を呼び出そうとしています。

これが私のfish.luaコードです:

function class()
 local cls = {}
 cls.__index = cls
 return setmetatable(cls, {__call = function (c, ...)
    instance = setmetatable({}, cls)
    if cls.__init then
        cls.__init(instance, ...)
    end
    return instance
  end})
end


Color= class()

function Color:__init(image)
  self.image=display.newImage(image,30,30)
end

originalImage="fish.small.red.png"
differentImage="fish.small.blue.png"

そして、これが私のmain.luaコードです:

require  "fish"

local fishImage=Color(originalImage)

function listen(event)
if(phase.event=="began") then
    fishImage=Color(differentImage)
  end
 end

fishImage: addEventListener("touch", listen)
4

2 に答える 2

0

fishImageは、作成したクラス(Color)のインスタンスであり、addEventListener少なくとも表示したコードには、という名前のメソッドがありません。おそらくあなたは意味しました:

fishImage.image:addEventListener('touch', listen)

これは、Colorクラスがカプセル化するコロナ画像オブジェクトにイベントリスナーを追加することです。

于 2012-06-22T07:39:35.843 に答える
0

あなたにはたくさんのバグがあります。ただし、これを例として使用してください: fish.lua

local fish = {}

fish.color = function(image)
    local image = display.newImage(image,30,30)
    return image
end

return fish

main.lua

display.setStatusBar(display.HiddenStatusBar)

local fish = require("fish")
local fishImage = fish.color("Icon.png")

local function listen(event)
    if(event.phase=="began") then
        fishImage=fish.color("Icon-60.png")
    end
end

fishImage:addEventListener("touch", listen)
于 2014-01-23T14:42:20.193 に答える