我在程序中创建事件时遇到问题。当我尝试使用以下系统设置运行它时,我得到错误"尝试调用方法' 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 = {};
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;
答案 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