Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   ограничение zoom'a по mousewheel (http://www.flasher.ru/forum/showthread.php?t=117279)

Самурай Джек 23.10.2008 14:59

ограничение zoom'a по mousewheel
 
Товарищи, дело такое... Сделал zoom по колёсику мышки, теперь возникла проблема с его ограничением. Код проверки примерно такой (на примере уменьшения, то есть вращения колёсика на себя):
Код:

if( (my_mc._xscale - step) > minimal_scale)
{
 my_mc._xscale -= step;
}

Если вращать колёсико аккуратно, то всё ок, ограничение срабатывает и уменьшения не происходит по достижению минимального размера. Но если крутануть колёсико резко, на обработчик сваливается параллельно много событий, результатом чего иногда является (т.к. все события считают, что уменьшение всё ещё допустимо) уменьшение до микроскопических величин. Кто-нибудь знает, как этого избежать?

Волгоградец 23.10.2008 15:20

Код:

if(my_mc._xscale <= minimal_scale){
  my_mc._xscale = minimal_scale;
}


Самурай Джек 23.10.2008 15:55

Такой вариант я рассматривал, но иногда заметен прыжок в минуса и быстрое выравнивание, что не есть гуд. Нельзя ли сделать некий объект синхронизации, чтобы при заходе в обработчик он захватывался и следующее событие уже ждало, пока объект освободится?

Волгоградец 23.10.2008 16:14

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

Самурай Джек 23.10.2008 17:58

Спасибо! Был не в курсе про последовательность отрисовки, сейчас попробовал, всё работает. Просто до этого по дурости разместил эту проверку в onEnterFrame, вот и прыгало. Ещё раз спасибо)


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

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