AS3 MouseEvent.MOUSE_MOVE перестает отвечать на запросы после вызова MouseEvent.CLICK - PullRequest
0 голосов
/ 06 ноября 2010

У меня есть несколько обработчиков событий этапа, позволяющих навести курсор мыши на несколько динамически сгенерированных фрагментов ролика на сцене, которые затем меняют свою альфа, чтобы указать, что мышь находится над этим конкретным mc ... довольно тривиально (обработчик mcOver).Кроме того, я также хочу знать, на каком MC нажата кнопка, поэтому я обновляю открытую переменную (public var activemc: Number) с помощью идентификатора динамического мувиклипа, когда на нем находится мышь (для проверки используется hitTest, поэтому EventListenerдобавляется в stage, а не в MC), что проверяется в обработчике mcClicked:

Это в конструкторе:

//stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
   //stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing);
   stage.addEventListener(MouseEvent.MOUSE_MOVE, mcOver);
   //stage.addEventListener(Event.MOUSE_LEAVE, outlinesHide);
   stage.addEventListener(MouseEvent.CLICK, mcClicked);

Однако поведение при наведении курсора (альфа 0 при превышении, альфа 1, когда отсутствует) перестает работать, как только я нажимаю на любой мувиклип на сцене, и проверка mcClicked ID (ниже) перестает работать полностью.Я не знаю, связано ли это с фокусом:

private function mcClicked(event:MouseEvent):void {

myTextField.text = String(activemc); // activemc is a public var:Number with the movieclip //ID

}

Затем я снова попытался добавить обработчик события для stage mouse_move, и это снова заставило работать курсор мыши, но только еще на 1 клик, после чегоэто снова останавливается:

private function mcClicked(event:MouseEvent):void {

myTextField.text = String(activemc); // activemc is a public var:Number with the movieclip //ID


stage.addEventListener(MouseEvent.MOUSE_MOVE, mcOver);
}

Я был бы чрезвычайно признателен, если бы кто-нибудь мог помочь разобраться в этом действительно раздражающем поведении!Спасибо!

1 Ответ

0 голосов
/ 06 ноября 2010

Просто попробуйте, вместо альфа 0, попробуйте альфа = 0,1 или выше при наведении мыши.

Еще одна попытка, которую стоит дать, - остановить распространение MouseEvent в «mcClicked» - это проверить, если где-либо ещедвижение мыши убирается со сцены.

...