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

你有很多错误。但以此为例:fish.lua

local fish = {}

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

return fish

主程序.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 回答
0

fishImage是您创建的 (Color) 类的一个实例,它没有名为 的方法addEventListener,至少在您显示的代码中没有。也许你的意思是:

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

这是向您的 Color 类封装的电晕图像对象添加一个事件侦听器。

于 2012-06-22T07:39:35.843 回答