Это самая странная, самая необъяснимая и сложная вещь, с которой я столкнулся со вспышкой, и у меня нет идеи, как решить проблему.поведение причудливого события во вспышке AS3
Рассмотрим эту функцию
public function trackDownloadHandler(event:MP3DownloadEvent):void
{
dispatchEvent(event);
//dispatchEvent(new MP3DownloadEvent(MP3DownloadEvent.OPEN,event.channelPadID))
}
Я сделал это в миллион раз. Особое событие прибывает в обработчик, который отправил его снова из класса, к которому он прибыл.
Но по какой-то странной причине я получаю сообщение об ошибке говорящее
TypeError: Error #1034: Type Coercion failed: cannot convert flash.events::[email protected] to com.rocudo.audioEngine.events.MP3DownloadEvent.
Я не вижу, где я пытаюсь преобразовать что-нибудь где-нибудь?
Итак, я попробовал, возможно, просто отправить новое событие вместо этого и посмотреть, как это получилось. Реализация здесь приведена ниже.
public function trackDownloadHandler(event:MP3DownloadEvent):void
{
//dispatchEvent(event);
dispatchEvent(new MP3DownloadEvent(MP3DownloadEvent.OPEN,event.channelPadID))
}
Но в этом случае сообщение об ошибке оригинального типа уходит, и я получаю новую ошибку говоря
Type was not found or compile time constant :Vector
Что, черт возьми, происходит ??
Я согласен с sberry2A - переопределить метод clone в вашем настраиваемом классе событий и отправить e.clone(). Хотя, второй подход, о котором вы говорили, работает, создавая новый, и эта ошибка Vector, вероятно, будет связана с тем, что упоминается в sberry2A.Просто имейте в виду, что в какой-то момент вам придется удалить прослушиватель событий, иначе вы столкнетесь с переполнением рекурсии. – falomir