【发布时间】:2013-05-10 00:40:30
【问题描述】:
我在我的程序中创建事件时遇到问题。当我尝试使用以下系统设置运行它时,我收到错误“尝试调用方法'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;
【问题讨论】:
-
:addEventListener()仅适用于Runtime和使用display.newImage()创建的对象。 -
我刚刚更新了我的代码,将 display.newImage() 调用包含在两个对象中,但我仍然遇到与以前相同的问题
-
和以前一样,您将
addEventListener应用到没有addEventListener方法的类。 -
那么我将如何制作 addEventListener 和 dispatchEvent 功能?