gpt4 book ai didi

actionscript-3 - 了解dispatchEvent(evt.clone())

转载 作者:行者123 更新时间:2023-12-02 21:54:34 25 4
gpt4 key购买 nike

我对 ActionScript 有点陌生,并试图理解现有的代码。这里我有 MyRestServiceEvent 和 MyRestService。 MyRestService 类中定义了许多方法来调度许多事件,但有些方法实现了我无法理解的 dispatchEvent(evt.clone()); 。我知道MyRestServiceEvent已经实现了clone(),那么这个dispatchEvent(evt.clone());是做什么的呢?如果有人能向我解释这个过程,我真的很感激。

下面是这两个类的一些快照。

the event class

        public function MyRestServiceEvent(type:String, request:MyRestRequest, result:* = null, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);

this.result = result;
this.request = request;
}

/**
* Override clone to support re-dispatching
*/
override public function clone():Event
{
return new MyRestServiceEvent(type, this.request, this.result, bubbles, cancelable);
}
}
}

the event dispatcher class

public class MyRestService extends EventDispatcher
{

// ton of methods here but below is an example of one of the functions

private function checkAdminErrorHandler(evt:MyRestServiceEvent):void
{
dispatchEvent(evt.clone());
}
}

最佳答案

clone() 方法创建 Event 对象的重复实例。它通过创建该类的新实例并将其属性设置为与原始实例相同的值来实现这一点。自定义事件可以重写此方法以正确处理引用类型的复制。

当要重新分派(dispatch)事件时,需要进行克隆,以便可以将其只读属性(bubbles、cancelable、currentTarget、target)再次设置为新值。

关于actionscript-3 - 了解dispatchEvent(evt.clone()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17985834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com