AIMP Forum

AIMP for PC => Skin Editor, Skin Engine => Ошибки и замечания / Bugs => Topic started by: gr-e on October 27, 2022, 00:59:27

Title: [+] [1248] Срабатывание ScriptableOperatorCounter во время загрузки скина
Post by: gr-e on October 27, 2022, 00:59:27
При запуске обложки инициализируется значение ScriptableOperatorCounter, как следствие, выполняется привязянный к нему скрипт.
Проблема в том, что на этот момент обложка еще не загрузилась полностью, и скрипт может отработать некорректно: например, если проверяется видимость окна, которое еще не успело появиться.
По идее, скрипт в этом случае выполняться не должен. Ну или выполняться уже после загрузки скина (хотя я в этом смысла не вижу).
Title: Re: [1248] Срабатывание ScriptableOperatorCounter во время загрузки скина
Post by: Artem on October 27, 2022, 14:13:31
Большая часть элементов восстанавливают свое состояние из конфига (если их состояние не зависит от других - т.е. не вычисляется автоматически, естественно). Нужен пример скина, где счетчик реагирует там, где не надо и не в то время.
Title: Re: [?] [1248] Срабатывание ScriptableOperatorCounter во время загрузки скина
Post by: gr-e on October 27, 2022, 18:02:38
Переключить провайдер в положение 1, перезагрузить АИМП.
При запуске сначала выполнится пользовательский провайдер и напишет в текстовой метке, что окно скрыто. После этого выполнится OnLoaded и уже напишет, что окно открыто.
Title: Re: [?] [1248] Срабатывание ScriptableOperatorCounter во время загрузки скина
Post by: Artem on October 28, 2022, 11:22:02
Посмотрел ваш пример - не вижу тут логической ошибки.

ScriptableOperatorCounter никак не связан с видимостью окна, и то, что он выплюнет зависит сугубо от того, когда он вызван (собственно, на что вы и жалуетесь). Тоже самое и с OnLoaded. Гарантий, что состояние окна в этот момент уже будет восстановлено - нет. Поэтому я бы предостерег вас затачиваться на особенности поведения программы (оно запросто может измениться). Правильным в данном случае будет вешаться на видимость окна и реагировать на ее изменение.
Title: Re: [+] [1248] Срабатывание ScriptableOperatorCounter во время загрузки скина
Post by: gr-e on October 28, 2022, 18:26:02
Видимость окна это просто пример, в скрипте может быть что угодно.
Проблема в другом: я ожидаю, что скрипт будет выполняться только тогда, когда меняется его значение, а он иногда вызывается еще и при запуске плеера.
Конечно, теперь, когда я нашел, в чем причина, исправить скин - не проблема. Но если не знать/забыть про эту особенность, можно получить баги.
Title: Re: [+] [1248] Срабатывание ScriptableOperatorCounter во время загрузки скина
Post by: Artem on October 29, 2022, 22:03:28
когда меняется его значение, а он иногда вызывается еще и при запуске плеера.

Так ведь его значение поднимается из конфига - восстанавливает то состояние, которое было при закрытие приложения