Я столкнулся с проблемой при попытке повторной отправки события мыши в ActionScript 3, к которым я, по общему признанию, отношусь скептически. Я сократил его до MouseEvent.clone()
a> метод оказался, ну, полностью сломанным. Следующий обработчик событий:
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 правильно клонируются, что ставит меня в еще большую потерю относительно того, что здесь происходит.