使用EventListener从变量收集信息

时间:2013-05-31 12:47:23

标签: actionscript-3 flash variables event-listener

这可能是一个非常复杂的问题,但是我正在制作一个游戏,我曾经多次入侵并且我有过请求,但我不知道如何解决它。 我在AS3上不是那么先进,所以如果我失败了,请保持友善。

请求是为游戏制作聊天捕手,保存所有聊天。我被告知我可以使用EventListener来执行此操作。我也发现了

Game.chatM

是否可以找到所有聊天的链接(我认为这是正确的词)。 我知道这是一个非常紧张的问题,但是有一个功能可以做这样的事情吗?喜欢从这个变量中收集信息吗?

非常感谢任何建议!

我之前尝试过的事情:

package
{
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.EventDispatcher;
 public Class ChatCatcher extends Sprite
 {
 private var Game.chatM:Model;
public function ChatCatcher():void
{
  Game.chatM = new Model();
  Game.chatM.addEventListener(Model.VALUE_CHANGED, onModelChanged);
}
private function onModelChanged(e:Event):void
{
  trace('New Chat Message');
//This is where hopefully chat will be saved
}
}
}

1 个答案:

答案 0 :(得分:0)

您的代码看起来有点可疑。

您错误地在此行上声明了一个变量:

private var Game.chatM:Model;

您不应该声明名称中带有点的变量。当您尝试编译代码时,这应该会生成错误。

我认为Game是一个类,并且在该类中定义了一个名为chatM的静态属性(类型为Model)。如果是这种情况,那么你应该做这样的事情来在你的类中声明聊天模型的本地实例:

private var chatModel:Model = Game.chatM;

接下来,为事件“onModelChanged”添加事件侦听器。 如果,聊天模型类在添加新聊天消息时调度此类事件,则您的事件侦听器将被执行。

但我在这里的猜测似乎让我得出的结论是,这一切都是不必要的。我确定我误解了一些东西......但你的意图是得到所有聊天消息的列表。似乎你已经有了这个列表(聊天模型本身)。

如果这没有帮助,您还应该为Model课程添加相关代码,如果它存在,则Game课程...当然,请告诉我我的猜测在哪里错了!