AIMP Forum
Разное => Предложения (архив) / Suggestions (archive) => Архив / Archive => Реализовано в AIMP v5.0X / Implemented in AIMP v5.0X => Тема начата: Black_AVP от Марта 03, 2017, 09:23:02
-
Вопрос уже поднимался, но было предложено для этих целей использовать счётчики. В скриптах это возможно, но обращение к ним неудобно, также неудобно хранить в них вещественные значения.
Часто возникают такие ситуации, когда в проекте нужно менять какое-либо число, как правило, это константы, которые используются сразу в нескольких местах: в скриптах, во внешних связях, во внутренних выражениях провайдеров. Это всё нужно держать в голове и ошибку трудно обнаружить.
Использование переменных быыло бы полезно и в таблице свойств элементов, где задаются числовые значения, а может, даже, и строковые.
Чтоб не усложнять интерфейс редактора, можно было бы просто добавить раздел "Variables" в диалог "Custom Providers".
-
Как ты себе представляешь взаимодействие с этими переменными? Должны ли их значения сохраняться в конфиг?
-
Как ты себе представляешь взаимодействие с этими переменными?
Переменные, ес-но, должны быть доступны из скриптов (read/write), в принципе, наверное, и биндинг с ними возможен, если они будут выступать в роли провайдеров.
Внутренние выражения могут иметь вид: (Value < Var1) AND (Value > Var2). Аналогично и для внешних связей биндинга.
Можно конкретнее, что ты имеешь ввиду под "взаимодействием"?
Должны ли их значения сохраняться в конфиг?
Разумеется, как сохраняются и состояния счётчиков и т. п., иначе, какой смысл.
Понадобится, конечно, ещё один диалог, где пользователь задаст имя переменной, возможно, ещё и тип. Трёх типов будет достаточно: вещественного, целочисленного и строкового.
-
Проблема вот какого характера - отслеживание изменения переменной. Движок должен знать кто и где ссылается на эту переменную, отслеживать зависимости между скриптами и биндинг линками, и при изменении значения переменной перезапускать только определенный скрипты, и в определенном порядке, чтобы не вызвать нарушение синхроинности.
-
Проблема вот какого характера - отслеживание изменения переменной. Движок должен знать кто и где ссылается на эту переменную, отслеживать зависимости между скриптами и биндинг линками, и при изменении значения переменной перезапускать только определенный скрипты, и в определенном порядке, чтобы не вызвать нарушение синхроинности.
Ну, а как сейчас с теми же счётчиками происходит? Мы же тоже можем подключить его, к примеру, к коммутатору и использовать его значение во внутреннем выражении коммутатора.
А может, и вообще не отслеживать? Как в обычной программе: изменение переменной не влечёт за собой никакой реакции, если, конечно, это не свойсво объекта и к нему не привязана какая-либо процедура. Скрипт, когда он сработает, считает новое значение этой переменной, аналогично и биндинг, когда он будет задействован.
-
Я уверен, что после введения сразу захочется отслеживать... Сделать доступ к конфигу скина довольно просто, а вот сделать рассылку нотификаций об изменениях... не особо.
Для каких сценариев понадобилось сохранять такие параметры?
-
Ну, к примеру, такой простенький проектик. Здесь один и тот же параметр (или производный от него) используется и во внутр. выражении коммутатора и в двух разных скриптах:
(https://www.aimp.ru/forum/index.php?action=dlattach;topic=55869.0;attach=49603)
Плюс ко всему это ещё и модуль одного из счётчиков. И это ещё не самый тяжёлый случай.
Пусь это были бы как константы с возможностью их изменения.
-
Есть проблема - добавить глобальную переменную в выражение биндинг-линка очень сложно.
-
Есть проблема - добавить глобальную переменную в выражение биндинг-линка очень сложно.
А если хотя бы ограничится введением этого только в редактор, на уровне проектирования, а скин собирать уже с конкретными числовыми значениями - это не облегчит тебе жизнь?
-
Если проблема еще актуальная - я попробую реализовать поддержку в 5-ой версии.
-
Если проблема еще актуальная - я попробую реализовать поддержку в 5-ой версии.
ИМХО, было бы намного удобнее, чем хранить данные в счётчиках и ини-файле, и скрипт лаконичнее будет выглядеть.
-
хранить данные в счётчиках и ини-файле
Эти данные будут меняться в ходе работы скина?
-
Эти данные будут меняться в ходе работы скина?
Если это сильно усложнит задачу, то пусть хотя бы константами будут.
-
Само изменение - нет, не сложно. Другое дело, что при изменении нужно все пересчитывать, а это не всегда можно делать.
-
... Другое дело, что при изменении нужно все пересчитывать, а это не всегда можно делать.
Ну, я и имел в виду сложности с твоей стороны.
-
Ну, я и имел в виду сложности с твоей стороны.
Я имел в виду, что изменение константы не сможет автоматически запустить пересчет всех выражений и скриптов. Однако, при следующем их выполнении значения подхватятся новые. Такой вариант подойдет? Как сейчас происходят пересчеты при изменениях "констант"?
-
... Однако, при следующем их выполнении значения подхватятся новые. Такой вариант подойдет?
Вполне подойдёт.