2012-06-22 2 views
0

다른 클래스의 함수 값에 값을 할당 한 객체에 터치 이벤트를 쓰려고합니다. 그러나, 그것은 나 에게이 오류를 제공합니다 : 'addEventListener'없음 값을 호출하려고 시도합니다. 여기 루아에서 다른 클래스의 값을 할당 한 객체에 이벤트 리스너를 추가하는 방법은 무엇입니까?

내 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

fishImage은 '아무튼 사용자가 만든 클래스 (컬러)의 인스턴스 적어도 표시된 코드에는 addEventListener이라는 메서드가 있습니다. 아마도 :

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

Color 클래스가 캡슐화하는 코로나 이미지 객체에 이벤트 수신기를 추가하는 것은 무엇입니까?

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)