Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Corona SDK、lua中的EventListener问题_Lua_Coronasdk - Fatal编程技术网

Corona SDK、lua中的EventListener问题

Corona SDK、lua中的EventListener问题,lua,coronasdk,Lua,Coronasdk,我在程序中创建事件时遇到问题。当我尝试使用以下系统设置运行它时,我得到了错误“尝试调用方法”addEventListener(一个nil值)”我要寻找的效果是OtherObject文件向对象文件发送一个信号,即事件,告诉特定实例它已完成OtherObject文件中的某个任务。任何帮助或指导我走上正确的道路都将不胜感激 对象文件 其他对象文件 :addEventListener()仅适用于运行时和使用display.newImage()创建的对象。我刚刚更新了代码,将display.newImag

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

对象文件 其他对象文件
: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