最好是创建单个对象事件而不是总是创建另一个?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最好是创建单个对象事件而不是总是创建另一个?相关的知识,希望对你有一定的参考价值。

通常在调度Event(或自定义事件)时,我使用:

function fireEvent():void {
    dispatchEvent(new Event(Event.COMPLETE));
}

最好每次都使用单个对象来发送事件吗?我可以这样做吗?

var myEvent:Event = new Event(Event.COMPLETE);

function fireEvent():void {
    dispatchEvent(myEvent);
}
答案

如果它有效,它会更好(例如创建事件池)。不幸的是,AS3在事件流程中对事件对象做了一些内部魔术,这使得对象只能使用一次(很抱歉,由于某些原因我无法快速找到证据)。

您可以通过第二次调度事件轻松获得确认,您的侦听器将不会被触发(可能仅适用于冒泡功能,而不是完全记住),因此您必须为每个dispatchEvent调用创建一个新的事件对象实例。

另一答案

我认为即使汇集工作也不值得。在astionscript中创建事件对象并不昂贵,添加事件侦听器也是如此。你最好把这些努力放在管理听众和处理程序上,这很容易成为性能上的扼杀者。

以上是关于最好是创建单个对象事件而不是总是创建另一个?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个将由事件侦听器调用的单个函数,而不是每个不同按钮的函数?

findById 返回文档列表而不是单个结果

在 C# 中从类中声明一个数组

NSFetchedResultsController 总是返回 NSManagedObject 对象而不是自定义

html助手。 ActionLink 总是设置当前控制器而不是传递另一个控制器

在单个 S3 对象上传事件上触发多个 lambda