我正在尝试为我赋予另一个类'函数值的值的对象编写触摸事件。但是,它给了我这个错误:尝试调用'addEventListener'nil value。
这是我的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)
答案 0 :(得分:0)
fishImage
是您创建的类的一个实例(Color),它没有名为addEventListener
的方法,至少在您显示的代码中没有。也许你的意思是:
fishImage.image:addEventListener('touch', listen)
将Color事件监听器添加到Color类封装的电晕图像对象中。
答案 1 :(得分: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)