Corona SDK、lua中的EventListener问题
我在程序中创建事件时遇到问题。当我尝试使用以下系统设置运行它时,我得到了错误“尝试调用方法”addEventListener(一个nil值)”我要寻找的效果是OtherObject文件向对象文件发送一个信号,即事件,告诉特定实例它已完成OtherObject文件中的某个任务。任何帮助或指导我走上正确的道路都将不胜感激 对象文件 其他对象文件Corona SDK、lua中的EventListener问题,lua,coronasdk,Lua,Coronasdk,我在程序中创建事件时遇到问题。当我尝试使用以下系统设置运行它时,我得到了错误“尝试调用方法”addEventListener(一个nil值)”我要寻找的效果是OtherObject文件向对象文件发送一个信号,即事件,告诉特定实例它已完成OtherObject文件中的某个任务。任何帮助或指导我走上正确的道路都将不胜感激 对象文件 其他对象文件 :addEventListener()仅适用于运行时和使用display.newImage()创建的对象。我刚刚更新了代码,将display.newImag
:addEventListener()
仅适用于运行时和使用display.newImage()
创建的对象。我刚刚更新了代码,将display.newImage()调用包含在两个对象中,但我的问题与以前一样,您正在将addEventListener
应用于没有addEventListener
方法的类。那么,我该如何制作addEventListener和dispatchEvent函数?那么我该如何从其他对象分派它呢?如果我加上你的建议,我就不会出错。但是,它并没有在al上运行事件函数。请显示您的代码。顺便说一句,OtherObject模块中有一个输入错误,returnsetmetatable(Obj,ObjectMeta)中的metatable错误代码>我发现了我的问题,它现在工作正常,我更新了代码。谢谢你的帮助
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;
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