Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

App inventor отличить непосредственное изменения ползунка от программного

Тема в разделе "Android приложения (разработка и готовые решения)", создана пользователем Sany81, 19 сен 2018.

  1. Sany81

    Sany81 Новичок

    Сообщения:
    5
    Симпатии:
    0
    Добрый день.
    Как в App inventore отследить было ли изменение ползунка программное или непосредственное?
    Проблема в том, что есть 3 ползунка(3 составляющих цвета RGB), при изменении которых вызывается процедура передачи цвета на контроллер.
    Есть канва, при касании или движении по которой определяется цвет точки и меняются ползунки согласно этого цвета. Т.е. меняются все 3 ползунка . При этом каждый бегунок вызывает процедуру.
    К примеру начальный цвет был 0/0/0
    Прикоснулись на канве к точке с цветом 255/255/255
    На контроллер в этот момент будет передано 3 разных значения цвета:
    255/0/0/
    255/255/0
    255/255/255
    Как этого избежать? Как отловить что ползунок был изменен программно?
    Пробовал создать глобальные переменные sR/sG/sB = истина
    В момент, когда происходит касание по канве присваиваю sR/sG/sB = ложь
    В момент когда происходит событие изменения ползунка, проверяю, если нужная переменная = истина тогда выполнить передачу цвета на контроллер. И после условия присваиваю нужной переменной значение Истина.

    Т.е. по моей логики должно было бы быть так:
    Изначально sG=Истина;
    При непосредственном изменении слайдера переменная sG всегда будет равна ИСТИНА и всегда будет выполняться нужная процедура.
    Если же изменение слайдера происходит программно, то переменная sG=Ложь, в событии изменения слайдера проверяем sG=Ложь, поэтому не вызываем процедуру и присваиваем sG = Истина.
    Но почему то этот метод у меня не работает, все равно процедура вызывается.
     

Поделиться этой страницей