AIMP Forum
AIMP for Windows => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: svist0plas on October 14, 2019, 16:28:35
-
Здравствуйте! Помогите пожалуйста решить следующую задачу.
На одной форме имеются две многостраничные группы. в каждой группе 3 контейнера. Одна группа расположена слева, другая справа.
В левой группе первый контейнер отображает информацию о треках, второй - обложку альбома, третий содержит опциональные кнопочки.
В правой группе все три контейнера такие же как и в левой, только порядок несколько иной. В первом контейнере - обложка альбома, во втором опциональные кнопочки, в третьем информация о треках.
Каждая группа переключается своей кнопкой (соответственно кнопки две).
Задача такова :
Нужно, чтобы каждая группа из трёх контейнеров показывала только два, но с таким условием, что если в левой группе скажем отображается информация о теках, то в правой можно было бы выводить только обложку альбома и опциональные кнопочки, но при этом же если в правой группе оставить включённой обложку альбома, то в левой можно было бы переключаться только между информацией о треках и опциональными кнопочками.
В итоге если в какой либо группе включен контейнер, то он не должен выводиться в другой группе, и наоборот.
-
Какой из этих вариантов?:
1. Одна группа главная, другая — второстепенная.
То есть, пока в главной группе не поменяется текущий контейнер, то во второстепенной нельзя включить такой же контейнер.
2. Группы равнозначны.
То есть, если переключить контейнер в любой группе, то в другой группе, если отображается такой же контейнер, этот контейнер поменяется на другой.
-
Первый
-
Ниже скриншоты, они ещё не идеальные, но задумка примерно такова.
-
Так?
Пока особо не проверял, но вроде есть один косяк, позже посмотрю.
-
Похоже, только в левом переключаются все три.
Нужен примерно такой алгоритм:
если в левом 1 то в правом 2, 3
если в левом 2 то в правом 1, 3
и при этом
если в правом 1 то в левом только 2, 3
если в правом 2 то в левом только 1, 3
-
:-\ Может у кого ещё какие варианты примеров есть по этой теме? ???
-
Если я правильно понял, кратко: страницы в группах должны взаимно исключать друг друга?
На скриптах решаемо (см. влож.)
На будущее (всех всегда прошу), делайте тестовые схематичные проекты - понять намного проще будет, чем на словах и скриншотах и помогающих избавите от рутины.
-
Если я правильно понял, кратко: страницы в группах должны взаимно исключать друг друга?
На скриптах решаемо (см. влож.)
На будущее (всех всегда прошу), делайте тестовые схематичные проекты - понять намного проще будет, чем на словах и скриншотах и помогающих избавите от рутины.
Спасибо Black_AVP! Это именно то, что надо :)
В следующих сложных вопросах обязательно буду выкладывать тестовые проекты.
-
Заметил в тесте такую особенность:
при самом первом запуске (после компиляции), В левой и правой группе отображается первый контейнер.
Далее если их погонять, то всё как бы становится на свои места и в последствии работает адекватно.
Попробовал добавить в "OnLoaded" одну строчку, теперь вроде при первом запуске после компиляции работает адекватно.
Проверьте пожалуйста.
-
Скрипты всегда срабатывают при запуске плеера. С OnLoaded тоже надо быть осторожным, я потому и не стал над ним мудрить, что любая принудительная установка счётчиков (или компонентов) в некоторое начальное значение приводит к тому, что при всех последующих запусках это значение и будет устанавливаться, а не браться из конфига. В данном случае скин всегда будет запускаться с правым контейнером 2. Мне кажется, лучше смирится с некоторой некорректностью при первом применении скина, чем лишить пользователя сохранения состояния элементов.
-
В данном случае скин всегда будет запускаться с правым контейнером 2. Мне кажется, лучше смирится с некоторой некорректностью при первом применении скина, чем лишить пользователя сохранения состояния элементов.
Да кстати справедливо замечено. Полностью согласен.
-
В принципе, обойти это можно, но тогда в onLoaded надо определять первый запуск скина, при этом конфиг-файл ещё не существует и "чтение" из него приведёт к установке значений по умолчанию, но тогда в скриптах надо каждый раз записывать состояние обеих групп (PageIndex) в конфиг.
-
При каждом переключении групп в конфиг файл будут сразу вноситься изменения, думаю это того не стоит, лучше оставить первоначальный вариант. Просто нулевые контейнеры будут с разным характером данных, возможно это будет смотреться даже интересней.
-
При каждом переключении групп в конфиг файл будут сразу вноситься изменения, думаю это того не стоит ...
Страшного в этом ничего нет, пока плеер запущен в файл ничего не пишется, всё делается в памяти.
-
Страшного в этом ничего нет, пока плеер запущен в файл ничего не пишется, всё делается в памяти.
Хорошо, если сможете скиньте тест пожалуйста :)