与Corona SDK中的事件监听器有关的问题,lua

时间:2013-05-09 06:03:03

标签: lua corona

我在程序中创建事件时遇到问题。当我尝试使用以下系统设置运行它时,我得到错误"尝试调用方法' addEventListener(一个零值)"我正在寻找的效果是OtherObject文件向Object文件发送一个信号,该事件告诉特定实例它已在OtherObject文件中完成了一些任务。任何有助于我走上正确道路的帮助或指导都将非常感激。

目标文件

Object = {};

ObjectMeta = {__index = Object};

function Object:onTrigger()
   --Event Triggered
end

function Object.new(args)
    Obj = {};
    Obj.sprite = display.newImage("Picture.png");
    Object.someObject = OtherObject.new(args);
    Object.someObject.owner = Object;
    Object:addEventListener("onTriggered", Obj);
    return setmetatable(Obj,ObjectMeta );
end





return Object;

OtherObject File

OtherObject = {};

OtherObjectMeta = {__index = OtherObject};

function OtherObject.new(args)
    Obj = {};
    Obj.sprite = display.newRect(0,0,3,7);
    Obj.ObjectImAttachedTo =nil;
    return setmetatable(Obj,OtherObjectMeta );
end
function OtherObject:doSomething()
    self.ObjectImAttachedTo:dispatchEvent( {name = "triggered"} );
end
return OtherObject;

1 个答案:

答案 0 :(得分:1)

local Object = {}

local ObjectMeta = {__index = Object}

function Object:triggered(event)
   --Event Triggered
end

function Object.new(args)
    local Obj = {}
    Obj.someObject = OtherObject.new(args)
    Obj.someObject.ObjectImAttachedTo = Obj
    setmetatable(Obj, ObjectMeta)
    Runtime:addEventListener("triggered", Obj)
    return Obj
end

return Object