Я столкнулся с проблемой при попытке повторной отправки событий мыши в ActionScript 3, что, по общему признанию, вызывает недоумение. Я сузил его до метода MouseEvent.clone()
, который, похоже, полностью нарушен. Следующий обработчик событий:
private function handleMouseMove( evt : MouseEvent ) : void
{
trace("mousemove", evt.stageX, evt.stageY);
var newEvt : MouseEvent = evt.clone() as MouseEvent;
trace("mousemoveclone", newEvt.stageX, newEvt.stageY);
}
Результатом будет следующий вывод до бесконечности:
mousemove 167 206
mousemoveclone 0 0
Это соответствует тому, что код, который я повторно отправлял MouseEvent, получал, отсюда моя гипотеза о сломанной функции клона.
Это прямо противоречит тому, что должно произойти в связанной документации, если я что-то не пропустил. Я в полной растерянности относительно того, что я сделал (или не сделал), что могло бы вызвать такое поведение. Неужели парни из AS3 действительно забыли прочитать свои собственные документы на Event.clone()
?
Я могу обойти это, вместо этого используя функциональные объекты для моего конкретного случая использования, но я бы предпочел этого не делать. Есть идеи?
Редактировать: Кажется, что члены localX и localY должным образом клонируются, что приводит меня к еще большим потерям относительно того, что здесь происходит.