【发布时间】:2012-04-01 09:46:13
【问题描述】:
我有一个 Foo 类(嗯,一个伪类),设置如下:
--in foo.lua
Foo = {}
--constructor
function Foo:new(x, y)
--the new instance
local foo = display.newImage("foo.png")
-- set some instance vars
foo.x = x
foo.y = y
foo.name = 'foo'
--instance method
function foo:speak()
print("I am an instance and my name is " .. self.name)
end
--another instance method
function foo:moveLeft()
self.x = self.x - 1
end
function foo:drag(event)
self.x = event.x
self.y = event.y
end
foo:addEventListener("touch", drag)
return foo
end
--class method
function Foo:speak()
print("I am the class Foo")
end
return Foo
我希望 foo 对象上的事件侦听器在同一个实例上调用 foo:drag。不过,我不知道怎么做:目前它在我的 main.lua 中调用一个名为“drag”的本地函数,然后我将其传递回实例。我可以直接从监听器调用实例方法吗?我在这里阅读关于听众的信息http://developer.anscamobile.com/reference/index/objectaddeventlistener,但我有点困惑:/
谢谢,马克斯
【问题讨论】: