Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   События остаются после их удаления (http://www.flasher.ru/forum/showthread.php?t=185516)

in4core 15.10.2012 18:32

AlexLucas - только что было написано что у тебя срабатывал, и после викреференс перестал. Что изменилось?

AlexLucas 15.10.2012 18:36

Показалось.

in4core 15.10.2012 19:10

Седня соберу пример. А то толку просто от разговор мало.

in4core 16.10.2012 01:52

Вложений: 1
вот готов минимальный пример. Можно даже потыкать)
Для cs4Вложение 28575
Можно увидеть, что изначально минус выставлен в disable , когда мы переводим его в disable второй раз, отрабатывает еще и второе событие клика

Wolsh 16.10.2012 03:08

Угу. Из-за дизаблинга минуса поменялся порядок подписки и соответственно приоритет.
Установите жесткий приоритет для "внутренней" подписки в enable:
Код AS3:

this.addEventListener(MouseEvent.CLICK , this.release  , false, 10 , true);

Сейчас у Вас "внешний" слушатель получает событие раньше, чем "внутренний". А у плюса наоборот.

in4core 16.10.2012 03:23

Wolsh спасибо, вот и нашли наверное корень зла. Отпишусь по результатам

Добавлено через 7 минут
Проверил работает. Но как сам считаешь , это все же костыль или нормальная практика? Просто никогда не приходилось работать с приоритетами

Wolsh 16.10.2012 04:06

Две подписки на одно событие. Какой-то обработчик должен быть вызван первым, а другой — вторым. Если не задать приоритет явно, первым будет вызван тот, который был подписан раньше. Поскольку ситуация изменения приоритета не всегда очевидна, могут возникать вот такие казусы. Но здесь нет мистики, бага и т.п. Все законно))

Simplifier 16.10.2012 04:12

Зачем тут приоритеты? e.stopImmediatePropagation(); в конец функции test добавь и все.
PS: Заодно и бесполезное условие
Код AS3:

if (j == 0) {
        j = 1;
}

убери. Хотя бы.

Точнее, в ветку if (j == 1) добавляй вызов

in4core 16.10.2012 11:40

Simplifier ))) это не код. это демонстарция работы приоритетов ) я бы такой код не написал)))


Часовой пояс GMT +4, время: 05:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.