У меня есть фрагмент ролика, к которому я добавил слушателя MouseEvent.MOUSE_OUT.
movieclip.addEventListener(MouseEvent.MOUSE_OUT, removeMovieClip);
Теперь логика состоит в том, чтобы удалить видеоклип на MOUSE_OUT
и добавить его на сцену на MouseOver
другой кнопки.Предполагаемая функциональность похожа на слайдер, показывающий некоторую информацию
В этом случае срабатывание MouseEvent.MOUSE_OUT
не всегда работает должным образом.Когда я быстро убираю мышь из движущегося зажима , она срабатывает .Если я уйду очень медленно , он не сработает и, следовательно, видеоклип останется на сцене.
В чем может быть проблема?.
Обновление: Я забыл упомянуть, что использую hitTestPoint , чтобы проверить, находится ли мышь вне MovieClip .В большинстве случаев, если я медленно перемещаю мышь, hitTestPoint
не дает правильных результатов (ложно), что она находится за пределами мувиклипа, и, следовательно, я не могу удалить объект.
Обновление 2: Позвольте мне перефразировать вопрос.Я думаю, что перепутал объяснение.
События мыши работают правильно.
movieclip.addEventListener(MouseEvent.MOUSE_OUT
срабатывает правильно, и я нахожусь в методе обработки события.Теперь, когда я пытаюсь выяснить, вышел ли я из этого фрагмента ролика, возникает проблема.
private function removeObj(eve:Event):void
{
var e:MouseEvent = MouseEvent(eve);
if (m_wishlistImage)
{
var InsideSlot:Boolean = eve.currentTarget.hitTestPoint(e.stageX, e.stageY);
if(!InsideSlot){
При медленном перемещении мыши из объекта InsideSlot
остается верным, и, следовательно, поток кода не входит в условие if
, и, следовательно, я не могу удалить объект.
Во время трассировки e.stageX
Я вижу, что он часто показывает координаты, которые не совсем там, где находится мышь, когда она выдвигается (показывает точку внутри слота).Такое поведение чаще всего проявляется, когда я медленно выезжаю.
В чем может быть причина?