PDA

Просмотр полной версии : повторный mc.onPress


alex_195
05.01.2012, 03:00
Есть клип-кнопка. Для работы с проектом в определенный момент необходимо несколько раз подряд кликать по нему. При первом mc.onPress срабатывает нормально, но если не менять положение курсора(руки) mc на следующие клики не срабатывает. Да, по команде mc.onPress производятся вычисления переменных, проверки значений переменных, выполняются какие-то функции, но массивов там нет и задержки в выполнении кода не должно быть, тем более что при малейшем сдвиге курсора mc.onPress опять работает нормально. Вроде раньше не замечал такого. Так в чём может быть причина несрабатывания последующих mc.onPress при неизменных координатах курсора.

walk
05.01.2012, 05:07
onRelease попробуй))

alex_195
05.01.2012, 14:54
Пробовал. Не катит.

Tails
05.01.2012, 15:04
mousMovie нигде не используется ? Пробовали создать чистый проект и протестить mc.onPress ?
Лаги не влияют на onPress.

dark256
05.01.2012, 15:07
Код в студию.

mooncar
05.01.2012, 17:00
Вероятно, проблема связана с тем, что затрагивается сама кнопка.
Например, дело может быть в том, что после сработки onPress под курсором оказывается другой экземпляр той же кнопки. Было похожее.
А вот почему такое может быть - надо смотреть сам проект.

alex_195
05.01.2012, 21:25
Вырвал минимальный размер, который показывает этот баг. Если второй или третий кадр выбросить в отдельный документ - работает нормально, а вместе не хотят.

mooncar
05.01.2012, 22:43
Про какие кнопки-то идет речь? Опишите баг поподробнее...

Ясно, не срабатывает должным образом навигация, если во втором сюжете (кадре) два раза воспользоваться кнопкой Next (появляется еще одно поле ввода, на него встает фокус), потом пройти на другой кадр, а потом вернуться и продолжить кликанье по той же навигационной кнопке дальше, не уводя мышь. Это как-то связано с фокусом. Точнее пока не могу сказать.

UPD:
Вот вам такой "костыль" (код для первого кадра):

stop();

vper._focusrect = naz._focusrect = false ;

vper.onRelease = vper.onReleaseOutside=function () {
Selection.setFocus(this);
nextFrame();
};

naz.onRelease = naz.onReleaseOutside=function () {
Selection.setFocus(this);
prevFrame();
};

alex_195
06.01.2012, 13:39
mooncar, спасибо что не пожалел времени на анализ моего бредового кода. Подозрение, что весь "фокус" в фокусе у меня было и раньше. После твоего совета порылся в теории и на событие onPress повесил

Selection.setFocus(this);
this._focusrect = false;

и всё работает корректно. Для более корректного применения фокусировки в коде пройдусь по теории.
Ещё раз спасибо.

mooncar
06.01.2012, 21:54
Пожалуйста.
Кстати, свойство перназначать на каждое нажатие не обязательно, достаточно один раз:
this._focusrect = false;