Ceci est la chose la plus étrange et la plus frustrante que j'ai vécue avec flash et je n'ai aucune idée comment résoudre le problème.Comportement d'événement bizarre en flash AS3
Tenir compte de cette fonction
public function trackDownloadHandler(event:MP3DownloadEvent):void
{
dispatchEvent(event);
//dispatchEvent(new MP3DownloadEvent(MP3DownloadEvent.OPEN,event.channelPadID))
}
Je l'ai fait un million de fois. Un événement particulier arrive dans un gestionnaire qui l'a envoyé de nouveau à partir de la classe à laquelle il est arrivé.
Mais pour une raison bizarre, je reçois une erreur disant
TypeError: Error #1034: Type Coercion failed: cannot convert flash.events::[email protected] to com.rocudo.audioEngine.events.MP3DownloadEvent.
je ne vois pas où je suis en train de convertir quoi que ce soit partout?
J'ai donc essayé d'envoyer un tout nouvel événement à la place et de voir comment cela a fonctionné. La mise en œuvre est ici ci-dessous.
public function trackDownloadHandler(event:MP3DownloadEvent):void
{
//dispatchEvent(event);
dispatchEvent(new MP3DownloadEvent(MP3DownloadEvent.OPEN,event.channelPadID))
}
Mais dans ce cas, le message d'erreur de type d'origine disparaît et je reçois une nouvelle erreur en disant
Type was not found or compile time constant :Vector
Qu'est-ce qui se passe ??
Je suis d'accord avec sberry2A - remplacer la méthode clone sur votre classe d'événement personnalisé, et envoyer e.clone(). Bien que, la deuxième approche que vous avez mentionnée fonctionne, en créant un nouveau, et que l'erreur de vecteur est susceptible d'être due à ce que mentionne sberry2A.Sachez simplement qu'à un certain moment, vous devrez supprimer l'écouteur d'événement, sinon vous rencontrerez un débordement de récursivité d'envoi d'événement. – falomir